matlab2021b 版无法使用dsp.AudioFileReader,还可以怎样修改代码呢
时间: 2024-04-15 13:27:38 浏览: 97
如果你使用的是MATLAB 2021b版本,无法使用`dsp.AudioFileReader`对象,你可以尝试使用`audioread`函数来读取wav文件,并将读取到的音频数据直接传递给变量`audioIn`。以下是修改后的代码:
```matlab
timeLength = 0.1; % 采样时长,单位秒
fs = 8000;
N = 8192;
samples = timeLength * fs; % 默认采样率fs,计算采样点
% 读取wav文件
filename = 'your_wav_file.wav'; % 替换为你的wav文件路径
[audioIn, fs] = audioread(filename);
figure('Name', '实时频谱', 'MenuBar', 'none', 'ToolBar', 'none', 'NumberTitle', 'off');
drawnow;
while 3 > 2
subplot(121);
plot(1:1:samples, audioIn);
spectr_audio = fft(audioIn, N);
f = 0:1:N-1;
subplot(122);
plot(f, log(abs(spectr_audio)));
drawnow; % 刷新
end
```
请确保你已经替换了`your_wav_file.wav`为你想要读取的wav文件的路径。运行这段代码时,将会实时读取wav文件并显示音频波形和频谱图。循环会一直执行下去,直到手动中断程序。
需要注意的是,这段代码中直接使用了`audioread`函数来读取wav文件,而不再需要音频设备读取器对象。同时,记得在最后释放资源,可以手动中断程序来停止循环。
阅读全文