matlab实验报告1_第1页
matlab实验报告1_第2页
matlab实验报告1_第3页
matlab实验报告1_第4页
matlab实验报告1_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、页眉内容通信系统仿真实验报告姓名:专业:学号: 47实验一 MATLAB环境的熟悉与基本运算一、实验目的:1 .熟悉MATLAB开发环境2 .掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1 .熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。2.掌握MATLAB常用命令clc清除命令窗口中内容clear清除工作空间中变量help对所选函数的功能、调用格式及相关函数给出说明lookfor查找具有某种功能的函数但却不知道该函数的准确名称who查询工作空间中的变量信息3. MATLAB变量与运算符变量命名规则如下:(1)变量

2、名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。表1 MATLAB的特殊变量与常量变量名功能说明变量名功能说明ANS默认变量名,以应答 最近一次操作运算结果realmin最小的正实 数i或j虚数单位INF(inf)无穷大Pi圆周率NAN(nan)不定值(0/0)eps浮点数的相对误差nargin函数实际输 入参数个数realmax最大的正实数nargout函数实际输 出参数个数指令格式表6子数组访问与赋值常用的相关指令格式 指令功能MATLAB运算符,通过下面几个表来说明MATLAB的各种常

3、用运算符表2 MATLAB算术运算符操作符功能说明操作符功能说明+加矩阵左除一减.数组左除*矩阵乘/矩阵右除 *数组乘./数组右除A矩阵乘方矩阵转置人.数组乘方数组转置表3 MATLAB关系运算符操作符功能说明等于z_不等于>大于<小于>=大于等于<=小于等于表4 MATLAB逻辑运算符逻辑运算符逻辑运算说明&And逻辑与Or逻辑或Not逻辑非Xor逻辑异或表5 MATLAB特殊运算符号功能说明示例符号功能说明 示例 9分隔行 分隔列 ()%注释构成向量、矩阵1 调用操作 系统命令()构成单元数组用于赋值4. MATLAB的一维、二维数组的寻访A (r, c)数

4、组月中r指定行、c指定列之元素组成的子数组A(rt :)数组幺中r指定行对应的所有列之元素组成的子数组A(:f c)数组幺中c指定列对应的所有行之元素组成的子数组A(:)数组月中各列元素首尾相连组成的“一维长列”子数组A(i)一维长列子数组中的第2个元素A(r, c)=Sa数组月中T指定行、。指定列之元素组成的子数组的赋值/(:)=(:)数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总和应相同5.MATLAB的基本运算表7两种运算指令形式和实质内涵的异同表数组运算矩阵运算指令含义指令含义A.,非共辄转置共规转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s-B,B-s标

5、量s分别与B元素之差s. *A标量s分别与A元素之积s*A标量s分别与A每个 元素之积s. /B, B. s标量s分别被B的元素除S*inv(B)B阵的逆乘sA. nA的每个元素自乘n次A"nA阵为方阵,自乘n 次A. "p对A各元素分别求非整数辕A-p方阵A的非整数乘方A+B对应元素相加A+B矩阵相加A-B对应元素相减A-B矩阵相减A. *B对应元素相乘A*B内维相同矩阵相乘A. /BA的元素别B的对应元素除A/BA右除BB. A与上相同BAA左除Bexp(A)以自然数e为底,分别以A的元 素为指数,求幕expm(A)A的矩阵指数函数log (A)对A的各元素求对数log

6、m(A)A的矩阵对数函数sqrt(A)对A的各元素求平方根sqrtm(A)A的矩阵平方根函数6. MATLAB的常用函数表8标准数组生成函数指令含义指令含义diag产生对角形数组(对高维不适用)rand产生均匀分布随机数组eye产生单位数组(对高维不适用)randn产生正态分布随机数组magic产生魔方数组(对高维不适用)zeros产生全。数组ones产生全1数组size ()返回指定矩阵的行数和 列数表9数组操作函数指令含义diag提取对角线元素,或生成对角阵flipud以数组“水平中线”为对称轴,交换上下对称位 置上的数组元素fliplr以数组“垂直中线”为对称轴,交换左右对称位 置上的数

