当前位置:文档之家› 信号及系统的谱分析

信号及系统的谱分析

数字信号处理实验一:信号及系统的谱分析学号 姓名注:1)此次实验作为《数字信号处理》课程实验成绩的重要依据,请同学们认真、独立完成,不得抄袭。

2)请在授课教师规定的时间内完成;3)完成作业后,请以word 格式保存,文件名为:学号+姓名4)请通读全文,依据第2及第3 两部分内容,认真填写第4部分所需的实验数据,并完成实验分析。

5)需将这次实验的内容给出一个纸质报告(31-40号)。

全体将报告的电子版交给班长以便实验结束后刻成光盘1. 实验目的(1) 熟练利用DFT 计算公式对信号进行谱分析, 加深DFT 算法原理和基本性质的理解。

(2) 利用卷积方法计算信号经过离散系统输出响应,并观察输出信号的频谱变化。

(3) 熟悉FFT 算法原理和FFT 子程序的应用,掌握利用函数fft.m 对离散信号及系统响应进行频域分析。

(4) 理解并掌握利用FFT 实现线性卷积的方法。

了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。

2. 实验原理与方法1)离散傅里叶变换(DFT )的基本原理离散傅里叶变换(DFT )是分析有限长序列频谱成分的重要工具,在信号处理的理论上有重要意义。

由于其可以在计算机上实现谱分析、 卷积、相关等主要的信号频谱分析过程,因此DFT 的快速算法得到了广泛的应用。

实现DFT 的基本计算公式如下:2)系统响应信号的时域分析(卷积运算)离散信号输入离散系统后,若系统起始状态为0,则系统的响应输出是 其方框图表示如下:图 1[][]∑∑-=--=====110)(1)()()()()(N k nk NN n nkNWk X Nk X IDFT n x W n x n x DFT k X []x n [][][]zs y n h n x n =*离散系统 h (n )[][][]zs y n h n x n =*在matlab 中 计算卷积的函数为y=conv(x,h)。

3)FFT 实现线性卷积的快速计算设一离散线性移不变系统的冲激响应为 ,长度为L 点;其输入信号为 , 长度为M 点;其输出为 ,长度为M+L-1点。

当满足一定条件 时,有限长序列的线性卷积可用圆周卷积和来代替,而圆周卷积可用FFT 来计算,从而可以大大提高运算速度。

用FFT 实现线性卷积计算的具体步骤:(1)有限长序列 和 补零值点,至长度为大于或等于M+L-1点,且为 , r 为整数。

(2)求 ,N 点DFT ,用FFT 快速算法实现; (3)求 ,N 点DFT ,用FFT 快速算法实现; (4)计算 ;(5)求 N 点IDFT ,用IFFT 快速算法完成。

3. 实验内容及步骤某系统的单位样值响应为:)()500()500(15.0sin[)(1001n R n n n h --=ππ,信号x (n )=(SIN (ω1n )+COS (ω2n ))R 1023(n ), 输入该系统后,输出的响应信号为y(n)。

请认真复习离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读上述实验原理与方法,编制2个程序文件完成如下2部分实验内容。

一) 利用函数y=conv(x,h)求解响应信号y(n)(流程图见图2)要求:a )利用函数y=conv(x,h)求解响应信号y(n);b) 利用DFT 的计算 公式对x(n),h(n)和y(n)DFT 计算;[]h n []x n [][][]zs y n h n x n =*1N M L ≥+-[]h n []x n 2r()[()]H K DFT h n =[][()]X K DFT x n =()()()Y K X K H K =[][()]y n IDFT Y K =开始写入序列hn ;调用子程序dft.m 计算hk写入序列xn ;调用子程序dft.m 计算xk调用子程序conv.m 计算yn, 调用子程序dft.m 计算yk,相关作图语句图 2在第一个图形框内给出x(n)的波形图和频谱图X(K),在第二个图形框内给出h(n)的波形图和频谱图H(K),在第三个图形框内给出y(n)的波形图和频谱图Y(K);在第四个图形框内给出X(K),H(K)和Y(K)的频谱图,并分析这3张频谱图的关系。

c) 给出程序内容d) 统计程序运行时间T1。

注意: a )dft.m 为学生自己编写的自定义函数文件,根据DFT 运算的计算公式完成xk=DFT (xn )功能,xk 为时间序列xn 的DFT 变换xk 。

