N 点DFT的频谱分辨率是2π / N。栅栏效应一节指出可以通过补零观察到更多的频点,但是这并不意味着补零能够提高真正的频谱分辨率。这是因为x[n] 实际上是x(t) 采样的主值序列,而将x[n]补零得到的x'[n] 周期延拓之后与原来的序列并不相同,也不是x(t) 的采样。因此与是不同离散信号的频谱。对于补零至M点的x'的DFT,只能说它的分辨率2π / M仅具有计算上的意义,并不是真正的、物理意义上的频谱。频谱分辨率的提高只能在满足采样定理的条件下增加时域采样长度来实现。
在进行FFT的时候,比如用64点的FFT的程序,在计算32点FFT的时候,补零会产生什么样的
效果?有无影响?
一点影响也没有,
记住隔一个取一个。
x = randn(32,1);
y = zeros(64,1);
y(1:2:64,1) = x;
X = fft(x,32);
Y = fft(y,64);
Z = X - Y(1:32,1);
if norm(Z)>realmin
disp('matlab is bullshit');
end
得到得频谱后32个数值只是前32个数值得一个拷贝
在最后补0才能提高频域采样率
在末尾补零可以得到高密度频谱
想要得到高分辨率频谱还是要增加采样率或者采样点数
在最后补零不能提高分辨率
因为补零并不能增加数据的有效长度。
书上说了,好处有二:
其一是,可使数据点数为2的整次幂,以便于使用FFT
其二,对原数据起到了做插值的作用,一方面克服“栏栅”效应,使谱的外观平滑,
另一方面,由于对数据截短时引起的频域泄漏,有可能在频谱中出现一些难以确认的
谱峰,补零后有可能消除这种现象。
频域的采样率不是指频域分辨率,是指在频域采样点数
重复会出问题的... 做能量谱的时候... 能量谱做出来后会爽爽的变成一个栅栏,但栅栏有数的地方还是队的。