用python写出matlab实现读取声音并进行频谱显示
时间: 2023-12-10 18:42:44 浏览: 194
基于matlab实现频谱分析
5星 · 资源好评率100%
可以使用Python中的`matplotlib`和`numpy`库实现读取声音并进行频谱显示。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
from scipy.io import wavfile
# 读取声音文件
rate, data = wavfile.read("sound.wav")
# 取声道1的数据
data = data[:, 0]
# 计算FFT
fft_out = np.fft.fft(data)
# 计算频率
freqs = np.fft.fftfreq(len(data))
# 取前一半的数据
fft_out = fft_out[:len(fft_out)//2]
freqs = freqs[:len(freqs)//2]
# 绘制频谱图
plt.plot(freqs, np.abs(fft_out))
plt.xlabel("Frequency (Hz)")
plt.ylabel("Amplitude")
plt.show()
```
其中,`wavfile.read()`函数用于读取声音文件,返回采样率和数据。使用`numpy`库中的`fft()`函数计算FFT,并使用`matplotlib`库绘制频谱图。
阅读全文