【发布时间】:2020-07-24 02:03:22
【问题描述】:
我试图从these set of slides(PDF 第 30 页,幻灯片的第 29 页)复制来自 this data of housing building permits 的 Watson 频谱图。
Watson 实现了非常平滑的频谱曲线,其中很容易分辨出峰值频率。 当我尝试对数据运行 FFT 时,我得到了一个非常嘈杂的频谱曲线,我想知道是否缺少一个中间步骤。
我在 python 上运行傅立叶分析,使用 scipy 包 fftpack 如下:
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 的光谱曲线,我试图重现的曲线:
这些是我的结果:
【问题讨论】:
-
我认为他使用了许多 spectral density estimation 技术之一。也许我错过了它,但没有看到他在你链接的那个文件中使用了哪个。可能使用参数模型(例如 AR 模型)来估计自相关系数,然后使用 ACGF 进行插值。
-
注意到 Watson 的峰分布均匀了吗?他的图中的光谱分辨率极低,这些峰值是样本位置,在这些位置之间插入了值。图中只有 7 个频率。看起来他用来制作这张图表的方法会显示完全相同的峰值,但幅度不同,无论数据是什么。
标签: python time-series signal-processing fft