b )dft.m 可参考<数字信号处理>教材P117的例题3-6自行理解并修改为函数文件二) 利用FFT 实现线性卷积计算(流程图见 图 3)要求:a )利用FFT 实现线性卷积计算的步骤编写程序求解y(n)在第一个图形框内给出x(n)的波形图和频谱图X(K),在第二个图形框内给出h(n)的波形图和频谱图H(K),在第三个图形框内给出y(n)的波形图和频谱图Y(K);在第四个图形框内给出X(K),H(K)和Y(K)的频谱图,并分析这3张频谱图的关系。

c) 给出程序内容d) 统计程序运行时间T2。

图 34. 实验数据及分析 实验数据:一、利用函数y=conv(x,h)求解响应信号y(n)1) 将yn1和Xk1、Hk1及Yk1存为dft1.mat 文件上交;2)按要求给出相关的图形xn1和Xk1、hn1和Hk1及yn1和Yk1开始 计算fft 运算所需点数N 写入序列xn 和hn 调用子程序fft.m 计算xk 和hk 相关作图语句结束计算yk=xk.hk调用子程序ifft.m 计算yn020040060080010001200-2-1.5-1-0.500.511.5020040060080010001200100200300400500600X K020040060080010001200-0.050.050.10.150200400600800100012000.20.40.60.811.21.4HK500100015002000250005010015020025030035040045005001000150020002500-1.5-1-0.50.511.53)程序内容:(包括主程序和函数文件dft.m ) clc,close,clear ticn=0:1022;W1=0.065;W2=0.35;x=(sin(W1*pi*n)+cos(W2*pi*n)); figure(1);plot(x);title('xn');XK1=dft(x);figure(2)plot(abs(XK1));title('XK');m=0:1000;wc=0.165;h=wc*sinc(wc*(m-500));figure(3);plot(h);title('hn');HK=dft(h);figure(4),plot(abs(HK));title('HK');y=conv(x,h);Yk=dft(y);figure(5);plot(abs(Yk));title('YK');figure(6);plot(y);tocfunction y=dft(x)% clc;close;clear% x=[1 2 3]N=length(x);n=1:N;k=1:N;nk=(n-1)'*(k-1);WN=exp(-j*2*pi/N);Wnk=WN.^nk;y=x*Wnk;4)运行时间T1=13.719二、利用FFT实现线性卷积计算1)将yn2和Xk2、Hk2及Yk2存为fft1.mat文件上交;2)按要求给出相关的图形xn2和Xk2、hn2和Hk2及yn2和Yk2020040060080010001200-2-1.5-1-0.500.511.55001000150020002500050100150200250300350400450500X K020040060080010001200-0.050.050.10.15050010001500200025000.20.40.60.811.21.4HK500100015002000250005010015020025030035040045005001000150020002500-1.5-1-0.50.511.53)程序内容:(主程序) clc,close,clear ticn=0:1022;N=2048 ; W1=0.065;W2=0.35;x=(sin(W1*pi*n)+cos(W2*pi*n)); figure(1);plot(x);title('xn');XK=fft(x,N);figure(2)plot(abs(XK));title('XK');m=0:1000;wc=0.165;h=wc*sinc(wc*(m-500));figure(3);plot(h);title('hn');HK=fft(h,N);figure(4),plot(abs(HK));title('HK');Yk=XK.*HK;figure(5);plot(abs(Yk));title('YK');y=ifft(Yk,N);figure(6);plot(y);toc4)运行时间T2=0.109实验分析:1 ) 若二)中FFT的点数N取值比L+M-1小,则实验结果是否正确,为什么?2)比较一)和二)两种方法所得结果y(n)长度是否相同,为什么?3)比较运行时间T1和T2,给出两者数值不同的主要原因;4)改变ω1和ω2的值来看结果,并分析所得的结果答:1)不正确,fft运算当满足N>M+L-1时,有限长序列的线性卷积可用圆周卷积和来代替,否则波形会产生失真。

2)不相同,fft运算的长度应为2的L次方,长度N=2048>dft运算的长度。

3)当满足一定条件N>M+L-1时,有限长序列的线性卷积可用圆周卷积和来代替,而圆周卷积可用FFT来计算,从而可以大大提高运算速度。

相关主题