% 读取音频文件
[y, Fs] = audioread('y1.wav');
% 定义小波函数
wname = 'db3';
% 小波去噪的阈值
thr = 0.2;
% 小波去噪的模式
tmode = 'soft';
% 小波分解级数
level = 4;
% 进行小波分解
[C, L] = wavedec(y, level, wname);%C表示存放近似系数的向量
% 逐层去噪
for i = 1:level
% 计算当前层的索引范围
firstIdx = L(i)+1 ;
lastIdx = L(i+1);
% 计算阈值
sigma = median(abs(C(firstIdx:lastIdx))) / 0.6745;
thr = thselect(C(firstIdx:lastIdx), tmode) * sigma;
% 进行小波去噪
C(firstIdx:lastIdx) = wthresh(C(firstIdx:lastIdx), tmode, thr);
end
% 重构信号
y_denoised = waverec(C, L, wname);
% 播放去噪后的音频
sound(y_denoised, Fs);
% 绘制去噪前后的波形图
subplot(2,1,1);
plot(y);
title('Original Signal');
subplot(2,1,2);
plot(y_denoised);
title('Denoised Signal');
在matlab中运行这段代码后报错