数字信号处理仿真设计.docx

上传人:b****6 文档编号:7626111 上传时间:2023-01-25 格式:DOCX 页数:16 大小:771.21KB
下载 相关 举报
数字信号处理仿真设计.docx_第1页
第1页 / 共16页
数字信号处理仿真设计.docx_第2页
第2页 / 共16页
数字信号处理仿真设计.docx_第3页
第3页 / 共16页
数字信号处理仿真设计.docx_第4页
第4页 / 共16页
数字信号处理仿真设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数字信号处理仿真设计.docx

《数字信号处理仿真设计.docx》由会员分享,可在线阅读,更多相关《数字信号处理仿真设计.docx(16页珍藏版)》请在冰豆网上搜索。

数字信号处理仿真设计.docx

数字信号处理仿真设计

数字信号处理仿真设计

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日

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1