1、数字信号处理仿真设计数字信号处理仿真设计1、课程设计题目:基于 MATLAB 的利用 DFT分析信号频谱和计算卷积二、课程设计目的:1、 加深对数字信号处理学习过的基本概念、基本理论和基本方法的理解和掌握;2、学会用MATLAB对信号进行分析和处理,进一步将知识融会贯通;3、加深对 DFT原理的理解,学会应用DFT分析信号频谱以及计算线性卷积等;4、学会撰写课程设计报告,并应用数字信号处理的基本理论分析结果。三、课程设计内容:1、画出连续时间信号的时域波形,其中幅度因子A10,衰 减因子a8,模拟角频率;2、对信号进行采样,得到采样序列,其中T为采样间隔,通过改变采样频率可改变T,画出采样频率
2、分别为200Hz,500 Hz,1000 Hz时的采样序列波形;3、分别用傅里叶变换和DFT对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对比各频率下采样序列和的幅频曲线的差别。4、考察序列:x (n ) = cos(0 .48n ) + cos(0 .52n )1) 0 n 10时,用 DFT 估计 x (n )的频谱;将 x (n )补零加长到长度为 100点序列用 DFT估计 x (n )的频谱。要求画出相应波形。2) 0 n 100时,用 DFT 估计 x (n )的频谱,并画出波形5、利用DFT计算线性卷积,并分析线性卷积等于循环卷积的条件。四、详细程序及仿真波形:1
3、、连续时间信号x(t)及其200Hz/500Hz/1000Hz频率抽样信号函数x(n)的波形和频谱分析。%1.绘制信号x(t)的时域波形t=0:0.001:0.4; %设置连续信号的有关参数A=input(请输入A的值 A:); a=input(请输入a的值 a:);w0=input(请输入w0的值 w0:);x=A*exp(-a*t).*sin(w0*t); %不是周期函数figure(1)subplot(2,1,1);plot(t,x),grid ontitle(x(t)连续时间信号)xlabel(时间 t);ylabel(幅度 x(t);subplot(2,1,2);plot(t,x),
4、grid onaxis(0 0.045 -2 160);title(调整后的x(t)连续时间信号)xlabel(时间 t);ylabel(幅度 x(t); %2.绘制各采样序列x(n)的时域波形n=0:64; %定义序列的长度是64T1=0.005;T2=0.002;T3=0.001;T0=0.001;x=A*exp(-a*n*T0).*sin(w0*n*T0); y1=A*exp(-a*n*T1).*sin(w0*n*T1); %是周期函数y2=A*exp(-a*n*T2).*sin(w0*n*T2); y3=A*exp(-a*n*T3).*sin(w0*n*T3); figure(2)su
5、bplot(2,1,2);plot(n,x),grid on title(x(n)连续时间信号)subplot(2,1,1);stem(n,x),grid on %绘制序列x(n)的图形title(x(n)离散时间信号)figure(3)subplot(3,1,1);stem(n,y1),grid ontitle(200Hz理想采样信号序列); subplot(3,1,2);stem(n,y2),grid ontitle(500Hz理想采样信号序列)subplot(3,1,3);stem(n,y3),grid ontitle(1000Hz理想采样信号序列) %3.绘制各采样序列x(n)的幅度谱
6、和相位谱k=-32:32;W=(pi/16)*k; %周期序列的傅里叶级数系数中旋转因子中的Ww=W/pi; %坐标上的w,即此值是冲击函数刚好为1的点Y1=y1*(exp(-j*pi/16).(n*k); %周期序列的傅里叶变换函数,n是n的转置figure(4)subplot(2,1,1);plot(w,abs(Y1);grid,xlabel(w),ylabel(幅度);title(200Hz理想采样信号序列的幅度谱);axis(-2 2 0 1000);subplot(2,1,2);plot(w,angle(Y1);grid,xlabel(w),ylabel(幅角);title (200
7、Hz理想采样信号序列的相位谱)Y2=y2*(exp(-j*pi/16).(n*k);figure(5)subplot(2,1,1);plot(w,abs(Y2);grid,xlabel(w),ylabel(幅度);title(500Hz理想采样信号序列的幅度谱);axis(-2 2 0 1000);subplot(2,1,2);plot(w,angle(Y2);grid,xlabel(w),ylabel(幅角);title (500Hz理想采样信号序列的相位谱)Y3=y3*(exp(-j*pi/16).(n*k);figure(6)subplot(2,1,1);plot(w,abs(Y3);g
8、rid,xlabel(w),ylabel(幅度);title(1000Hz理想采样信号序列的幅度谱);axis(-2 2 0 1000);subplot(2,1,2);plot(w,angle(Y3);grid,xlabel(w),ylabel(幅角);title (1000Hz理想采样信号序列的相位谱) %4.用DFT对各长度为64的采样序列x(n)进行谱分析M=0:31;N=0:63;L=0:127;X00K=fft(x,32); %计算x的64点DFTX01K=fft(x,64); %计算x的128点DFTX10K=fft(y1,32);X11K=fft(y1,64);X20K=fft(
9、y2,64);X21K=fft(y2,128);X30K=fft(y3,32);X31K=fft(y3,64);figure(7)subplot(2,1,1);stem(M,abs(X00K);gridon ,xlabel(K),ylabel(|X(K)|);title(x(n)序列的32点DFT幅度谱);subplot(2,1,2);stem(N,abs(X01K);grid on ,xlabel(K),ylabel(|X(K)|);title(x(n)序列的64点DFT幅度谱);figure(8)subplot(2,1,1);stem(M,abs(X10K);grid on ,xlabel
10、(K),ylabel(|X(K)|);title(200Hz理想采样信号序列的32点DFT幅度谱);subplot(2,1,2);stem(N,abs(X11K);grid on ,xlabel(K),ylabel(|X(K)|);title(200Hz理想采样信号序列的64点DFT幅度谱);figure(9)subplot(2,1,1);stem(N,abs(X20K);grid on ,xlabel(K),ylabel(|X(K)|);title(500Hz理想采样信号序列的64点DFT幅度谱);subplot(2,1,2);stem(L,abs(X21K);grid on ,xlabel
11、(K),ylabel(|X(K)|);title(500Hz理想采样信号序列的128点DFT幅度谱);figure(10)subplot(2,1,1);stem(M,abs(X30K);grid on ,xlabel(K),ylabel(|X(K)|);title(1000Hz理想采样信号序列的32点DFT幅度谱);subplot(2,1,2);stem(N,abs(X31K);grid on ,xlabel(K),ylabel(|X(K)|);title(1000Hz理想采样信号序列的64点DFT幅度谱);波形为:模拟信号x(t)的波形和030毫秒处模拟信号x(t)采样后的图 (因为N=TP
12、*FS,所以采样64点) 模拟信号x(t)经不同频率采样后所得序列的图 结论:采样频率为1000Hz时没有失真,500Hz时有横线,产生失真,200Hz时横线加长,失真增大。说明采样频率越大,即采样点越多失真越小。序列x(n)经傅里叶变化所得的幅度谱和相位谱序列x(n)经傅里叶变化所得的幅度谱和相位谱序列x(n)经傅里叶变化所得的幅度谱和相位谱序列x(n)取不同区间长度进行DFT所得的幅度谱结论:从上面的图片可以看出,x(k)是x(ejw)在区间0,2上的N点采样。2、考察序列为x (n ) = cos(0 .48n ) + cos(0 .52n )。% 0 n 10时,用 DFT 估计 x
13、(n )的频谱n=0:10;x=cos(0.48*pi*n)+cos(0.52*pi*n); y=fft(x); %x(n)频谱 n在0到10subplot(3,1,1);stem(n,y); title(n在0,10时 x (n )的频谱); %将 x (n )补零加长到长度为 100点序列用 DFT估计 x (n )的频谱xn=x,zeros(1,90); %对xn补零yn=fft(xn);nn=0:100; %x(n)频谱 n在0到100subplot(3,1,2);stem(nn,yn); title(补零后的 x (n )的频谱); % 0 n 100时,用 DFT 估计 x (n
14、)的频谱n1=0:100;x1=cos(0.48*pi*n1)+cos(0.52*pi*n1); %x(n)频谱 n在 0到 100y1=fft(x1);subplot(3,1,3);stem(n1,y1); title(n在0,100时 x (n )的频谱);波形为:结论:利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。补零加长并不会改变频域的间隔,所以不能提高分辨率。3、用DFT计算线性卷积。%时域直接计算卷积x1n=2 1 1 2 3 4; x2n=-1 2 2 -1 6 9;y=conv(x1n,x2n); figure(1)subplot(3,1,1); stem(x1n);
15、 title(输入信号x1nn);subplot(3,1,2);stem(x2n);title(输入信号x2nn);subplot(3,1,3);stem(y);title(输出信号yn);%用DFT计算卷积M1=length(x1n);M2=length(x2n);N=M1+M2-1;X1K=fft(x1n,N);X2K=fft(x2n,N);YCK=X1K.*X2K;ycn=ifft(YCK,N);figure(2)subplot(3,1,1); stem(abs(X1K); title(输入信号X1K);subplot(3,1,2);stem(abs(X2K);title(输入信号X2K
16、);subplot(3,1,3);stem(abs(ycn);title(输出信号ycn);axis(1 11 -100 100);%用DFT计算6点卷积figure(3)X11K=fft(x1n,6);X12K=fft(x2n,6);Y1CK=X1K.*X2K;y1n=ifft(YCK,6);subplot(3,1,1); stem(abs(X11K); title(用DFT计算6点卷积输入信号X11K);subplot(3,1,2);stem(abs(X12K);title(用DFT计算6点卷积输入信号X12K);subplot(3,1,3);stem(abs(y1n);title(用DF
17、T计算6点卷积输出信号y1n);axis(1 23 -100 100);%用DFT计算12点卷积figure(4)X21K=fft(x1n,12);X22K=fft(x2n,12);Y2CK=X1K.*X2K;y2n=ifft(YCK,12);subplot(3,1,1); stem(abs(X21K); title(用DFT计算12点卷积输入信号X21K);subplot(3,1,2);stem(abs(X22K);title(用DFT计算12点卷积输入信号X22K);subplot(3,1,3);stem(abs(y2n);title(用DFT计算12点卷积输出信号y2n);axis(1
18、23 -100 100);%用DFT计算3点卷积figure(5)X31K=fft(x1n,3);X32K=fft(x2n,3);Y3CK=X1K.*X2K;y3n=ifft(YCK,3);subplot(3,1,1); stem(abs(X31K); title(用DFT计算3点卷积输入信号X31K);subplot(3,1,2);stem(abs(X32K);title(用DFT计算3点卷积输入信号X32K);subplot(3,1,3);stem(abs(y3n);title(用DFT计算3点卷积输出信号y3n);axis(1 23 -100 100);波形如下:可以得出结论: 只有当N
19、=M1+M2-1时,线性卷积的值等于用DFT计算的N点的循环卷积。所计算的DFT的长度同,卷积结果不同,从另一方面证明了DFT和IDFT的唯一性。时域直接计算卷积时的图用DFT计算的卷积图五、结果分析1、利用DFT计算连续时间信号频谱,首先进行时域抽样,所得的抽样数据进行DFT计算,然后再将离散数据连续化,得到连续时间信号的频谱。实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。2、采样频率越大,即采样点越多失真越小。而在持续时间为T的连续信号采样时,最少采样点为N=TP*FS ,并且由采样定理有FS=FC。3、一个N点离散时间序列的傅里叶变换(DTFT)所得的频
20、谱是以2为周期延拓的连续函数。由采样定理,时域进行采样,则频域周期延拓,同样在频域进行采样,则时域也会周期延拓。DFT就基于这个理论,在频域进行采样,从而将信号的频谱离散化。所以,一个N点离散时间信号可以用一个频域内一个N点序列来唯一确定,这就是DFT表达式所揭示的内容。4、更长的时域信号能够提供更高的频域分辨率,因为一个N点的时域信号能被分解为N/2+1个余弦信号和N/2+1个正弦信号,N增大则(N/2+1)也增大,频域间隔(1/2的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了。所以利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。补零加长并不会改变频域的间隔,所以不能提高
21、分辨率。5、只有当N=M1+M2-1时,线性卷积的值等于用DFT计算的N点的循环卷积。所计算的DFT的长度同,卷积结果不同,六、调试总结:1、Axis函数设置图形坐标。2、Conv函数直接进行线性卷积运算。3、Stem绘制离散图谱,plot用来绘制连续的函数图形。5、fft进行fft运算。七、设计总结: 通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。因为以前学过信号与系统,但这只是理论知识,通过实验我们才能真正理解其意义。DFT的利用在以前的学习中也有接触,但是还
22、是没有深刻理解,但是通过这次的仿真作业,我对DFT的原理有了更加深刻清楚的理解,同时还复习和加强了对MATLAB软件的使用。 在仿真的过程中我遇到了不少的问题的,比如刚开始,我对许多matlab软件的内置函数怎么用都不记得了,但是通过对课本的熟悉,又可以很好的运用其中的函数。还有就是对DFT的原理理解的不是很清楚,所以仿真时边做边找资料,边学习,这样把理论与实际相结合,更能帮助理解和掌握知识。总的来说,通过这次的课程设计我对数字信号处理的知识又有了深刻的理解,特别是对DFT的应用;同时让我知道熟练的应用MATLAB可以很好的加深我对课程的理解,训练我的思维,使我们能非常直观的了解数字信号的处理结果。这次仿真真的是受益匪浅,在这个过程中我更加了解了MATLAB的使用方法,学会用DFT分析频谱和计算卷积等,提高了我的分析和动手实践能力。我相信,这才是老师布置此次作业的真正目的,懂得自己学习,自己总结,自己动手动脑,才能真正的学到知识和能力。 2011年5月8日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1