序列的离散傅里叶变换(DFT)的来龙去脉并附利用MATLA的函数FFT()求序列的DFT的示例

Posted 昊虹算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列的离散傅里叶变换(DFT)的来龙去脉并附利用MATLA的函数FFT()求序列的DFT的示例相关的知识,希望对你有一定的参考价值。

一、周期序列的离散傅里叶级数(DFS)
对于上面这段话要补充说明的是:
①DFS的全称为Discrete Fourier Series
②连续时间信号下的 Ω = 2 π T \\Omega =\\frac2\\pi T Ω=T2π为基波角频率,由于T的单位为秒(s),所以其单位为rad/s。离散序列下的 Ω = 2 π N \\Omega =\\frac2\\pi N Ω=N2π为数字角频率,由于N是没有单位的,所以其单位为rad,即把 2 π 2\\pi 2π分成N份。这一点要特别注意,即要注意区分角频率和数字角频率的不同。
③要注意小写字母n的意义和小写字母k的意义。小写字母n是对基波角频率或基波数字角频率的倍增,而k是从连续时间信号的t转变而来的。

从以上图片我们知道了为什么n的取值我们可以限定到n=0,1,2 …,N-1

注意上面这幅图片中离散傅里叶系数的表达式 F N ( n ) F_N(n) FN(n)是怎样的。要明白其中N、n、k、Ω的含义。
要注意:傅里叶系数和傅里叶级数是不一样的,在工程的频域分析中,我们常常用到的是实际上是傅里叶系数。


W代表的表达式要清楚,在工程中我们经常遇到这样的表示方法。

二、离散傅里叶变换(DFT)
以上内容为周期序列的离散傅里叶级数的相关内容,接下来我们切入到本文的正题,即序列的离散傅里叶变换(DFT)是怎么回事。


看了以上两张照片,我们便知道了DFT的来源。原来,DFT是把我们的有限长的离散序列延拓为周期离散序列后,对这个延拓的周期离散序列求离散傅里叶系数的变换。我们平时在做DFT时脑子里要知道DFT求得的傅里叶系数是哪个序列的系数。

三、利用MATLAB的函数FFT()求序列的DFT

上面的图就说明了FFT的来历。MATLAB提供了函数FFT()用于计算序列的DFT。
下面是使用函数FFT()的示例,在该示例中我们利用函数FFT()来计算服从正态分布的序列的频谱。
代码如下:

N = 2000;
norm_sequence_01 = normrnd(0,1,1,N);
DFT_01 = fft(norm_sequence_01);
DFT_01_abs = abs(DFT_01);
digital_frequency = linspace(0,(2*pi/N)*(N-1),N);
plot(digital_frequency,DFT_01_abs);

运行结果如下图所示:



从该运算结果我们可以看出以下3点:
① 序列的DFT是关于π对称的;
② 服从正态分布的序列的频谱在整个数字频谱上几乎是均匀的,这就导致我们没法使用滤波器将其完全滤除。
③ 序列的DFT是复数。

以上是关于序列的离散傅里叶变换(DFT)的来龙去脉并附利用MATLA的函数FFT()求序列的DFT的示例的主要内容,如果未能解决你的问题,请参考以下文章

opencv之傅里叶变换

数字信号入门笔记4—离散傅里叶变换

关于快速傅里叶变换

FFT(快速傅里叶变换)

DFT与傅里叶变换的理解

Opencv 实现图像的离散傅里叶变换(DFT)卷积运算(相关滤波)