收藏 分享(赏)

数字信号处理实验指导20120306new.doc

上传人:dreamzhangning 文档编号:2319265 上传时间:2018-09-10 格式:DOC 页数:59 大小:689KB
下载 相关 举报
数字信号处理实验指导20120306new.doc_第1页
第1页 / 共59页
数字信号处理实验指导20120306new.doc_第2页
第2页 / 共59页
数字信号处理实验指导20120306new.doc_第3页
第3页 / 共59页
数字信号处理实验指导20120306new.doc_第4页
第4页 / 共59页
数字信号处理实验指导20120306new.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、数字信号处理实验指导薛继华 编南通职业大学电子信息工程学院前 言对初学者而言, 数字信号处理这门课程理论性较强,有一定的难度。但是生活在数字化的 21 世纪,对经典的数字信号处理方法和理论有一定的了解和掌握,又是通信专业学生必不可少的专业素养之一。大专生学习数字信号处理课程有一个循序渐进的过程。MATLAB 软件是学好 数字信号处理强有力的帮手。能激发学生学习本课程的兴趣。考虑到相关专业学生的基础水平和学习特点,特编写本实验指导书,以期能在教学过程达到下列教学目标:(1) 指导学生完成教学大纲所规定的实验内容;(2)帮助学生理解并掌握相关理论知识;(3)培养学生分析解决问题的能力。 (4)塑造

2、学生克服困难、挑战自我的信心和毅力。前面几个实验内容的全部例程已给出,所附参考程序均已在 MATLAB6.0环境下调试通过,供学生实验前参考学习模仿。后面几个实验的程序核心语句部分由教师给出,学生应独立编写其它语句(如:绘图、标注等语句) 。要求每次实验前,认真识读相关程序,并仿照例程编写实验用程序。实验时,上机调试运行,能够按照老师要求改动相应参数后再完成调试运行工作。目 录MATLAB6.0 语言简介 .1实验一:MATLAB(离散时间信号-序列与采样奈奎斯特采样定理) 3实验二:信号、系统及系统响应 16实验三:FFT 及其应用 25实验四:IIR 数字滤波器的设计 33实验五:FIR

3、数字滤波器的设计 .451MATLAB6.0 语言简介MATLAB 诞生在 20 世纪 70 年代。1984 年,Cleve Moler 和 John Little 成立了 MathWorks 公司,正式把 MATLAB 推向市场,并继续进行了 MATLAB的开发。1993 年,MathWorks 公司推出 MATLAB 4.0;1995 年,MathWorks 公司推出 MATLAB 4.2C 版( For Win3.x); 1997 年推出 MATLAB 5.0;2000 年10 月,MathWorks 公司推出 MATLAB 6.0;2002 年,MATLAB 6.5 开始发布。MATL

4、AB 的界面越来越友好,内容越来越丰富,功能越来越强大。它的帮助信息采用超文本格式和 PDF 格式,可以很方便地的查阅。MATLAB 有众多的面向具体应用的工具箱和仿真块,包含完整的函数集用来对信号图像处理、控制系统设计、神经网络等特殊应用进行分析和设计。被广泛应用于包括数字信号处理、控制系统设计、通信、系统仿真等诸多领域。用户可以利用 MATLAB 的开放式结构很容易进行特定需求的扩充,从而不断深化对问题的认识,提高自身竞争力。MATLAB 语言被称为第四代计算机语言。它丰富的函数只要简单地调用和使用即可,无需重复编程,使人们从繁琐的程序代码中解放出来。MATLAB 语言的最大特点是简单和直

5、接。主要特点有:1编程效率高MATLAB 是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,犹如在演算纸上排列公式与求解问题。可通俗称为演算纸式科学算法语言。由于它编写简单,所以编程效率高,易学易懂。2用户使用方便人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接,以及执行和调试。各步骤是顺序关系,它们之间是瀑布型的循环。MATLAB 语言是一种解释执行的语言(在没被专门工具编译之前) ,将上述步骤融为一体。具体地说,MATLAB 运行时,如直接在命令行输入 MATLAB 语句(命令) ,包括调用 M 文件的语句,每输入一条语句,就立即对其进行处理,完成

