数字信号处理仿真设计.docx
- 文档编号:7626111
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:16
- 大小:771.21KB
数字信号处理仿真设计.docx
《数字信号处理仿真设计.docx》由会员分享,可在线阅读,更多相关《数字信号处理仿真设计.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理仿真设计
数字信号处理仿真设计
1、课程设计题目:
基于MATLAB的利用DFT分析信号频谱和计算卷积
二、课程设计目的:
1、加深对数字信号处理学习过的基本概念、基本理论和基本方法的理解和掌握;
2、学会用MATLAB对信号进行分析和处理,进一步将知识融会贯通;
3、加深对DFT原理的理解,学会应用DFT分析信号频谱以及计算线性卷积等;
4、学会撰写课程设计报告,并应用数字信号处理的基本理论分析结果。
三、课程设计内容:
1、画出连续时间信号
的时域波形,其中幅度因子A=10,衰减因子a=8,模拟角频率
=π;
2、对信号
进行采样,得到采样序列
,其中T=
为采样间隔,通过改变采样频率可改变T,画出采样频率分别为200Hz,500Hz,1000Hz时的采样序列波形;
3、分别用傅里叶变换和DFT对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对比各频率下采样序列
和
的幅频曲线的差别。
4、考察序列:
x(n)=cos(0.48πn)+cos(0.52πn)
1)0≤n≤10时,用DFT估计x(n)的频谱;将x(n)补零加长到长度为100点序列用DFT估计x(n)的频谱。
要求画出相应波形。
2)0≤n≤100时,用DFT估计x(n)的频谱,并画出波形
5、利用DFT计算线性卷积,并分析线性卷积等于循环卷积的条件。
四、详细程序及仿真波形:
1、连续时间信号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),gridon
title('x(t)连续时间信号')
xlabel('时间t');
ylabel('幅度x(t)');
subplot(2,1,2);plot(t,x),gridon
axis([00.045-2160]);
title('调整后的x(t)连续时间信号')
xlabel('时间t');
ylabel('幅度x(t)');
%2.绘制各采样序列x(n)的时域波形
n=0:
64;%定义序列的长度是64
T1=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)
subplot(2,1,2);plot(n,x),gridon
title('x(n)连续时间信号')
subplot(2,1,1);stem(n,x),gridon%绘制序列x(n)的图形
title('x(n)离散时间信号')
figure(3)
subplot(3,1,1);stem(n,y1),gridon
title('200Hz理想采样信号序列');
subplot(3,1,2);stem(n,y2),gridon
title('500Hz理想采样信号序列')
subplot(3,1,3);stem(n,y3),gridon
title('1000Hz理想采样信号序列')
%3.绘制各采样序列x(n)的幅度谱和相位谱
k=-32:
32;
W=(pi/16)*k;%周期序列的傅里叶级数系数中旋转因子中的W
w=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([-2201000]);
subplot(2,1,2);plot(w,angle(Y1));grid,xlabel('w'),ylabel('幅角');
title('200Hz理想采样信号序列的相位谱')
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([-2201000]);
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));grid,xlabel('w'),ylabel('幅度');
title('1000Hz理想采样信号序列的幅度谱');
axis([-2201000]);
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点DFT
X01K=fft(x,64);%计算x的128点DFT
X10K=fft(y1,32);
X11K=fft(y1,64);
X20K=fft(y2,64);
X21K=fft(y2,128);
X30K=fft(y3,32);
X31K=fft(y3,64);
figure(7)
subplot(2,1,1);stem(M,abs(X00K));grid
on,xlabel('K'),ylabel('|X(K)|');
title('x(n)序列的32点DFT幅度谱');
subplot(2,1,2);stem(N,abs(X01K));gridon,xlabel('K'),ylabel('|X(K)|');
title('x(n)序列的64点DFT幅度谱');
figure(8)
subplot(2,1,1);stem(M,abs(X10K));gridon,xlabel('K'),ylabel('|X(K)|');
title('200Hz理想采样信号序列的32点DFT幅度谱');
subplot(2,1,2);stem(N,abs(X11K));gridon,xlabel('K'),ylabel('|X(K)|');
title('200Hz理想采样信号序列的64点DFT幅度谱');
figure(9)
subplot(2,1,1);stem(N,abs(X20K));gridon,xlabel('K'),ylabel('|X(K)|');
title('500Hz理想采样信号序列的64点DFT幅度谱');
subplot(2,1,2);stem(L,abs(X21K));gridon,xlabel('K'),ylabel('|X(K)|');
title('500Hz理想采样信号序列的128点DFT幅度谱');
figure(10)
subplot(2,1,1);stem(M,abs(X30K));gridon,xlabel('K'),ylabel('|X(K)|');
title('1000Hz理想采样信号序列的32点DFT幅度谱');
subplot(2,1,2);stem(N,abs(X31K));gridon,xlabel('K'),ylabel('|X(K)|');
title('1000Hz理想采样信号序列的64点DFT幅度谱');
波形为:
模拟信号x(t)的波形和0~30毫秒处
模拟信号x(t)采样后的图(因为N=TP*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.48πn)+cos(0.52πn)。
%0≤n≤10时,用DFT估计x(n)的频谱
n=[0:
10];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
y=fft(x);%x(n)频谱n在0到10
subplot(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到100
subplot(3,1,2);
stem(nn,yn);
title('补零后的x(n)的频谱');
%0≤n≤100时,用DFT估计x(n)的频谱
n1=[0:
100];
x1=cos(0.48*pi*n1)+cos(0.52*pi*n1);%x(n)频谱n在0到100
y1=fft(x1);
subplot(3,1,3);
stem(n1,y1);title('n在[0,100]时x(n)的频谱');
波形为:
结论:
利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。
补零加长并不会改变频域的间隔,所以不能提高分辨率。
3、用DFT计算线性卷积。
%时域直接计算卷积
x1n=[211234];x2n=[-122-169];
y=conv(x1n,x2n);
figure
(1)
subplot(3,1,1);stem(x1n);title('输入信号x1n[n]');
subplot(3,1,2);stem(x2n);title('输入信号x2n[n]');
subplot(3,1,3);stem(y);title('输出信号y[n]');
%用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');
subplot(3,1,3);stem(abs(ycn));title('输出信号ycn');
axis([111-100100]);
%用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('用DFT计算6点卷积输出信号y1n');
axis([123-100100]);
%用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([123-100100]);
%用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([123-100100]);
波形如下:
可以得出结论:
只有当N>=M1+M2-1时,线性卷积的值等于用DFT计算的N点的循环卷积。
所计算的DFT的长度同,卷积结果不同,从另一方面证明了DFT和IDFT的唯一性。
时域直接计算卷积时的图
用DFT计算的卷积图
五、结果分析
1、利用DFT计算连续时间信号频谱,首先进行时域抽样,所得的抽样数据进行DFT计算,然后再将离散数据连续化,得到连续时间信号的频谱。
实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。
2、采样频率越大,即采样点越多失真越小。
而在持续时间为T的连续信号采样时,最少采样点为N=TP*FS,并且由采样定理有FS>=FC。
3、一个N点离散时间序列的傅里叶变换(DTFT)所得的频谱是以2π为周期延拓的连续函数。
由采样定理,时域进行采样,则频域周期延拓,同样在频域进行采样,则时域也会周期延拓。
DFT就基于这个理论,在频域进行采样,从而将信号的频谱离散化。
所以,一个N点离散时间信号可以用一个频域内一个N点序列来唯一确定,这就是DFT表达式所揭示的内容。
4、更长的时域信号能够提供更高的频域分辨率,因为一个N点的时域信号能被分解为N/2+1个余弦信号和N/2+1个正弦信号,N增大则(N/2+1)也增大,频域间隔(1/2的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了。
所以利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。
补零加长并不会改变频域的间隔,所以不能提高分辨率。
5、只有当N>=M1+M2-1时,线性卷积的值等于用DFT计算的N点的循环卷积。
所计算的DFT的长度同,卷积结果不同,
六、调试总结:
1、Axis函数设置图形坐标。
2、Conv函数直接进行线性卷积运算。
3、Stem绘制离散图谱,plot用来绘制连续的函数图形。
5、fft进行fft运算。
七、设计总结:
通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。
进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。
因为以前学过信号与系统,但这只是理论知识,通过实验我们才能真正理解其意义。
DFT的利用在以前的学习中也有接触,但是还是没有深刻理解,但是通过这次的仿真作业,我对DFT的原理有了更加深刻清楚的理解,同时还复习和加强了对MATLAB软件的使用。
在仿真的过程中我遇到了不少的问题的,比如刚开始,我对许多matlab软件的内置函数怎么用都不记得了,但是通过对课本的熟悉,又可以很好的运用其中的函数。
还有就是对DFT的原理理解的不是很清楚,所以仿真时边做边找资料,边学习,这样把理论与实际相结合,更能帮助理解和掌握知识。
总的来说,通过这次的课程设计我对数字信号处理的知识又有了深刻的理解,特别是对DFT的应用;同时让我知道熟练的应用MATLAB可以很好的加深我对课程的理解,训练我的思维,使我们能非常直观的了解数字信号的处理结果。
这次仿真真的是受益匪浅,在这个过程中我更加了解了MATLAB的使用方法,学会用DFT分析频谱和计算卷积等,提高了我的分析和动手实践能力。
我相信,这才是老师布置此次作业的真正目的,懂得自己学习,自己总结,自己动手动脑,才能真正的学到知识和能力。
2011年5月8日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 仿真 设计