收藏 分享(赏)

数字信号处理课程仿真大作业.doc

上传人:eco 文档编号:4728196 上传时间:2019-01-09 格式:DOC 页数:14 大小:908.50KB
下载 相关 举报
数字信号处理课程仿真大作业.doc_第1页
第1页 / 共14页
数字信号处理课程仿真大作业.doc_第2页
第2页 / 共14页
数字信号处理课程仿真大作业.doc_第3页
第3页 / 共14页
数字信号处理课程仿真大作业.doc_第4页
第4页 / 共14页
数字信号处理课程仿真大作业.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、数字信号处理课程仿真大作业一、课程设计题目:基于 MATLAB 的利用 FFT 进行频谱分析二、课程设计目的:1、加深对数字信号处理学习过的基本概念、基本理论和基本方法的理解和掌握;2、学会用 MATLAB 对信号进行分析和处理,进一步将知识融会贯通;3、加深对 FFT 原理的理解,学会应用 FFT 分析信号频谱;4、学会撰写课程设计报告,并应用数字信号处理的基本理论分析结果。三、课程设计内容:1、自编程序得到一个方波信号(f=50Hz,幅值为 1,-1,各半个周期) ,对其一个周期分别采样 256 点和 1024 点,利用基于 Matlab 语言所编 FFT 程序做谐波分析,并与理论分析结果

2、对照。2、对三角波信号(可以由方波信号求导得到)重复作业一的各项要求。3、对一、二信号叠加一个白噪声信号(均值为零,方差为 0.2)所构成的随机信号用 FFT 进行频谱分析。4、对以上结果进行讨论。5、给出源程序,包含信号如何产生、采样的实现、FFT 函数的调用(或自编) 、绘图等,给出计算机分析结果的图形截图及理论分析的草图。四、详细程序及仿真波形:理论分析:用 FFT 分析周期函数的频谱结构,选择不同的截取长度 Ts 观察用 FFT 进行频谱分析时存在的截断效应(频谱泄露和谱间干扰)。利用 matlab 的 FFT 对模拟信号进行谱分析时,只能以有限大的采样频率 Fs 对模拟信号采样有限点

3、样本序列(等价于截取模拟信号一段进行采样)作 FFT 变换,得到模拟信号的近似频谱。其误差主要来自以下因素:(1)截断效应(频谱泄露和谱间干扰)截断效应使谱分辨率(能分辨开的两根谱线间的最小间距)降低,并产生谱间干扰。(2)频谱混叠失真使折叠频率(Fs/2)附近的频谱产生较大失真。理论和实践都已证明,加大截取长度 Ts 可以提高分辨率;另外选择合适的窗函数可降低谱间干扰;而频谱混叠失真要通过提高采样频率 Fs 或预滤波(在采样之前滤除折叠频率以外的频率成分)来改善。用 FFT 进行频谱谐波理论理论分析:在信号处理中,信号的频谱分析是重要的应用领域之一。由于 FFT 在计算上的高效率,以及在计算

4、机上的应用, 连续时间或离散时间的信号谱分析都直接或间接地利用了这一技术。对于一个周期的信号,作谐波分析,我们可以对其进行傅里叶级数展开,将其看做是许多不同频率的谐波叠加。而利用 FFT 变换是,由于是采用间隔取样进行频谱分析,其必然会丢失一些频谱分量,因此在频谱曲线就会少一些频谱尖峰,如果采样点越多,丢失的频谱尖峰就越少。模拟仿真实验中,我们分别取 256 和 1024 个采样点对方波信号和三角波信号进行 FFT 变换的谐波分析,以下为实验源程序及图形截图。1、一个方波信号(f=50Hz,幅值为 1,-1,各半个周期)的产生cleart=0:0.00001:0.04;f=50;x=squar

5、e(2*pi*f*t);plot(t,x);axis(0 0.04 -1.5 1.5);图中我们绘出了两个周期的方波图形,其频率 f=50Hz,周期 T=0.02s,振幅为+1,-1。对一个周期分别采样 256 点和 1024 点,利用 matlab 的 FFT 程序做频谱分析分析。利用 FFT 函数求解周期方波信号,经过分析可以得知,信号的最高频率是 50Hz, ,因此采样周期必须小于 2pi/50,即采样频率必须大于 50Hz,去N=256,N=1024。为了能够形象说明 FFT 程序做频谱分析分析的作用,利用 FFT 函数求解周期方波信号时,采样间隔 Ts 我们并没有采用 Ts=0.02

