用matlab 写一个声音频谱分析代码
时间: 2023-05-29 11:06:07 浏览: 457
以下是一个简单的 Matlab 代码,用于对音频进行频谱分析:
```matlab
% 读取音频文件
filename = 'example.wav';
[x, fs] = audioread(filename);
% 设置频谱分析参数
windowSize = 1024;
hopSize = 512;
nfft = 1024;
% 计算STFT
[S, f, t] = stft(x, windowSize, hopSize, nfft, fs);
% 取绝对值平方,获得功率谱密度
P = abs(S).^2;
% 绘制频谱图
imagesc(t, f, 10*log10(P));
axis xy;
xlabel('时间 (秒)');
ylabel('频率 (Hz)');
colorbar;
```
这个代码使用了 Matlab 的 `stft` 函数来计算短时傅里叶变换,生成了一个时间-频率图像。使用 `imagesc` 函数来绘制频谱图。
阅读全文