6、编译、连接和运行的全过程。又如:将 MATLAB 源程序编辑为 M 文件,由于 MATLAB 磁盘文件也是 M 文件,所以编辑后的源文件就可直接运行,而2不需进行编译和连接。在运行 M 文件时,如果有错,计算机屏幕上会给也详细的出错信息,用户经修改后再执行,直到正确为止。所以,广义上说 MATLAB更是一种语言调试系统。3扩充能力强,交互性好MATLAB 语言有丰富的库函数,而且同用户文件在形式上一样,所以用户文件也可以作为 MATLAB 的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的函数,提高 MATLAB 使用效率和扩充它的功能。另外,通过建立 M 文件,利用 FORTR

7、AN、C 语言混合编程,具有良好的交互性。4方便的绘图功能MATLAB 的绘图功能十分方便,它有一系列绘图函数(命令) ,例如:线性坐标、对数坐标及极坐标。只需调用不同的绘图函数(命令) ,即可在图上标出图题、XY 轴标注,格(栅)绘制也只需调用相应的命令。调整相应自变量可绘出不同颜色的点、线、复线或多重线。5高效方便的矩阵和数组运算MATLAB 语言规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,这些运算符大部分可以毫不改变地照搬到数组运算中,有些算术运算符只要增加“.”就可用于数组间的运算。另外,它不需要定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,在求解诸

8、如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言无法比拟的。3实验一:MATLAB(离散时间信号-序列与采样奈奎斯特采样定理)一、实验目的:(1)熟悉 MATLAB6.0 编程仿真环境与主要操作命令,会创建 MATLAB 函数;(2)理解序列的概念,掌握典型离散信号的特性;(3)加深对奈奎斯特采样定理的理解,掌握连续时间信号的离散化过程。会用MATLAB 进行仿真分析频谱混叠现象。(4)掌握常用绘图语句,学会保存 MATLAB 仿真结果图,并对结果图进行分析。二、理论知识1 离散时间信号-序列对模拟信号 xa(t)进行等间隔采样,采样间隔为 T,

9、得到:这里 n 取整数。对于不同的 n 值,x a(nT)是一个有序的数字序列: xa(-T)、 xa(0)、 xa(T),该数字序列就是时域离散信号。实际信号处理中,这些数字序列值按顺序放在存贮器中,此时 nT 代表的是前后顺序。为简化,采样间隔可以不写,形成 x(n)信号,x(n) 称为序列。对于具体信号,x(n) 也代表第 n 个序列值。需要说明的是,这里 n 取整数,非整数时无定义,另外,在数值上它等于信号的采样值,即:x(n)=xa(nT), -n 信号随 n 的变化规律可以用公式表示,也可以用图形表示。如果 x(n)是通过观测得到的一组离散数据,则可以用集合符号表示,例如:x(n)

10、=1.3,2.5,3.3,1.9,0,4.1表示 n=0 时的序列值,即 x(0)=3.3。单位脉冲序列也可以称为单位采样序列,特点是仅在 n=0 时取值为 1,其它均为零。它类似于模拟信号和系统中的单位冲激函数 (t),但不同的是 (t)()(),tnTan4在 t=0 时,取值无穷大,t0 时取值为零,对时间 t 的积分为 1。单位采样序列和单位冲激信号如图 1.1 所示。任意序列都可以用单位脉冲序列的移位加权和表示,即:式中 :()()mxnn1, n=m(-) 0一个周期为 N 的周期序列,表示为: , k 为任意整数,xnNN 为周期。 一个周期序列虽然是无穷长序列,但是只要知道它一

