FFT频率和实际物理频率的分析

之前有转载过一篇关于频谱分析的博客,今天想利用FPGA做FFT的有关计算,仔细查看了那篇博客发现原博主写的是一塌糊涂,被逼无奈拿起前几周考完期末考的《数字信号处理》,同时网上也有查资料,终于有一点思路了。
————————————————————————————————————————————
FFT是快速傅里叶变换,是离散傅里叶变换的快速算法。我们想要利用FFT计算频率或者观察频谱特性,离不开DFT的定义和性质。先简单介绍三个名词。

FFT频率和实际物理频率的分析_第1张图片

f 是实际物理频率,表示AD采集物理模拟信号的频率,Fs就是采样频率,根据奈奎斯特采样定理可以知道,Fs必须≥信号最高频率的2倍才能避免产生频谱混叠,也就是说用Fs做采样频率,信号的最高频率为Fs/2。
Ω称为模拟频率。ω称为数字频率。二者的关系ω = Ω/Fs
假设x(n)的N点离散傅立叶变换为X(k),由定义式可以推出X(k)为x(n)的傅里叶变换X(e^jw)在区间[0,2π]上的N点等间隔采样,这也是DFT的物理意义。DFT的变换区间长度N不同,表示对傅里叶变换X(e^jw)在区间[0,2π]上的采样间隔和采样点数不同。N点DFT的结果还是N点。
我们通常只关心0~π的频谱,这是由于只有f = Fs/2范围内才是被采样到的有效信号。也既在ω的范围内得到的频谱是对称。

举一个简单的例子,如果做16点DFT,假设模拟信号的最高频率为f = 64KHz,采样频率是Fs = 128KHz,根据模拟频率和数字频率的关系可以知道128KHz的模拟采样频率被分成16份,每一份是8KHz,这就是频率分辨率(频率分辨率可以理解为在使用DFT时,在频率轴上的所能得到的最小频率间隔f0 = fs/N =1/T ,其中N为采样点数, fs为采样频率,T为采样前模拟信号的时间长度。所以信号长度越长,频率分辨率越好。摘自百度百科)。如果想要提高频率分辨率,在做FFT的时候可以适当增加采样点数。那么DFT得到的频谱的横坐标,n = 0时对应的f = 0,n = 1时对应的f = 8KHz,依次类推n = 7时对应f = 56KHz,因为模拟信号的最高频率为64KHz,而且频谱是关于n = 8对称,所以我们只需要关心n取0~7以内的频谱就足够了。
如果我们想求第k个点的实际频率,我们必须知道原信号的采样频率和采样点数。公式为f(k)=k*(fs/n)。

用DFT对连续信号进行谱分析
在对连续信号进行谱分析时,主要关心两个问题,就是谱分析范围和频率分辨率。谱分析范围为[0,Fs/2],直接受采样频率Fs的限制,为了不产生频谱混叠失真,通常要求信号的最高频率f < Fs/2。频率分辨率用频率采样间隔F来描述,F = Fs/N;F表示谱分析中能够分辨的两个频率分量的最小间隔。F较小时,频率分辨率较高。如果维持采样频率Fs不变,为提高频率分辨率可以增加采样点数N,只要增加对信号的观察时间Tp,才能增加采样点数N。
用DFT进行谱分析的误差问题
DFT可用来对连续信号和数字信号进行谱分析,在实际分析过程中,要对连续信号采样和截断,就会引发误差,下面介可能产生误差的三种现象。
(1)混叠现象。对连续信号进行谱分析是,首先要对其采样,变成时域离散信号后才能用DFT(FFT)进行谱分析。采样速率Fs必须满足奈奎斯特采样定理,否则会在Fs/2附近发生频谱混叠现象。
(2)栅栏效应。N点DFT是在频率区间[0,2π]上对时域离散信号的频谱进行N点等间隔采样,而采样点之间的频谱是看不到的。就像上文中举的例子,原来信号可能会在5KHz出有频谱的分量,但我们的频率分辨率只有8KHz,这就导致我们无法观察在5KHz的分量。要想观察,我们就必须提高频率分辨率。对于有限长序列,可以在原序列尾部补零;对于无限长序列,可以增大截取长度及DFT变换区间长度,从而使频域采样间隔变小,增加频域采样点数和采样点位置,使原来漏掉的某些频谱分量被检测出来。对于连续信号的谱分析,只要采样速率Fs足够高,且采样点数满足频率分辨率要求,就可以认为DFT后所得离散谱的包络近似代表原信号的频谱。
(3)截断效应。实际中遇到的序列x(n)可能无限长的,用DFT进行谱分析时,必须将其截断,形成有限长序列。而截断后序列的频谱必将发生变化。主要有两个方面:
①泄露 :原来的序列的频谱是离散谱线,经截断后,使原来的离散谱线向附近展宽。通常称这种展宽为泄露。泄露使频谱变模糊,频率分辨率降低。
②谱间干扰。

你可能感兴趣的:(FPGA)