7、组元素reshape在总兀素数不变的前提下,改变数组的“行数、 列数”rot90矩阵逆时针旋转90度det方阵的行列式值rank矩阵的秩三、实验内容1、学习安装MATLAB软件。2、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye (其它不会用的指令,依照此方法类推)3、学 习使用 clc、clear, 观察 command window、command hi story 和workspace 等窗口的变化结果。4、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exercl、 exerc2 exerc3),学习使用MATLAB的

8、基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。注意:每一次M-file的修改后,都要存盘。练习A:(1) help rand,然后随机生成一个2 X 6的数组,观察command window、 command hi story和workspace等窗 口 的变化结果。(2)学习使用clc、clear, 了解其功能和作用。(3)输入01:2:20,则C (i)表示什么?其中i=l,2, 3,,10。(4)输入A=7 1 5; 2 5 6; 3 15, B=1 1 1; 2 2 2; 3 3 3,在命 令窗口中执行下列表达式,掌握其含义:A(2, 3)A(:,2)A(3, :)A(:

9、, 1:2:3)A(:, 3). *B(:, 2)A(:,3)*B(2, :) A*B A.*B A'2A/2 B/A B. /A(5)二维数组的创建和寻访,创建一个二维数组(4X8) A,查询数组A 第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A 第6列的所有元素。(6)两种运算指令形式和实质内涵的比较。设有3个二维数组昆卬B: XO C2X2,写出所有由2个数组参与的合法的数组运算和矩阵指令。(7)学习使用表8列的常用函数(通过help方法)(8)学习使用表9数组操作函数。练习B(9)用reshape指令生成下列矩阵(不超过3次操作),并取出方框内的数 组元素。四、试

10、验结果(1)(2) clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。(3)C(i)表示C中的第i个的数值。(4)(5)>> A-rmxxci <6, 8>0.82120.64770.68680.92940.50950. 81 L60. 62250. 8443O.0154O.4500O.1835O.7757O.51080. 53280. 68TO0. 1048O.0430O.5470O. 3<5815O.4808O.81700. 30070. 20770. 2259O.1600O.2063O.62S6O.4350O.70480. 93900. 3

11、0120. 1707O.G491O.7447O.7902O. 44<58O.54430. 87590. 47090. 2277O.7317O.1800O. 081 1O.3063O.37880. 66020. 23060. 4367>> A<2. 3)cm 5 一O.1835>> A<2.: >ag 一O.0104O.400©O. 1S35 O. 7757 O. 51080. 5328O. 6STOO. 1948» A<: , 65(6)心O. 8116O. 0328O. 3607O. 9390O. 8759O. 560

12、2a =1234510987» b=ll:25b =111213141516171819» A= reshape Q, 5, 2)'5,3)'】202122232425(9)12109111216172122» A电 2:3) aas =9 S» A<4;5J1;3) ans =16172122» A424力 aiis =A 73458i6131415181920232425is23实验二MATLAB数值及符号运算一、实验目的:1、掌握矩阵的基本运算2、掌握矩阵的数组运算3、掌握多项式的基本运算4、会求解代数方程5、掌握创

