计算时频谱并显示(1Hz-100Hz)的python代码
时间: 2023-04-09 15:02:56 浏览: 87
以下是计算时频谱并显示(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
x = np.sin(2*np.pi*f1*t) + np.sin(2*np.pi*f2*t)
# 计算时频谱
nfft = 1024 # FFT点数
window = np.hamming(nfft) # 窗函数
noverlap = nfft//2 # 重叠长度
f, t, Sxx = plt.specgram(x, NFFT=nfft, Fs=fs, window=window, noverlap=noverlap, cmap='jet', mode='magnitude')
# 显示时频谱
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.xlim([0, 1])
plt.ylim([1, 100])
plt.colorbar()
plt.show()
```
这段代码可以生成一个包含两个正弦波的信号,并计算其时频谱。时频谱是一种将信号在时间和频率两个维度上的变化可视化的方法,可以帮助我们更好地理解信号的特性。在这个例子中,我们使用了matplotlib库中的specgram函数来计算时频谱,并使用了Hamming窗口和50%的重叠长度来平滑和增加时频谱的分辨率。最后,我们使用matplotlib库中的plot函数来显示时频谱。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)