相关疑难解决方法(0)

Python:在傅立叶分析之后设计时间序列过滤器

我已经分析了一个每小时3小时的温度数据的时间序列,并发现了使用傅里叶分析的功率谱。

data = np.genfromtxt('H:/RData/3hr_obs.txt',
                      skip_header=3)

step = data[:,0]
t    = data[:,1]
y    = data[:,2]
freq = 0.125

yps = np.abs(np.fft.fft(y))**2
yfreqs = np.fft.fftfreq(y.size, freq)
y_idx = np.argsort(yfreqs)

fig = plt.figure(figsize=(14,10))
ax = fig.add_subplot(111)
ax.semilogy(yfreqs[y_idx],yps[y_idx])
ax.set_ylim(1e-3,1e8)
Run Code Online (Sandbox Code Playgroud)

原始数据: 原始数据

频谱:

频谱

功率谱:

功率谱

既然我知道信号在1和2频率处最强,我想创建一个滤波器(非棚车),该滤波器可以使数据平滑以保持那些主导频率。

是否有特定的numpy或scipy函数可以做到这一点?这将是必须在主软件包之外创建的东西吗?

python filtering numpy fft scipy

5
推荐指数
1
解决办法
2188
查看次数

标签 统计

fft ×1

filtering ×1

numpy ×1

python ×1

scipy ×1