13、建符号表达式和矩阵的方法6、掌握符号表达式的微分和积分运算二、实验基本知识:1、多项式运算poly产生特征多项式系数向量roots求多项式的根p二poly2str(c, 'x')(以习惯方式显示多项式)conv, convs多项式乘运算deconv多项式除运算多项式微分polyder (p):求p的微分polyder (a, b):求多项式a, b乘积的微分2、代数方程组求解1).恰定方程组的解方程ax二b (a为非奇异)两种求解方法:x=inv(a)*b 一采用求逆运算解方程 x=ab -采用左除运算解方程2)超定方程组的解方程ax=b ,时此时不存在唯一解。x=(a'

14、; a)l a b求逆法3)欠定方程组的解matlab可求出两个解:用除法求的解x是具有最多零元素的解是具有最小长度或范数的解,这个解是基于伪逆pinv求 得的。3、符号矩阵的创建1)用mat lab函数sym创建矩阵(symbolic的缩写)命令格式:A=sym(,')2)用字符串直接创建矩阵4、符号矩阵与数值矩阵的转换将数值矩阵转化为符号矩阵,函数调用格式:double (A)将符号矩阵转化为数值矩阵,函数调用格式:numeric (A)5、符号微积分与积分变换diff(f) 一对缺省变量求微分diff (f, v)对指定变量v求微分diff(f, v, n)一对指定变量v求n阶微

15、分int (f)对f表达式的缺省变量求积分int (f, v)一对f表达式的v变量求积分int (f, v, a, b)一对f表达式的v变量在(a, b)区间求定积分6、符号代数方程求解solve (f)求一个方程的解solve (fl, f2,fn)求n个方程的解7、符号微分方程求解指令:dsolve命令格式:dsolve(f, g) : f微分方程,可多至12个微分方程的求解;g为初始条件,默认自变量为'x',可任意指定 自变量't', 'u'等,微分方程的各阶导数项以大写 字母D表示三、实验内容:1、已知a=l 2 3;4 5 6;7 8

16、0,求其特征多项式并求其根。2、已知多项式a(x)=x?+2x+3, b (x) =4x2+5x+6,求a, b的积并微分。3、求解方程1)x. + 2x, = 8 A2x. +3x, = 13$ + 2x2 = 12 ) < 2x. + 3x、= 23x. + 4x, = 3 b 1一3)占+29+3当=1 2x1 +3x2 +4x3 = 24、用两种方法创建符号矩阵,A = a, 2*b3*a,05、计算二重不定积分xe-x>dxdy6、对符号方程f = ax2+bx+c求解。1)对x求解,2)对a求解。7、求解微分方程4? + 2半+ 2)= 0, y(0) = 1坐(0)

17、= 0。dx dxdx8、已知系统冲激响应为h(n)=0.05, 0.24, 0.40, 0.24,0. 15,-0. 1,0. 1,系统输 入u(n)由指令randn(' state' , 1) ;u=2* (randn (1, 100) >0. 5)-1 产生,该输入信号 的起始作用时刻为0。试用直杆图(提示:用stem指令)画出分别显示该系统输 入、输出信号的两张子图四、实验结果(1)(2)(3)(4) (5) (7)(6)实验三MATLAB语言的程序设计一、实验目的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写

18、和设计4、了解和熟悉跨空间变量传递和赋值二、实验基本知识:1、程序流程控制语句for循环结构语法:for i =初值:增量:终值语句1语句nend说明:1. i =初值:终值,则增量为1。2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合 数学逻辑。while循环结构语法:while逻辑表达式循环体语句end说明:1、while结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的 值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表 达式的值为假,则程序执行end之后的语句。2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以

19、便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endif-else-end分支结构if表达式1语句1else if表达式2(可选)语句2else (可选)语句3endend说明:1. if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不 满足,则跳出if结构。2 . else if表达式2与else为可选项,这两条语句可依据具体情况取舍。3 .注意:每一个if都对应一个end,即有几个if,记就

20、应有几个end。 switch-case 结构 语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2 otherwise语句组nend说明:1. switch后面的表达式可以是任何类型,如数字、字符串等。2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面 的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行 otherw i s e后的执行语句。程序流程控制指令breaks return> pause2、函数文件的结构和编写方法函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变 量。M函数文件的结构(1

21、)函数定义行(function)(2) Hl行(函数帮助文本的第一行)(3)函数帮助文本(4)函数体(5)注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要 与MATLAB自身的函数命令相同。三、实验内容:练习A1、熟悉MATLAB程序编辑与设计环境2、用for循环语句实现求1100的和。3、用for循环语句实现编写一个求邠介乘的函数文件。4、一行100列的Fibonacci数组a,元素满足Fibonacci 规则:a(l)=a(2)=l,a(i)=a(i-l)+a(i-2) (i=3, 4,-),求该数组中第一个大于10000的元素。练习B思考题4、已知一维数组A二4,5

