一维小波降噪的综合应用实例
%当前延拓模式是补零
%设置信噪比和随机数种子
snr=3;init=2055615866;
%产生原始信号,并叠加标准高斯白噪声
[xref,x]=wnoise(3,11,snr,init);
%对 x 使用 sym8 小波进行 5 层分解,得到高频系数。使用 SURE 阀值、软阀值进行
降噪
lev=5;
xd=wden(x,'heursure','s','one',lev,'sym8');
figure(1);
set(gcf,'color','w');
%画出原始信号
subplot(311),plot(xref),axis([1 2048 -10 10]);
title('原始信号');
subplot(312),plot(x), axis([1 2048 -10 10]);
title(['降噪信号-信噪比为',num2str(fix(snr))]);
subplot(313),plot(xd), axis([1 2048 -10 10]);
title('降噪信号-heuristic SURE');
% 使用软 SURE 阀值降噪
xd=wden(x,'heursure','s','one',lev,'sym8');
%画出信号
figure(2);
set(gcf,'color','w');
subplot(311),plot(xd), axis([1 2048 -10 10]);
title('降噪信号-SURE');
% 对噪声标准差进行单层估计,使用 fixed form 阀值降噪
xd=wden(x,'sqtwolog','s','sln',lev,'sym8');
% 画出信号
subplot(312),plot(xd), axis([1 2048 -10 10]);
title('降噪信号-Fixed form 阀值');
% 对噪声标准差进行单层估计,使用 minimax 阀值降噪
xd=wden(x,'minimaxi','s','sln',lev,'sym8');
% 画出信号
subplot(313),plot(xd), axis([1 2048 -10 10]);
title('De-noised signal-Minimax');
% 如果需要多次尝试,最后是执行一次分解,多次设置阀值
% 分解
[c,l]=wavedec(x,lev,'sym8');
% 使用小波分解结构[c,l]设置阀值
xd=wden(c,l,' minimaxi','s','sln',lev,'sym8');
结果如图所示。
评论0