6、/N,而是采用了一个适当的值。clearn=0:1:255;N=256;Ts=1./1000;t=n.*TsXn=square(50*2*pi*t,50)w=hamming(N)c=bartlett(N)H=Xn.*wB=Xn.*csubplot(2,1,1);plot(t,Xn,r);title(方波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=256 方波频谱曲线)以上两个图,一个是连续的方波和方波频谱曲线,另一个是离散的句柄方波和方波曲线,绘制第二张图时,只需将源程序的最后两行命令:subplot(2,1,1);plot(t,Xn,r);

7、title(方波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=256 方波频谱曲线)改为:subplot(2,1,1);stem(t,Xn,r);title(方波曲线)subplot(2,1,2);stem(abs(fft(Xn,N),r);title(N=256 方波频谱曲线)下面我们讨论采用点为 N=1024 的情况:clearn=0:1:1023;N=1024;Ts=1./10000;t=n.*TsXn=square(50*2*pi*t,50)w=hamming(N)c=bartlett(N)H=Xn.*wB=Xn.*csubplot(2

8、,1,1);plot(t,Xn,r);title(方波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=256 方波频谱曲线)以上两个图,一个是连续的方波和方波频谱曲线,另一个是离散的句柄方波和方波曲线,绘制第二张图时,只需将源程序的最后两行命令:subplot(2,1,1);plot(t,Xn,r);title(方波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=1024 方波频谱曲线)改为:subplot(2,1,1);stem(t,Xn,r);title(方波曲线)subplot(2,1,2);

9、stem(abs(fft(Xn,N),r);title(N=1024 方波频谱曲线)结论:从图中可以看出,当 N=256 时分辨率太小,只看到 10 个尖峰;当N=1024 时,分辨率加大,则显示出远远大于 10 个尖峰。同时可以看出,当把N 加倍时,其高度也增加数倍。另外,对于一个周期的信号,作谐波分析,我们可以对其进行傅里叶分解,将其看做是许多不同频率的谐波叠加。而利用 FFT 变换是,由于是采用间隔取样进行频谱分析,其必然会丢失一些频谱分量,因此在频谱曲线就会少一些频谱尖峰,如果采样点越多,丢失的频谱尖峰就越少。由图中可知,1024 采样点的频谱尖峰比 256 采样点的尖峰多。2、一个三

10、角波信号(f=50Hz,幅值为 1,-1)的产生cleart=0:0.00001:0.04;f=50;x=sawtooth(2*pi*f*t);plot(t,x);axis(0 0.04 -1.5 1.5);对一个周期分别采样 256 点和 1024 点,利用 matlab 的 FFT 程序做频谱分析分析。利用 FFT 函数求解周期方波信号,经过分析可以得知,信号的最高频率是 50Hz, ,因此采样周期必须小于 2pi/50,即采样频率必须大于 50Hz,去N=256,N=1024。为了能够形象说明 FFT 程序做频谱分析分析的作用,利用 FFT 函数求解周期方波信号时,采样间隔 Ts 我们并

11、没有采用 Ts=0.02/N,而是采用了一个适当的值。clearn=0:1:255;N=256;Ts=1./1000;t=n.*TsXn=sawtooth(50*2*pi*t,0.5)w=hamming(N)c=bartlett(N)H=Xn.*wB=Xn.*csubplot(2,1,1);plot(t,Xn,r);title(三角波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=256 三角波频谱曲线)clearn=0:1:1023;N=1024;Ts=1./10000;t=n.*TsXn=sawtooth(50*2*pi*t,0.5)w=ha

12、mming(N)c=bartlett(N)H=Xn.*wB=Xn.*csubplot(2,1,1);plot(t,Xn,r);title(三角波曲线)subplot(2,1,2);plot(abs(fft(Xn,N),r);title(N=1024 三角波频谱曲线) 绘制第二张图时,程序修改见 1 中方波情况的详细分析。结论:从图中可以看出,当 N=256 时分辨率太小,只看到 10 个尖峰;当N=1024 时,分辨率加大,则显示出远远大于 10 个尖峰。同时可以看出,当把N 加倍时,其高度也增加数倍。另外,对于一个周期的信号,作谐波分析,我们可以对其进行傅里叶分解,将其看做是许多不同频率的谐

13、波叠加。而利用 FFT 变换是,由于是采用间隔取样进行频谱分析,其必然会丢失一些频谱分量,因此在频谱曲线就会少一些频谱尖峰,如果采样点越多,丢失的频谱尖峰就越少。由图中可知,1024 采样点的频谱尖峰比 256 采样点的尖峰多。利用 FFT 计算频谱时增加采样点的数量可以提高分辨率。采样点为 256 和1024 时都没有失真,但是 256 时会丢失一些频谱分量,因此在频谱曲线就会少一些频谱尖峰,如果采样点越多,丢失的频谱尖峰就越少。说明采样频率越大,即采样点越多失真越小。由此可见,matlab 模拟结果与理论分析一致。3、对一、二信号叠加一个白噪声信号(均值为零,方差为 0.2)所构成的随机信

14、号用 FFT 进行频谱分析。白噪声信号影响时域信号的强度,但是它不会影响时域信号的频率,因此可以从频域信号中提取有用的信号。实际应用中,接收信号通常都是很微弱的,这就相当于加入了一个较强的噪声项,使有用信号掩埋在噪声之中, 无法直接在时域进行分析。 但将接收信号转换到频域,从频谱上就可以很容易地将有用信号检测出来。 下面举例说明:在 matlab 程序中白噪声信号,我们可以看成是一个随机序列,其程序如下:随机序列:rand(m,n) %产生 m 行,n 列的在0,1上服从均匀分布的随机数矩阵randn(m,n) %产生均值为 0,方差为 1 的高斯随机序列(1)方波:clearsubplot(

15、2,2,1)N=256; n=0:N-1;t=0.01*n; q=n*2*pi/N;x=square(2*pi*t);plot(x,r)title(原始信号)subplot(2,2,3)y=fft(x,N);plot(q,abs(y),r)title(FFT N=256)x1=square(2*pi*t)+0.2*randn(1,N);subplot(2,2,2)plot(x1,r)title(加噪信号)subplot(2,2,4)y1=fft(x1,N);plot(q,abs(y1),r)title(加噪 FFT N=256) (2)三角波:clearsubplot(2,2,1)N=256;

16、 n=0:N-1;t=0.01*n; q=n*2*pi/N;x=sawtooth(2*pi*t,0.5);plot(x,r)title(原始信号)subplot(2,2,3)y=fft(x,N);plot(q,abs(y),r)title(FFT N=256)x1=sawtooth(2*pi*t,0.5)+0.2*randn(1,N);subplot(2,2,2)plot(x1,r)title(加噪信号)subplot(2,2,4)y1=fft(x1,N);plot(q,abs(y1),r)title(加噪 FFT N=256)结论:由图中可以看出,接收信号通常都是很微弱的,在这样强的噪声中,

17、从时域上无法提取淹没在噪声中的信号,而在频域上这种噪声不会影响信号的检测,因此从频谱上就可以很容易地将有用信号检测出来。五、总结分析1、利用 EFT 计算连续时间信号频谱,首先进行时域抽样,所得的抽样数据进行 EFT 计算,然后再将离散数据连续化,得到连续时间信号的频谱。实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。2、采样频率越大,即采样点越多失真越小。而在持续时间为 T 的连续信号采样时,最少采样点为 N=TP*FS ,并且由采样定理有 FS=FC。3、更长的时域信号能够提供更高的频域分辨率,因为一个 N 点的时域信号能被分解为 N/2+1 个余弦信号和

18、N/2+1 个正弦信号,N 增大则(N/2+1)也增大,频域间隔(1/2 的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了。所以利用 DFT 计算频谱时增加取样点的长度范围可以提高分辨率。补零加长并不会改变频域的间隔,所以不能提高分辨率。4、当给一个接受信号加白噪声信号时,接收信号通常都是很微弱的,这就相当于加入了一个较强的噪声项,使有用信号掩埋在噪声之中, 无法直接在时域进行分析。但将接收信号转换到频域,从频谱上就可以很容易地将有用信号检测出来。六、心得体会:通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。进一步加

19、深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。因为以前学过信号与系统,但这只是理论知识,通过实验我们才能真正理解其意义。FFT 的利用在以前的学习中也有接触,但是还是没有深刻理解,但是通过这次的仿真作业,我对DFT 的原理有了更加深刻清楚的理解,同时还复习和加强了对 matlab 软件的使用。在仿真的过程中我遇到了不少的问题的,比如刚开始,我对许多 matlab 软件的内置函数怎么用都不记得了,但是通过对课本的熟悉,又可以很好的运用其中的函数。还有就是对 FFT 的原理理解的不是很清楚,所以仿真时边做边找资料,边学习,这样把理论与实际相结合,更能帮助理解和掌握知识。总的来说,通过这次的课程设计我对数字信号处理的知识又有了深刻的理解,特别是对 FFT 的应用;同时让我知道熟练的应用 matlab 可以很好的加深我对课程的理解,训练我的思维,使我们能非常直观的了解数字信号的处理结果。这次仿真真的是受益匪浅,在这个过程中我更加了解了 matlab 的使用方法,学会用 FFT 分析频谱和计算卷积等,提高了我的分析和动手实践能力。我相信,这才是老师布置此次作业的真正目的,懂得自己学习,自己总结,自己动手动脑,才能真正的学到知识和能力。高彦艳2011 年 11 月 18 日

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

当前位置:首页 > 中等教育 > 小学课件

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


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

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

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