生成一个48000采样率的1Khz测试音频跟对应音频的频域图,时域图和相位图
时间: 2023-07-23 09:05:05 浏览: 50
生成1kHz测试音频的代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.io.wavfile import write
# 设置采样率
sample_rate = 48000
# 设置时长
duration = 1.0
# 生成时间轴
time = np.linspace(0, duration, int(sample_rate*duration), endpoint=False)
# 生成1kHz正弦波
freq = 1000
signal = np.sin(2*np.pi*freq*time)
# 保存音频
write('test_audio.wav', sample_rate, signal)
# 绘制频域图
fft_signal = np.fft.fft(signal)
freqs = np.fft.fftfreq(signal.size, 1/sample_rate)
plt.plot(freqs[:int(freqs.size/2)], np.abs(fft_signal)[:int(fft_signal.size/2)])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.title('Frequency domain')
plt.show()
# 绘制时域图
plt.plot(time, signal)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.title('Time domain')
plt.show()
# 绘制相位图
phase = np.angle(fft_signal)
plt.plot(freqs[:int(freqs.size/2)], phase[:int(phase.size/2)])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Phase')
plt.title('Phase')
plt.show()
```
运行后,会生成名为 `test_audio.wav` 的音频文件,并绘制出对应的频域图、时域图和相位图。