22、,8, 10,B=4, 6,9, 3,4,用for循环语句实现纥t+i。求和函数可用sum。. /-I5、利用for循环求1! +2! +3! +5!的值。.6、编写M函数表示曲线y2=eMsin(3t)以及它的包络线yl二并从命令窗口输 入命令语句绘制曲线,t的取值范围是0,4冗。7、设/*) =,编写一个M函数文件,使得调用f(x)1 1(x-2)2+0.1 (x 3>+ 0.01时,x可用矩阵代入,得出的f(x)为同阶矩阵。四、实验结果(1)>> mean(lO) ans =3628800(4)Bfunction 所mean(i) p=l;Eii for j=l : i

23、P=P*j;end(3)(6)(7)实验四采用SIMULINK的系统仿真一、实验目的:1、熟悉SIMULINK工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK的建模与仿真方法二、实验基本知识:1. 了解SIMULINK模块库中各子模块基本功能2. SIMULINK的建模与仿真方法(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽 到模型窗口中即可。(2)创建子系统:当模型大而复杂时,可创建子系统。(3)设置仿真控制参数。三、实验内容练习SIMULINK仿真实际应用.1 .利用SIMULINK求解微分方程 要一(17唠+ % = 0,方程的初始条件为x(O)

24、=L 处2 = 0。在增益模块Gain'取值分别为2和100 dt的情况下(即 =2, = 100)运行,给出运行结果。2 .已经系统框图,求传递函数,并求阶跃响应。3、用两种滤波器设计方法实现下列问题:构建一个低通滤波系统的SIMULINK模型。输入信号是一个受正态噪 声干扰的采样信号 x(5)= sin(2/10此)+ 1.5cos(2小100也)+ (右) 在此 n(kT)- N(0fi.22),而 Ts =0.001 (秒)采用 10 阶 Butterworth 低通滤波器,以便从输入信号中过滤获得10Hz的输出信号。四、实验结果(1)(2)(3)幅频,相频响应曲线:,冲击响应

25、:实验五 采用SIMULINK的系统仿真(二)一、实验目的:1、熟悉SIMULINK工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK的建模与仿真方法4、子系统的创建和封装设计二、实验基本知识:1. 了解SIMULINK模块库中各子模块基本功能2. SIMULINK的建模与仿真方法(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口 中即可。(2)创建子系统:当模型大而复杂时,可创建子系统。(3)设置仿真控制参数。三、实验内容1、用两种滤波器设计方法实现下列问题:构建一个低通滤波系统的SIMULINK模型。输入信号是一个受正态 噪声干扰的采样信号 x

26、(kTs) = sm(2. 10. Z:7;.) +1.5cos(2- 100.kTs) + n(kTs) 在此出T)NO。??),而 7; =0.001 (秒)采用 10 阶 Butterworth低通滤波器,以便从输入信号中过滤获得10Hz的输出信号。2、利用Simulink求解/(/)='"在区间J0, 1的积分,并求出积分值1(1).3、时变系统的仿真:对时变受控对象模型可;鳍螭评部既彘)瑞)Kp=g00,Kj=10” = 2力。_ dm 。_ m 父 _。均为常数,试分析闭环系统的阶跃响应曲线。实验六MATLAB的图形绘制一、实验目的:1、学习MATLAB图形绘制的

27、基本方法;2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种 标注;4、掌握plot、subplot的指令格式和语法。二、实验基本知识:1、plot (x, y)绘制由x, y所确定的曲线;2、多组变量绘图:plot (xl, yl,选项1, x2, y2,选项2,);3、图形窗口的分割;4、图形编辑窗口的使用。 三、实验内容 练习A二维曲线绘制的基本指令plot基本调用格式plot (x, y,' s')特别注意:'s,是离散点形、连续线型和点线色彩三种设置数据构成的 字 符串,三种设置数

28、据可以组合使用,顺序任意。 plot的衍生调用格式:1 .单色或多色绘制多条曲线:plot(X,Y, 's'):用s指定的点形线型色彩绘制多条曲线。plot(X,Y):采用默认的色彩次序用细实线绘制多条曲线。2 .多三元组绘制多条曲线plot(Xl,Yl,'sl',X2,Y2,'s2', . , Xn, Yn,J sn )3 .单输入量绘线plot(Y)>当X、Y均为(mXn)数组时,将绘制出n条曲线。每条曲线的几何位置由 X、Y对应的列确定。>当X、Y两个输入量中有一个是一维数组,且该数组的长度与另一个输入 量的“行数”(或“列数”

29、)相等时,将绘制出“列数”(或“行数”) 条曲线。> plot(X,Y,):只能用s指定的同一色彩绘制多条曲线。【1】二维曲线绘图基本指令演示。本例运作后,再试验plot(t), plot(Y), plot(Y,t),以观察产生图形的不同。t=(0:pi/50:2*pi)'k=0.4:0.1:1;Y=cos (t)*k;plot (Y, t)2用图形表示连续调制波形片sin(t) sin(9。及其包络线。> t=(0:pi/100:pi)'yl=sin(t)*-l, 1;y2=sin(t). *sin(9*t);t3=pi*(0:9)/9;y3=sin(t3). *

30、sin(9*t3);> > plot (t, yl, ' r :', t, y2, ' b', t3, y3, ' bo')> > axis (0, pi, -1, 1)3在一个图形窗口绘制正弦和余弦曲线,要求给图形加标题“正弦和余弦曲线”,X轴Y轴分别标注为“时间t”和“正弦、余弦”,在图形的某个位置标注“sin(t)” “cos(t)”,并加图例,显示网格,坐标为正方形坐标系。t=0:pi/100:2*pi;yl=sin(t);y2=cos(t);plot (t, yl,' r , t, y2, ' k

31、 -,);> > legend,sin(t)cos(t)');> > axis square;grid on> > titleC sint cost')> > text (1,-0. 4, ' cos(t)rightarrow')> > text (2. 8, 0.4, 1 leftarrowsin(t)')» xlabel ('t') ;ylabel ('正弦、余弦)实验七MATLAB在信号与系统中的应用一、实验目的:1、掌握利用MATLAB求解LTI系统的方

32、法;2、掌握用MATLAB中滤波分析的函数命令;3、熟悉MATLAB信号处理工具箱;二、实验内容:1、已知二阶系统传递函数为H(s) =一名当q=1时,试计算阻5- +2皿5+砥 91H1, i<r <100,其它尼比G从0.11时的二阶系统的阶跃响应,并绘制阶跃响应三维网格曲面图。2、某LTI系统的单位冲激响应依)=厂”,输入式/)=初始条件为0,求系统响应y(t).3、已知滤波器fc=30, fs=1000,为10阶的butterworth滤波器,对信号输入 x(n)=0. 8n (n=0:31)的响应y(n).画出输入x(n)、输出y(n)波形。三、实验结果:(1)(2)(3

33、)实验八:频率采样法设计FIR数字滤波器数字滤波器从滤波器功能上可以分为低通、高通、带通、带阻以及全通滤波器:根 据系统的单位冲击响应的特性,又可以分为有限长单位冲激响应滤波器(FIR)和无限 长单位冲激响应滤波器(IIR)o与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到 有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)的长度为N,其系统函数为:N-1H(z)= h(n)z-nn = 0当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器 共分为四种类型,分别为:1)类型I,系数对称,即九6)=何为奇数。2)类型II,系数对称,即

34、人5)=何N-1-"),N为偶数。3)类型HL系数反对称,gp/t(n)=-h(JV-l-n), N为奇数。4)类型IV,系数反对称,即九6)=-似'-1-九),N为偶数。1)频率采样法设计滤波器时,通常给出的是幅频特性的技术指标要求,可直接在频域进行处理,按照 理想的频率特性H(J“),在3 =。到2之间等间隔采样N点,得到:=(叱 | 3 =等,k = 0,1,2,,N - 1然后用H(k)的傅里叶逆变换作为滤波器的系数:b(ri) = h(n) = IDFTH(k)N-lH(z)= V h(n)z-n构成一个系统传递函数为n =。的实际的FIR数字滤波器,这种设计方法称

35、为频率采样法。在使用频率采样法设计FIR数字滤波器时,应注意下列问题:(1)根据频域抽样定理,被采样的理想频率特性其采样点数N与滤波器的长度X应满足 N»M,否则将造成混叠。本实验取NGL(2)为保证滤波器的系数为实序列,作为复数序列的理想频率特性应具有共规对称性, 幅度特性应为偶函数,相位特性应为奇函数。注意:必须在02的全频段上才能观察到其 对称图形。习惯上,我们一般利用其对称性,只做05频段上的图形。(3)理想频率特性的相位特性应该与频率成线性关系,即满足线性相位的条件。2)频率采样法的优化设计为了提高阻带的衰减,减小通带的波动,可以采用频率采样的优化设计法,即在间断 点区间内

36、插入一个或几个过渡带采样点。例1.用频率采样法设计一个FIR数字低通滤波器,3dB截止频率生'=04%采样点数 分别取N=21点和N=61点,分别显示其幅频特性和脉冲响应曲线,观察采样点数对滤波 器特性的影响。参考程序如下:N = 21; %采样点数n = 0:NT;wc = 0. 4*pi; %截止频率N1 = fix(wc/(2*pi/N);%样点间隔为 2*pi/N, N1 为 wc 的样点数N2 = N - 2*N1 - 1;%N2为阻带样点数A = ones (1, Nl+1), zeros (1, N2), ones (1, Nl) ; %建立幅度特性样本序列theta=-

37、pi*(N-l)/N * 0 : N-l;%建立相位特性样本序列wa = 0:N-l/N*2;%为作图建立对应的频率向量%画图subplot(211);plot (wa, A,' );axis(0, 2, -0. 2,1. 2);title('理想幅频响应及样点序列(N=21)');xlabelC 频率(单位:pi)');ylabel (* H (e jomega) ,);subplot (212);plot (wa, theta,;axis(0, 2, -80, 0);title('理想相频响应及样点序列(N=21)');xlabelC 频率(

38、单位:pi)');ylabel(' phi(omega);由图形应可见:该滤波器特性符合幅度特性为偶函数,相位特性为奇函数的特点。 后面部分示例不再使用02九的全频段,仅在。”频段上显示特性曲线。将理想的幅频特性和实际的幅频特性在同一图形中显示,同时显示其脉冲响应曲 线,观察采样点数对滤波器特性的影响。此时可通过对上面的程序进行修改实现目的: %N = input C N=');%由使用者输入NN = 41;n = 0:N-l;wc = 0. 4*pi;%截止频率Nl = fix(wc/(2*pi/N); %样点间隔为 2*pi/N, Nl 为 wc 的样点数N2 =

39、N - 2*N1 -1; %N2为阻带样点数A = ones (1, Nl+1), zeros (1, N2), ones (1, Nl) ; %建立幅度特性样本序列theta=-pi*(N-l)/N *0: N-l;%建立相位特性样本序列Hk = A. *exp(j*theta);为建立频域特性样本序列h = real(ifft (Hk);先由反变换求脉冲序列h(n),并取实部H, w = freqz(h, 1, 1000, 5 whole) ; %计算滤波器的频率响应Hl = (H (1:1000)5 ; %对矩阵H取转置wl = (w(1:1000)5 ;mag = abs(Hl);db

40、 = 20*log (mag+eps) /max (mag) ; %将单位转换为 dBpha = angle(H);wa = 0:N-l/N*2;%画图subplot(311);plot (wa, A, '. 一,wl/pi, mag);axis (0, 2, -0. 1,1. 2);titlef理想幅频、样点序列及实际滤波器幅频响应');xlabelC 频率(单位:pi)');ylabel (, H(e" jomega)J;subplot (312);stem(n, h);title ('滤波器脉冲响应');xlabel (' n&#

41、39;);ylabel (' h(n)');subplot(313);plot (wl/pi, pha), title('实际滤波器的相频响应');N = 21N = 61例2:在满足上面显示理想/实际滤波器幅频响应等的设计要求下,在过渡带中增加一 个样点T1,取值0.42。要求显示其幅频特性曲线,观察增加了过渡带采样点后对滤波 器特性的影响。提示:只需将建立幅频特性样本序列的一句程序修改结果:在过渡带增加了一点之后,通带波动迅速减小,阻带衰减也得到了很大的提高。增加过渡带采样点前后对比例3:与例2类似,从增加一个过渡带采样点变为增加两个采样点,TF0.58,

42、T2R.12 (这两个值可以自己尝试修改,并观察效果)。要求显示幅频特性曲线,观察增加两个过渡带采样点后对滤波器特性的影响。提示:只需将建立幅频特性样本序列的一句程序修改结果:在过渡带增加了两点之后,通带波动明显下降,阻带衰减明显提高,用较少的采 样点数已经能够实现较高的滤波性能指标要求。例4:用频率采样法设计一个FIR数字高通滤波器(截止频率自己定,0")(可选择添 加过渡带采样点);设计一个FIR数字带通滤波器,要求:下阻带截止频率wsl=0.3% (As=35dB);通带低 端起始频率wpl=0. 45%通带高端截止频率即2二0.65兀,(Rp=L5dB);上阻带起始频率 ws

43、2=0. 8工描绘实际滤波器的幅频响应、脉冲响应曲线。(可选择添加过渡带采样点);【扩展:检验最小阻带衰减、检验通带波动例:As二-round(max(db(1:fix(ws/dw)+l)Rp=-(min(db(fix(wp/dw)+l:501)例5:用fir2设计一个N=41 (可修改)的FIR数字低通滤波器,要求通带起始频率 ws=0. 5/可修改),描绘理想和实际滤波器的幅频响应曲线。参考程序如下:wc = 0. 5;N = 41;n = 0:N-l;f = 0 wc wc 1; %建立理想幅频特性频率向量m = 1 1 0 0;%建立理想幅频特性幅度向量b = fir2(N-l,f,m

44、) %计算滤波器系统函数的系数H, w = freqz(b, 1); %求解频率特性dbH = 20*logl0 (abs (H) +eps)/max(abs (H); %单位化为分贝subplot (2, 2, 1);plot (f, m, w/pi, abs (H), title,理想和实际的高通滤波器幅频特性');xlabelC 频率(单位:pi )');ylabel (' H(e" j'omega)');subplot(222);stem(n, b), title(,滤波器脉冲响应');xlabel (' n')

45、;ylabel (' h(n)');subplot(223);plot (w/pi, dbH), title(,实际的高通滤波器幅频特性(dB)');xlabel ('频率(单位:pi )');ylabel (' G(dB)');subplot(224);plot (w/pi, angle (H), title。实际的高通滤波器相频特性');xlabel ('频率(单位:pi )');ylabel(,phi(omega);扩展:1)将高通滤波器改为高通滤波器;2)将设计指标改为:通带截止频率ws=0. 4%阻带起始

46、频率为0.6%描绘理想和实际 滤波器的幅频响应曲线。3)设计一个辛61的FIR数字带阻滤波器,要求:通带低端截止频率wcl=0.4%通带 高端起始频率wc2=0. 6工描绘理想和实际滤波器的幅频响应曲线。4)将上面的带阻滤波器设计指标改为:下通带截止频率wpl=O. 3耳阻带低端起始频率 ws 1=0. 4,阻带高端截止频率ws2=0. 6再 上通带起始频率叫2二0.7兀。且在过渡带增加 一点 Tl=0. 38.附:mat lab基础1. Matlab桌面系统简介: 主界面的布局:Current folder, command window, workspace, command histor

47、y, editor: 常用工具栏工具;常用快捷键(ctrl+s, ctrl+z, clear; clc; clear all; ctrl+a; ctrl+I; ctrl+r; ctrl+t; ctrl+d; ctrl+w; close all 等); 如何快速找到文件所在位置/打开指定位置的文件;当前打开的文件所在目录与目 前指向路径current folder不一致时需要将指向路径变换到当前文件所在路径: 新建脚本文件script/子函数function,脚本文件要和其需要调用的函数文件在同 一目录下,子函数的函数名与文件名要一致。2. mat lab帮助系统: 帮助命令:help +函数名

48、(edit函数名,可以查看该库函数的代码);如果不知 道具体的函数名,则直接在command window输入help,在弹出的列表中根据所需 要的函数所属类型选择查看帮助内容(很多时候也可以直接百度):(例:reshape, linspace, zeros* abs> find, length。) Lookfor +关键字,关键字搜索; 导航浏览器帮助:doc +函数名; 演示系统帮助:demos (视频,脚本文件等例程)。3. 调试功能X程序调试相对简单,因为它没有指针的概念,这样就避免了一大类难以查找的错误。 当运行脚本文件出错时,程序会中断执行,这时在command window窗I I中会提示程序 哪里有误,并有对错误的简单描述(都是英文提示,但是很多时候对调试很有帮助,能 告知我们是什么类型的错误,最好养成看错误提示的习惯)。例如下图所示:上图中的test_Viterbi表示出错的函数,单击test_Viterbi会弹出对该函数的描述, 后面的line 9表示出错的具体位置(行数),单击它会跳转到程序出错的那一行,从而 便于我们找出错误的原因并对程序进行修改。 断点设置断点可以使程序调试变得更为简单高效。&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论