加载record.wav文件,在第一个子图中绘制时域的波形图,将采样率调整为原来的1/4,在第二个子图中绘制时域的波形图,采用截图工具保存完整图像
时间: 2024-02-25 21:52:01 浏览: 105
xinhao.rar_MATLAB 时域分析_分析离散信号_时域波形图_离散信号 波形
5星 · 资源好评率100%
好的,我理解了你的问题。以下是代码实现:
```python
import matplotlib.pyplot as plt
import numpy as np
import scipy.io.wavfile as wavfile
# 加载音频文件
sr, signal = wavfile.read("record.wav")
# 时域采样点数
n_samples = signal.shape[0]
# 绘制原始的波形图
fig, axs = plt.subplots(2, 1, figsize=(10, 10))
axs[0].plot(np.arange(n_samples) / sr, signal)
axs[0].set_xlabel("Time (s)")
axs[0].set_ylabel("Amplitude")
axs[0].set_title("Original Waveform")
# 将采样率调整为原来的1/4
signal_downsampled = signal[::4]
sr_downsampled = sr / 4
# 时域采样点数
n_samples_downsampled = signal_downsampled.shape[0]
# 绘制调整后的波形图
axs[1].plot(np.arange(n_samples_downsampled) / sr_downsampled, signal_downsampled)
axs[1].set_xlabel("Time (s)")
axs[1].set_ylabel("Amplitude")
axs[1].set_title("Downsampled Waveform")
# 保存完整图像
plt.savefig("waveform.png")
```
执行以上代码,会在当前目录下生成一张名为 `waveform.png` 的图片,包含了两个子图:左边是原始的波形图,右边是采样率调整后的波形图。如需显示图片,可以使用 `plt.show()` 命令。
阅读全文