用python绘制时间序列的瞬时频率
时间: 2024-10-15 20:06:21 浏览: 16
在Python中,我们可以使用matplotlib库结合其他信号处理库如NumPy和SciPy来绘制时间序列的瞬时频率。以下是简单的步骤:
1. **导入所需库**:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import welch
```
2. **生成模拟数据**(这里假设有一个已知频率的正弦波信号):
```python
fs = 1000 # 采样率
t = np.arange(0, 1, 1/fs) # 时间轴
freq = 5 # 模拟信号的频率
signal = np.sin(2 * np.pi * freq * t)
```
3. **计算瞬时频率**(这里使用Welch's periodogram方法):
```python
f, Pxx_spec = welch(signal, fs=fs, nperseg=len(t)//4)
```
4. **绘制频谱图**:
```python
plt.plot(f, Pxx_spec, 'r', linewidth=1)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power/Frequency')
plt.title('Instantaneous Frequency of Time Series Signal')
plt.grid(True)
plt.show()
```
阅读全文