保证代码可以在matlabR2020a版本使用
时间: 2023-12-04 21:06:19 浏览: 31
好的,以下是在 Matlab R2020a 版本中可以使用的代码示例:
```matlab
% 读取语音信号
[x, Fs] = audioread('speech.wav');
% 矩形窗长度
rect_len = 256;
% 三角窗长度
tri_len = 512;
% 帧移
shift = 128;
% 矩形窗功率谱估计
rect_spec = pwelch(x, rect_len, [], [], Fs);
% 三角窗功率谱估计
tri_win = triang(tri_len);
tri_spec = pwelch(x, tri_win, tri_len/2, [], Fs);
% 绘制功率谱图
f = linspace(0, Fs/2, length(rect_spec));
subplot(2,1,1);
plot(f, 10*log10(rect_spec));
title('Rectangular window');
ylabel('Power/frequency (dB/Hz)');
xlabel('Frequency (Hz)');
subplot(2,1,2);
plot(f, 10*log10(tri_spec));
title('Triangular window');
ylabel('Power/frequency (dB/Hz)');
xlabel('Frequency (Hz)');
```
上述代码中,使用 `audioread` 函数读取了名为 `speech.wav` 的语音信号,并设置了矩形窗长度为 `256`,三角窗长度为 `512`,帧移为 `128`。
然后,使用 `pwelch` 函数对语音信号进行矩形窗和三角窗功率谱估计,得到 `rect_spec` 和 `tri_spec`。
最后,绘制功率谱图,其中横轴为频率,纵轴为功率(以 dB/Hz 为单位)。