对record.wav执行短时傅里叶变换,将该文件的波形图和频谱图展示在一个figure中,采用截图工具保存完整图片。
时间: 2024-02-25 21:53:01 浏览: 83
好的,这是一个音频信号处理的问题。下面是一些Python代码实现这个问题:
```python
import numpy as np
import matplotlib.pyplot as plt
import soundfile as sf
from scipy import signal
# 读取录音文件
data, sr = sf.read('record.wav')
# 设置短时傅里叶变换参数
window = signal.windows.hann(1024)
noverlap = 512
# 计算短时傅里叶变换
f, t, Zxx = signal.stft(data, fs=sr, window=window, noverlap=noverlap)
# 绘制原始信号的波形图
plt.figure(figsize=(15, 10))
plt.subplot(211)
plt.plot(data)
plt.title('Waveform of Original Signal')
plt.xlabel('Sample Index')
plt.ylabel('Amplitude')
# 绘制原始信号的频谱图
plt.subplot(212)
plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=np.max(np.abs(Zxx)))
plt.title('Spectrogram of Original Signal')
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.ylim([0, 8000])
plt.colorbar()
# 保存图片
plt.tight_layout()
plt.savefig('stft.png')
```
执行上述代码后,将会生成一个名为 `stft.png` 的图片,其中包含了原始信号的波形图和频谱图。
阅读全文