python计算wav文件功率谱并画图代码
时间: 2023-08-06 10:03:28 浏览: 174
下面是Python计算wav文件功率谱并绘制图像的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
import wave
# 打开WAV文件
with wave.open("test.wav", "rb") as wav_file:
# 读取音频采样率
framerate = wav_file.getframerate()
# 读取音频数据
frames = wav_file.readframes(-1)
signal = np.frombuffer(frames, dtype="int16")
# 计算功率谱
nfft = 1024 # FFT窗口大小
window = np.hanning(nfft) # 汉宁窗函数
Pxx, freqs, bins, im = plt.specgram(
signal, NFFT=nfft, Fs=framerate, window=window, noverlap=nfft // 2
)
# 绘制功率谱图
plt.xlabel("Time [s]")
plt.ylabel("Frequency [Hz]")
plt.colorbar()
plt.show()
```
这段代码中,我们首先使用 `wave` 模块打开 WAV 文件,并读取音频采样率和数据。然后,我们使用 `matplotlib` 中的 `specgram` 函数计算音频信号的功率谱,并绘制图像。在绘制图像之前,我们还设置了 x 轴和 y 轴的标签,并添加了一个颜色条。
阅读全文