《数字信号处理实验》由会员分享,可在线阅读,更多相关《数字信号处理实验(53页珍藏版)》请在金锄头文库上搜索。
1、数 字 信 号 处 理实验实验电工电子实验中心前前 言言n本课程实验包含四个必修实验:n实验一离散系统时域分析为验证性实验,使学生掌握计算离散卷积方法和MATLAB语言实现;n实验二FIR数字滤波器的设计为综合性,使学生掌握用窗函数法和频率采样法设计FIR数字滤波器的原理和方法,了解不同窗函数对滤波器性能的影响;n实验三IIR数字滤波器的设计为综合性,可使学生掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理和方法,了解双线性变换法和脉冲响应不变法的特点和区别。n实验四FFT频谱分析及应用为验证性,可进一步加深对FFT的理解,熟悉应用FFT对典型信号进行频谱分析的方法。目目 录录n实验
2、一 离散系统时域分析n实验二 FIR数字滤波器的设计n实验三 IIR数字滤波器的设计n实验四 FFT频谱分析及应用n附录: MATLAB基本操作及常用命令实验一:实验一: 离散系统时域分析离散系统时域分析n实验学时:2学时n实验类型:验证n实验要求:必修n一、实验目的一、实验目的n1、学习MATLAB语言的编程和调试技巧;n2、掌握笔算离散卷积方法及其MATLAB语言实现。二、二、 实验内容实验内容n1、设某、设某LTI的单位脉冲响应(的单位脉冲响应(1)判断此系统是否可实)判断此系统是否可实现;现;n(2)当输入为矩形脉冲时,求此)当输入为矩形脉冲时,求此LTI的输出;的输出;n(3)用)用
3、MATLAB实现,并画出图形。实现,并画出图形。n2、 计算卷积计算卷积三、实验原理与方法和手段三、实验原理与方法和手段n 一个离散时间系统,输入信号为一个离散时间系统,输入信号为x(n),输出信号为,输出信号为y(n),运算关系用,运算关系用T表示,则输入与输出的关系可表示表示,则输入与输出的关系可表示为为y(n)Tx(n)。(1)线性时不变系统的输入输出关系可通过单位脉冲响)线性时不变系统的输入输出关系可通过单位脉冲响应应h(n)表示:表示: y(n)=x(n)*h(n)= 式中式中*表示卷积运算。表示卷积运算。三、实验原理与方法和手段三、实验原理与方法和手段(2)线性时不变系统的实现)线
4、性时不变系统的实现 可物理实现的线性时不变系统是稳定的、因果的。这种系统的单位脉冲响应是因果的(单边)且绝对可和的,即: 在MATLAB语言中采用conv实现卷积运算即: Y=conv(x,h),它默认从n=0开始。 四、实验组织运行要求四、实验组织运行要求n1、学生在进行实验前必须进行充分的预习,、学生在进行实验前必须进行充分的预习,熟悉实验内容;熟悉实验内容;n2、学生根据实验要求,读懂并理解相应的程、学生根据实验要求,读懂并理解相应的程序;序;n3、学生严格遵守实验室的各项规章制度,注、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管意人身和设备安全,配合和服
5、从实验室人员管理;理;n4、教师在学生实验过程中予以必要的辅导,、教师在学生实验过程中予以必要的辅导,独立完成实验;独立完成实验;五、实验条件五、实验条件n1、具有WINDOWS 98/2000/NT/XP操作系统的计算机一台;n2.、MATLAB编程软件。六、实验步骤六、实验步骤n在在“开始开始-程序程序”菜单中,找到菜单中,找到MATLAB程序,程序,运行启动;运行启动;n进入进入MATLAB后后 ,首先熟悉界面;,首先熟悉界面;n在在Command Window中输入参考程序,并执中输入参考程序,并执行;行;n记录运行结果图形,并与笔算结果对照。记录运行结果图形,并与笔算结果对照。n再根
6、据实验内容,逐一修改程序,执行,记录再根据实验内容,逐一修改程序,执行,记录结果并分析。结果并分析。七、思考题七、思考题n结合信号与系统课程所学,思考离散时间系统的线性卷积公式与连续时间系统的卷积公式的异同?八、实验报告要求、实验报告要求n1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用;n2、简述实验目的和原理;n3、给出用笔算时卷积和conv计算线性卷积对照图;n4、给出收获和体会。九、参考程序九、参考程序n程序1nx=ones(1,10);nx1=ones(1,10),zeros(1,40);nN1=length(x);nn1=0:N1-1; nN2=50; n
7、2=0:N2-1;nh=0.8.n2; ny=conv(x,h);nN=N1+N2-1;n=0:N-1;nsubplot(3,1,1);nstem(n2,x1);subplot(312);nstem(n2,h);subplot(313);nstem(n,y);九、参考程序九、参考程序n程序2n如果、的起点不为0,则采用conv_m计算卷积;n编写conv_m函数:nfunctiony,ny=conv_m(x,nx,h,nh)n%改进卷积程序nnyb=nx(1)+nh(1);nnye=nx(length(x)+nh(length(h);nny=nyb,nye;ny=conv(x,h);n在命令窗
8、口输入:nx=3,11,7,0,-1,4,2;nx=-3:3;nh=2,3,0,-5,2,1;nh=-1:4;ny,ny=conv_m(x,nx,y,ny)n可得到结果:y(n)=6,31,47,6,-51,-5,41,18,-22,-3,8,2,-4n”为运算提示符,表示MATLAB正处在准备状态。当在提示符后输入一段运算式并按Enter键后,MATLAB将给出计算结果,然后再次进入准备状态。n(3)工作间窗口n在主窗口的“View”菜单下选择“Workspace”命令,可以打开或关闭MATLAB的工作间窗口,工作间窗口是MATLAB的重要组成部分。 nMATLAB的程序类型有三种n1)脚本
9、M文件n 在命令窗口中输入并执行,在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。 n2)程序M文件n 以以.m格式进行存取格式进行存取,包含一连串的MATLAB指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。n程序运行时只需在命令窗口中键入其名称即可(不需要后缀名)。程序运行时只需在命令窗口中键入其名称即可(不需要后缀名)。n3)函数M文件(常称为M函数)n 与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用help命令可以显示它的注释说明。
10、M函数 n具有标准的基本结构:n (1)函数定义行(关键字function)n functionout1,out2,.=filename(in1,in2,.)n输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保的变量来给出。n (2)第一行帮助行n 以(%)开头,作为lookfor指令搜索的行n (3)函数体说明及有关注解n 以(%)开头,用以说明函数的作用及有关内容n (4)函数体语句n 函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望
11、这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。n例如,实现加减法运算的M函数调用方法如下: n首先编写一个M函数:(打开一个程序编辑器“Untitled”)n Functionoutl,out2=addec(inl,in2)n outl=inl+in2;n out2=inl-in2;n保存的文件名为addec(默认后缀名为.m)n然后,在MATLAB的命令窗口调用这个函数文件:n a,b=addec(10,20)n disp(a,b) % 在命令窗口输出a、b的值n显示结果为:30 10 3、基本平面图形绘制命令基本平面图形绘制命令 plot n1)plot(X,Y)
12、 %当X,Y均为实数向量,且为同维向量,则以x的元素为横坐标,y的元素为纵坐标,绘制曲线。若X,Y均为同维同型实数矩阵,X = X(i),Y = Y(i),其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i),矩阵有几列就有几条线;n2)plot(X1,Y1,X2,Y2,),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,)将分别按顺序取两数据Xi与Yi进行画图。n3)plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2) 将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符