基于python的时间序列频域分析的代码
时间: 2023-12-29 13:03:01 浏览: 22
以下是基于Python进行时间序列频域分析的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成时间序列数据
t = np.linspace(0, 10, 1000)
y = np.sin(2 * np.pi * t) + np.random.randn(len(t)) * 0.1
# 进行傅里叶变换
freqs = np.fft.fftfreq(len(t))
fft = np.fft.fft(y)
# 取实部,计算幅值和相位
fft_real = np.real(fft)
amp = np.abs(fft_real)
phase = np.angle(fft_real)
# 绘制频域分析图像
fig, axs = plt.subplots(2, 1, figsize=(8, 6))
axs[0].plot(t, y)
axs[0].set_xlabel('Time')
axs[0].set_ylabel('Amplitude')
axs[1].plot(freqs, amp)
axs[1].set_xlabel('Frequency')
axs[1].set_ylabel('Amplitude')
plt.show()
```
这段代码首先生成了一个包含噪声的正弦波时间序列数据,然后使用`numpy.fft`库中的`fft`函数进行傅里叶变换,得到频域数据。接着取实部,计算幅值和相位,并使用`matplotlib`库绘制出时域和频域的图像。您可以根据自己的数据进行调整和修改。