失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数字信号处理系列串讲第12篇(离散信号的频域分析之五)——FFT分析信号频谱题目解答

数字信号处理系列串讲第12篇(离散信号的频域分析之五)——FFT分析信号频谱题目解答

时间:2018-11-22 15:03:19

相关推荐

数字信号处理系列串讲第12篇(离散信号的频域分析之五)——FFT分析信号频谱题目解答

最后给了一道题,题目如下:

欲解此题,关键掌握以下几点:

第一,分清“截取数据长度”(即窗函数长度)与“DFT点数”二者的不同;

第二,能够根据模拟频率推断出DFT谱峰处对应的序号k的数值,方法如下:

首先,由模拟频率转换为数字域频率:

然后,数字域频率对应到DFT的序号k

综合以上两式,得到:

【题目分析与解答】

我们按照DFT分析信号频谱的三个步骤来分别求解:

第一步:采样。所以首先,我们写出采样后离散时间信号的表达式:

其周期为10。

第二步:时域加窗(即截取)

截取10点长,相当于将该周期信号x(n)与10点长的矩形窗相乘,得到v(n),所以我们求v(n)的DTFT。

先把公式写出来吓吓大家(

然后,画图安抚一下大家受伤的心灵(

注意,上图中只画出了[-Π,Π] 区间的图形,实际上DTFT是以2Π为周期的(所以吓人的公式中有西格玛求和符号)。

第三步:频域抽样,也就是对V(e^jw)在 [0,2Π] 区间抽取N个点(N为DFT点数,而非第二步中截取的长度)

再次把狐假虎威的公式摆出来(因为有些同学有强迫症,非要看看公式长什么样)

其实V(k) 就是下图中的红点点啦。

好了,那么最后的问题就是,N取不同值时(也就是做不同点数的DFT)这些红点点显然也不同。对于此题来说,这三种N的取值(10、20、128)得到的结果到底是什么呢?

你看到或者听到这里的话,暂停一下,自己算算呗。

我直接把matlab画图的结果给出来。

用前面的公式算一下:f=kfs/N,最后那个128点DFT的图,最高的谱峰序号k是多少?

最后附上matlab程序。

clc;clear all;

f0=1;fs=5;%单位:Hz

n=0:1000;L=10;

xn=cos(2*pi*f0*n/fs);%时域离散时间信号

Xk1=fft(xn(1:L),10);

Xk2=fft(xn(1:L),20);

Xk3=fft(xn(1:L),128);

subplot(311);stem((0:length(Xk1)-1),abs(Xk1));title('10点DFT');

subplot(312);stem((0:length(Xk2)-1),abs(Xk2));title('20点DFT');

subplot(313);stem((0:length(Xk3)-1),abs(Xk3));title('128点DFT');

DFT分析信号频谱,是实际中应用最广泛的数字信号处理算法,还有很多种题目可以出。还是那句话,题目无穷无尽,而原理就那么多,大家只有掌握了其真正含义,才能以不变应万变。

如果觉得《数字信号处理系列串讲第12篇(离散信号的频域分析之五)——FFT分析信号频谱题目解答》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。