计算列表数据list的时频谱并显示(1Hz~100Hz)的python代码
时间: 2023-04-09 17:03:10 浏览: 37
以下是计算列表数据list的时频谱并显示(1Hz~100Hz)的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成测试数据
fs = 1000 # 采样率
t = np.arange(0, 1, 1/fs) # 时间序列
f1 = 10 # 信号频率
f2 = 50
f3 = 80
x = np.sin(2*np.pi*f1*t) + 0.5*np.sin(2*np.pi*f2*t) + 0.2*np.sin(2*np.pi*f3*t)
# 计算时频谱
N = len(x) # 信号长度
f = np.linspace(0, fs/2, N//2+1) # 频率序列
X = np.fft.fft(x) / N # 快速傅里叶变换
Pxx = 2 * np.abs(X[:N//2+1])**2 # 功率谱密度
# 显示时频谱
plt.figure()
plt.subplot(2, 1, 1)
plt.plot(t, x)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.title('Signal')
plt.subplot(2, 1, 2)
plt.plot(f, Pxx)
plt.xlim([1, 100])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power Spectral Density')
plt.title('Spectrum')
plt.show()
```
这段代码可以计算一个包含多个频率分量的信号的时频谱,并将其显示在图像上。其中,使用了numpy库和matplotlib库来进行计算和绘图。
相关推荐
















