matlab读取wav,播放wav,改变速率后绘制波形图
时间: 2023-07-16 11:16:59 浏览: 101
以下是一个示例代码,可以读取 WAV 文件、改变速率并绘制波形图:
```matlab
% 读取 WAV 文件
filename = 'example.wav';
[y, Fs] = audioread(filename);
% 播放 WAV 文件
sound(y, Fs);
% 改变速率
speed_factor = 0.5; % 降低一半速率
y_new = resample(y, round(length(y)*speed_factor), length(y));
% 绘制波形图
t = (0:length(y)-1)/Fs;
t_new = (0:length(y_new)-1)/Fs/speed_factor;
figure;
subplot(2,1,1);
plot(t, y);
title('Original Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(t_new, y_new);
title('New Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
```
其中,`audioread` 函数可以读取 WAV 文件中的音频数据和采样率,`sound` 函数可以播放音频,`resample` 函数可以改变速率,`plot` 函数可以绘制波形图。注意,在绘制新波形图时,时间轴需要除以速率因子以保持时间长度一致。
阅读全文