python绘制频谱图
时间: 2023-06-01 18:03:22 浏览: 56
要绘制频谱图,我们需要使用Python中的一些库和工具。下面是一个简单的例子,演示如何使用Matplotlib和Numpy绘制频谱图。
首先,我们需要安装Matplotlib和Numpy库:
```
pip install matplotlib
pip install numpy
```
接下来,我们可以使用以下代码读取音频文件,并计算其频谱:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
# 读取音频文件
sample_rate, samples = wavfile.read('audio_file.wav')
# 计算频谱
frequencies, times, spectrogram = plt.specgram(samples, Fs=sample_rate, NFFT=1024, cmap='inferno')
```
在这里,我们使用`wavfile.read()`函数读取音频文件,并使用`plt.specgram()`函数计算频谱。该函数的第一个参数是音频数据,第二个参数是采样率。`NFFT`参数定义了FFT窗口的大小,`cmap`参数定义了使用的颜色映射。
最后,我们可以使用以下代码显示频谱图:
```python
# 显示频谱图
plt.imshow(spectrogram, aspect='auto', origin='lower', cmap='inferno', extent=[times.min(), times.max(), frequencies.min(), frequencies.max()])
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.colorbar()
plt.show()
```
在这里,我们使用`plt.imshow()`函数显示频谱图。`aspect`参数定义了图像的宽高比,`origin`参数定义了图像的原点位置,`extent`参数定义了坐标轴的范围。最后,我们添加了一个颜色条,并使用`plt.show()`函数显示图像。