你好
我看过很多与这个问题相关的话题,所以不知道该怎么回答……我希望这能帮助一些人。我可以看到主要有三组人,那些认为不重要的人,那些除以信号点数的人,还有那些除以采样频率的人。首先,对于某些应用,正确的振幅是很重要的。例如,地震的震级是根据频谱的振幅计算出来的。
那么我同意Seis博士的观点,正确的缩放谱的方法是乘以dt。
有人说FFT必须由点的数量划分往往采取正弦波振幅A的例子,希望看到在频谱2个峰,振幅A / 2。然而,这不是傅立叶变换连续正弦波的。傅里叶变换有两个迪拉克。每个峰的值是无限的,集成在频域上是A / 2。因此,对两个峰,我们应该有一个正确缩放的离散频谱的价值
一个/ df / 2 = Npoints * / Fs / 2
Fs是采样频率,df是频率向量的步长。
MATLAB的FFT输出2张图片振幅A * Npoints / 2的等比例缩放频谱的正确的方法是乘以DT = 1 / Fs的fft的。通过Npoints分割突出了,但并不以接近连续信号的频谱的正确因素。
第二点是所述的Parseval方程。我见过很多人说的FFT可以不尊重这种关系或不适用于离散模式。首先,在离散模式,是否应该趋向于连续值。如果无法Npoints啤酒或更小。并且,如果FFT由DT相乘时,输入信号的能量等于光谱的能量。
我经常看到人们用Parseval方程来处理离散信号,这是不正确的
sum(abs(xi).^2) = sum(abs(xi).^2) withX = fft (X)
Parseval关系的正确离散形式是:
总和(abs (xi)。^ 2)* dt =总和(abs (xi)。^ 2)* df
如果正确定义了FFT乘以dt和df,则这种关系是满足的。
此外,还有许多简单的典型傅里叶变换,如指数衰减、三角函数等。你可以模拟时间信号和已知的连续变换,并检查fft*dt是接近连续变换的正确方法。