11、个周期的内容(一个周期内信号的变化情况) ,其它的内容也就都知道了,所以这种无穷长序列实际上只有 N 个序列值的信息是有用的,因此周期序列与有限长序列有着本质的联系。对于周期序列 ,定义其第一个周期 n=0N-1,为 的“主值()xn ()xn区间”,主值区间上的序列为主值序列 x(n)。x(n)与 的关系可描述为:()xn()“xn是 的 周 期 延 拓是 的 主 值 序 列2 奈奎斯特采样定理对带限的连续时间信号进行等间隔采样形成采样信号,采样信号的频谱是原信号频谱以采样频率 fs 为周期进行周期性的延拓形成的。s1()()aasmXjXjT从采样后的频谱中不失真地恢复原信号,则采样频率

12、必须大于等于两倍原信s号频谱的最高截止频率 ,即 或 ,这称为奈奎斯特采样定理。csc2scf3 采样的恢复(恢复模拟信号)如果理想采样满足奈奎斯特定理,即信号最高频率谱不超过折迭频率则理-1 0 1 2 31n(n) (t)t0( a ) ( b )图1.1单位采样序列和单位冲激信号(a)单位采样序列; (b)单位冲激信号 5想采样的频谱就不会产生混叠,因此有n0|n0n2|n1n2error(输入位置参数不满足 n1=0;stem(n,x);end%输入完函数内容后,将上述函数程序存盘时,注意 MATLAB 默认文件名就是刚才输入的函数名,不要自行改动,直接保存就可以。默认路径为:MATL

13、AB6p5/work/目录,不要改动。7.参考程序片段%ntvc xjh 2007-10-12%实验一 上机内容(1) 参考程序 %a=1 2 3 4 ;b=3 4 5 6;c=a+b;d=a-b;e=a.*b;f=a./b;g=a.b;n=0:3;figure(1);8clfsubplot(2,2,1);stem(n,a);title(a=1 2 3 4 );subplot(2,2,2);stem(n,b);title(b=3 4 5 6);subplot(2,2,3);stem(n,c);title(a+b);subplot(2,2,4);stem(n,d);title(a-b);figu

14、re(2);clfsubplot(2,2,1);stem(n,e);title(a.*b);subplot(2,2,2);stem(n,f);title(a./b);subplot(2,2,3);stem(n,g);title(a.b);%实验一 上机内容(2) 参考程序%实验 一上机内容(2.1)n=-5:10;x=n=0;stem(n,x);title(单位采样序列 (n);9%实验 一上机内容(2.2)n=0:15;x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);stem(n,x);title(x=3*cos(0.125*pi*n+0

15、.2*pi)+2*sin(0.25*pi*n+0.1*pi);%实验 一上机内容(2.3)n=0:15;x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);N=16;nxtide=0:4*16-1;xtide=x(mod(nxtide,N)+1);subplot(2,1,1);stem(n,x);axis(0 64 -6 4);%可在 figure 中对坐标进行修饰。title(x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);subplot(2,1,2);stem(nxtide,xtide)

16、;axis(0 64 -6 4);title(以 16 为周期进行延拓形成的周期序列);%实验 一上机内容(2.4)n=0:15;x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);%将序列移位 10 位置后,进行累加,在每个周期的开始部分有混淆。N=10;10xk=x;for k=1:3;xi=0;for i=kxi=zeros(1,N*i) x;xp=xk zeros(1,N);endxtide=xp+xi;xp=xtide;xk=xp;ntide=0:15+k*N;endsubplot(2,1,1);stem(n,x);axis(0 45

17、 -6 4);%可在 figure 中对坐标进行修饰。title(x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);subplot(2,1,2);stem(ntide,xtide);title(以 10 为周期进行延拓形成的周期序列);%取前 10 个数据进行复制%N=10;%nxtide=0:4*10-1;%xtide=x(mod(nxtide,N)+1);%clf;%subplot(2,1,1);stem(n,x);11axis(0 40 -6 4); %可在 figure 中对坐标进行修饰。%title(x=3*cos(0.125*pi

18、*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);%subplot(2,1,2);stem(nxtide,xtide);title(以 10 为周期 进行延拓形成的周期序列);%实验 一上机内容(2.5)n=0:15;x=(0.8).n;stem(n,x);title(x(n)=(0.8).n);%实验 一上机内容(2.5 、6)n=0:15;x=(0.8).n;subplot(4,1,1);stem(n,x);axis(-5 20 0 1);title(x(n)=(0.8).n);n0=-fliplr(n); %上面 这条语句使用 MATLAB 的函数实现翻转。n=0 1

19、 2 3 4becomes-4 -3 -2 -1 0x0=fliplr(x);subplot(4,1,2);stem(n0,x0);axis(-15 10 0 1);title(x(-n);n1=n-4;x1=x;subplot(4,1,3);stem(n1,x1);12axis(-5 20 0 1);title(x(n+4)左移);n2=n+5;x2=x;subplot(4,1,4);stem(n2,x2);axis(-5 20 0 1);title(x(n-5)右移);%实验一 上机内容(3) 参考程序%function x,n=stepshift(n0,n1,n2)%实现 u(n-n0)

20、;n1n0|n0n2|n1n2error(输入位置参数不满足 n1=0;stem(n,x);end%将上述函数程序建立.m 文件,以 n1=2,n2=15,n0=5 为例调用该函数。%实验一 上机内容(4) 参考程序%Analog signaldt=0.001;t=0:dt:0.6;xa=sin(20*pi*t); %信号频率为 fa=10HZ,周期为 0.1 秒13subplot(3,1,1);plot(t,xa);xlabel(单位: s);axis(0 0.6 -1 1);%Discrete-time SignalTs=0.0625;n=0:1:10;x=sin(20*pi*(n*Ts)

21、; %fs=16Hz,Ts=Ta*fa/fs=0.1/1.6subplot(3,1,2);stem(n,x);xlabel(以 16Hz 采样获得的序列 x1(n);axis(0 9.6 -1 1);Ts1=0.025;n1=0:1:24;x1=sin(20*pi*(n1*Ts1); %fs=40Hz,Ts=0.1/4subplot(3,1,3);stem(n1,x1);axis(0 24 -1 1);xlabel(以 40Hz 采样获得的序列 x2(n)%实验一 上机内容(5) 参考程序%以 40Hz 采样%Discrete-time Signal x2(n)Ts=0.025;n=0:1:2

22、4;x=sin(20*pi*(n*Ts);14Fs=1/Ts; nTs=n*Ts; %fs=40Hz,Ts=0.1/4subplot(3,1,1);stem(n,x);axis(0 24 -1 1);xlabel(以 40Hz 采样获得的序列 x2(n)%Analog Signal reconstructiondt=0.001;t=0:dt:0.6;xa=x*sinc(Fs*(ones(length(n),1)*t-nTs*ones(1,length(t);subplot(3,1,2);plot(t,xa);axis(0 0.6 -1 1);xlabel(由采样 序列 x2(n)恢复 结果)%

23、Old Analog Signaldt=0.001;t=0:dt:0.6;xa1=sin(20*pi*t); %信号频率为 fa=10HZ,周期为 0.1 秒subplot(3,1,3);plot(t,xa1);xlabel(采样前的 连续时间模拟信号 xa(t);axis(0 0.6 -1 1);%以 16Hz 采样%Discrete-time Signal x1(n)Ts=0.0625;n=0:1:10;x=sin(20*pi*(n*Ts); Fs=1/Ts; nTs=n*Ts; %fs=16Hz,Ts=Ta*fa/fs=0.1/1.6subplot(3,1,1);15stem(n,x);

24、xlabel(以 16Hz 采样获得的序列 x1(n);axis(0 9.6 -1 1);%Analog Signal reconstructiondt=0.001;t=0:dt:0.6;xa=x*sinc(Fs*(ones(length(n),1)*t-nTs*ones(1,length(t);subplot(3,1,2);plot(t,xa);axis(0 0.6 -1 1);xlabel(由采样序列 x1(n)恢复结果)%Old Analog Signaldt=0.001;t=0:dt:0.6;xa1=sin(20*pi*t); %信号频率为 fa=10HZ,周期为 0.1 秒subpl

25、ot(3,1,3);plot(t,xa1);xlabel(采样前的 连续时间模拟信号 xa(t);axis(0 0.6 -1 1);16实验二:信号、系统及系统响应一、实验目的(1) 熟悉Z变换,会用 MATLAB计算时域离散系统的频率特性; (2) 掌握离散时间信号的傅里叶变换(DTFT);(3) 掌握周期离散信号的离散傅里叶级数(DFS)及有限长序列的离散傅里叶变换(DFT);(4) 利用卷积方法观察分析系统的时域特性。二、理论知识认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本实验原理与方法。Z 变换是离散信号与系统的重要内容之一,序列 x(n

26、)的 Z 变换定义为:,其中 Z 复变量。()()nnXzxz17x(n)的傅里叶变换为()()j jnnXexe如果序列 Z 变换的 ROC 包含单位圆,x(n)的 DTFT 就等于该序列在单位圆上的Z 变换。在数字计算机上观察分析各种序列的频域特性,通常对 X(ejw)在0, 2上进行 N 点采样来观察分析。 对长度为 N 的有限长序列 x(n), 有其中:10()()0,1knNnXKxWk2jNWe一个时域离散线性非移变系统的输入/输出关系为()()()myxhxhn上述卷积运算也可以在频域实现: ,更一般地,()jjjYeXHe。式中 H(ejw)是单位脉冲响应 h(n)的 DTFT

27、 称为系统的频率响(z)(z)YXH应;H(z) 为 h(n)的 Z 变换,称作系统函数。 三、实验内容(1) 给定一系统函数 ,求出并绘出 H(z)的幅频响应与相频相应,61()z绘出零极点图及单位脉冲响应 h(n)。(2) 理解有限长序列与同周期序列的关系,已知用MATLAB编程求 DFS ,并作图表示3(),()(7),rxnRxnr ()Xk。Xk、(3) MATLAB内部求卷积函数conv假定两个序列都在n=0开始,不接受也不提供任何定位信息,请基于conv函数自编conv_m 函数,它能完成任意位置序列的卷积。已知: ,-3n3; ,-1n4,调x(n)=3, 170, -42 (

28、)2,305,1hn用conv_m函数求线性卷积 。绘出x(n)、h(n)及y(n)。()ynx18(4)设 ,计算其傅里叶变换(DTFT) 。()0.9,5nx()jXe(5)已知 x(n)是长度为N的有限长序列, ,现将长度扩大r倍,()XkDFTxn得长度为rN的有限长序列y(n),取N=4,r=3,绘出DFTy(n)与X(k)()01xnyNr的图形。4. 思考题(1)简答因果稳定系统的零极点图有何特点?(2)针对实验内容(4) 的结果,讨论其共轭对称特点,给实数序列的傅里叶变换的绘图带来什么方便。(3)实验内容(5)中DFTy(n) 与X(k)的关系,说明了什么现象?5. 实验报告要

29、求(1) 简述实验目的及实验原理。(2) 按实验步骤附上实验过程中的信号序列、系统幅频、相频特性曲线。(3) 简要回答思考题。 6参考程序片段%ntvc xjh 2007-10-12%实验 二 上机内容(1)参考程序1:A班使用%采用矩 阵运算来计算频率响应w=0:1:500*pi/500; %0,pi分为501个点X1=1-exp(-1*j*w*6);X2=1-exp(-1*j*w);X22=X2+(X2=0)*eps; %逻辑数组参加运算,使“0”被机器零代替X=X1./X22; %计算出频率响应magX=abs(X); %取其幅度19angX=angle(X).*180./pi; %取其

30、相位;figure(1)subplot(2,1,1);plot(w/pi,magX);title(幅频响应);ylabel(幅度);subplot(2,1,2);plot(w/pi,angX);ylabel(相位(以“ 度”为单位);xlabel(以pi为单位);title(相频特性);%以下程序 仅是为了调用zplane和impz函数来作零极点图和单位脉冲响应b=1,0,0,0,0,0,-1; %b是由分子多项式系数构成的数组;a=1,-1; %a是由分母多项式系数构成的数组;figure(2)subplot(2,1,1);zplane(b,a);title(零极点图);subplot(2,

31、1,2);impz(b,a);%上机内容(1)参考程序2:B班使用%使用 MATLAB信号处理工具包中的函数freqz来计算频率响应。b是由分子多项式系数构成的数组;%a是由分母多项式系数构成的数 组;b=1,0,0,0,0,0,-1; %b是由分子多项式系数构成的数组; 20a=1,-1; %a是由分母多项式系数构成的数组;h,w=freqz(b,a); am=20*log10(abs(h); %取其幅度,并转换成以(dB)为单位ph=angle(h); %取其相位。w1=w/pi; %方便绘图时横轴以 pi为单位figure(1)subplot(2,1,1);plot(w1,am);tit

32、le(幅频响应 );ylabel(幅度(dB);subplot(2,1,2);plot(w1,ph);title(相频特性 );ylabel(相位(以“ 弧度”为单位);xlabel(以pi 为单位);figure(2)subplot(2,1,1);zplane(b,a);title(零极点图);subplot(2,1,2);impz(b,a);%上机内容 (2)%x=1,1,1,0,0,0,0;N=7;nxtide=0:4*7-1;xtide=x(mod(nxtide,N)+1);stem(nxtide,xtide);axis(0 27 0 1);XK=dfs(x,N); %先自建dfs函数

33、magXK=abs(XK);angXK=angle(XK).*180./pi;K=0:6;subplot(2,1,1);stem(K,magXK);title(幅度部分);ylabel(振幅);21subplot(2,1,2);stem(K,angXK);xlabel(K);ylabel(相位);title(相位部分);axis(0 6 -180 180);%附dfs 函数内容,点击MATLAB菜单File/new/M-file,将下列内容输入后,并保存为函数名。function XK=dfs(x,N)%计算离散傅里叶级数%调用形式: XK=dfs(x,N)%x是周期序列的一个周期序列值,0=

34、n=N-1%XK是DFS结 果, 0=k=N-1%N是一个周期的长度n=0:1:N-1;k=0:1:N-1;WN=exp(-j*2*pi/N);nk=n*k;WNnk=WN.nk;XK=x*WNnk;%上机内容(3)%x=3,11,7,0,-1,4,2; nx=-3:3;h=2,3,0,-5,2,1; nh=-1:4;y,ny=conv_m(x,nx,h,nh); %先建conv_m函数subplot(3,1,1);stem(nx,x);axis(-4 7 -1 11);title(x(n);22subplot(3,1,2);stem(nh,h);axis(-4 7 -5 3);title(h

35、(n);subplot(3,1,3);stem(ny,y);axis(-4 7 -51 50);title(卷 积结果y(n)=x(n)*h(n);%附conv_m函数内容function y,ny=conv_m(x,nx,h,nh)%conv进一步完善程序,可用来计算任意位置序列的卷 积。%调用格式: y,ny=conv_m(x,nx,h,nh)%y,ny是卷积结果%x,nx是第一个序列信号%h,nh是第二个序列信号%nyb=nx(1)+nh(1);nye=nx(length(x)+nh(length(h);ny=nyb:nye;y=conv(x,h);%上机内容(4)%subplot(1,

36、1,1);n=-5:5;x=(-0.9).n;k=-200:200;w=(pi/100)*k;23X=x*(exp(-j*pi/100).(n*k); %求DTFTmagX=abs(X); %取幅度angX=angle(X); %取相角subplot(2,1,1);plot(w/pi,magX);gridaxis(-2 2 0 15);xlabel(频率以 pi为单位);ylabel(幅度|X|);subplot(2,1,2);plot(w/pi,angX/pi);gridaxis(-2 2 -1 1);xlabel(频率以 pi为单位);ylabel(相位(rad/pi);%上机内容(5)%

37、 %K1=0:3;x=1 1 1 1;N1=4;Xk=dft(x,N1); %先建dft函数magXk=abs(Xk); %DFT的模phaXk=angle(Xk).*180./pi; %DFT的相角w=0:1:500*2*pi/500;X1=1-exp(-j*w*4);24X2=1-exp(-j*w);X22=X2+(X2=0)*eps;X=X1./X22;magX=abs(X); %X连续傅里叶变换 的模K2=0:11;yn=1 1 1 1 0 0 0 0 0 0 0 0 ;N2=12;Yk=dft(yn,N2);magYk=abs(Yk); %计算DFT的模w=0:1:500*2*pi/

38、500;Y1=1+exp(-j*w)+exp(-j*w*2)+exp(-j*w*3); %分子多项式Y2=1;Y=Y1./Y2;magY=abs(Y); % Y是连续傅里叶 变换的模%以下是 绘图语句subplot(2,2,1);stem(K1,x);title(信号x(n);axis(0 4 -0.1 1.2);subplot(2,2,2);plot(2*w/pi,magX,-);hold on;title(X幅度函数及抽 样);ylabel(振幅);stem(K1,magXk);axis(0 4 -0.5 5);subplot(2,2,3); stem(K2,yn);25title(信号y

39、(n);axis(0,12,-0.1,1.2);subplot(2,2,4); plot(6*w/pi,magY,-);hold on;title(Y幅度函数及抽样);ylabel(振幅);stem(K2,magYk);axis(0,12,-0.5,5);%附dft函数内容function Xk=dft(x,N)%该函数用来计算DFT%调用形式: XK=dft(x,N)%x是N 点有限长序列值,0=n=N-1%XK是DFT结果,0=k=N-1%N是计 算DFT的点数n=0:1:N-1;k=0:1:N-1;WN=exp(-j*2*pi/N); %旋转因子nk=n*k;WNnk=WN.nk;Xk=

40、x*WNnk;%26实验三:FFT 及其应用一、实验目的(1) 在理论学习的基础上,通过实验加深对FFT的理解;(2)熟悉应用FFT对典型信号进行频谱分析的方法;(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便正确应用FFT。二、理论知识(1)有限长序列的一个重要特点是其频域也可以离散化,即离散傅里叶变换(DFT ) 。快速傅里叶变换(FFT)是计算 DFT 的一种快速有效方法。时间抽取法 FFT 的运算特点:(1)蝶形运算(2)原位计算(3)序数重排(4)蝶形类型随迭代27次数成倍增加。按时间抽取的 8 点 FFT 算法如下图所示:(2)实验中用到的信号序列: 2() ,()0

41、npqaaGusinex序 列 其 它 ) sin(2),()0,abbefnx衰 减 正 弦 序 列 其 它 ),()0,ccxnn三 角 波 序 列 其 它 三、实验内容(1)观察高斯序列的时域和幅频特性,固定信号 Xa(n)中参数 p=8,改变 q 的值,使 q 分别等于 2,4,8,观察它们的时域和幅频特性,了解当 q 取不同值时,对信号序列的时域和幅频特性的影响;固定 q8,改变 p,使 p 分别等于8,13,14,观察参数 p 变化对信号序列的时域及幅频特性的影响,注意 p 等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲

42、线。(2)观察衰减正弦序列 Xb(n)的时域和幅频特性, a0.1,f =0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变 f,使 f 分别等于 0.4375 和 0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明产生现象的原因。(3)观察三角波和反三角波序列的时域和幅频特性,用 N=8 点 FFT 分析信号序列 Xc(n)和 Xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其频谱特性曲线。在 Xc(n)和 Xd(n)末尾补零,用 N=32 点 FFT 分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两种情况下的 FFT频谱还有相同之处吗?这些变化说明了什么?(4)一个连续信号含两个频率分量,经采样得nfnnx 125.0cos125.0si1,0N ,已知 N=16,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报