我试图从来自this data of housing building permits的these set of slides (PDF p.30,幻灯片的第29页)中复制沃森的谱图。
Watson实现了一条非常平滑的频谱曲线,很容易分辨出峰值频率。当我试图对数据运行FFT时,我得到了一个非常嘈杂的频谱曲线,我想知道是否有中间步骤我遗漏了。
我使用scipy包fftpack在python上运行了傅立叶分析,如下所示:
from scipy import fftpack
fs = 1 / 12 # monthly
N = data.shape[0]
spectrum = fftpack.fft(data.PERMITNSA.values)
freqs = fftpack.fftfreq(len(spectrum)) #* fs
plt.plot(freqs[:N//2], 20 * np.log10(np.abs(spectrum[:N//2])))有人能帮我补上缺失的那一环吗?
原始数据为:

下面是Watson的频谱曲线,这是我试图重现的曲线:

下面是我的结果:

发布于 2020-07-27 01:34:12
发布的曲线看起来不真实。但有许多方法可以获得具有类似“曲率”的平滑结果,使用各种重采样和/或绘图插值。
我喜欢的一种方法是将数据切成多个段(窗口,可能是重叠的),大约比你想看到的最大“凹凸”数长4倍,也许更长一点。然后在使用更长的(大小约为您想要的最终绘图的分辨率)填充零的FFT之前对每个线段进行窗口。然后对多个窗口化分段的多个FFT的结果进行平均。这是因为填充零的FFT (几乎)等同于最高质量的正弦插值低通滤波器。
https://stackoverflow.com/questions/63065675
复制相似问题