例程13-14.m

来自「小波分析与matlab实现的配套源程序」· M 代码 · 共 36 行

M
36
字号
% 当前延拓模式是补零
% 设置信噪比和随机数种子
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');
% 画出原始信号
subplot(611), plot(xref), axis([1 2048 -10 10]); 
title('原始信号'); 
subplot(612), plot(x), axis([1 2048 -10 10]); 
title(['噪声信号 - 信噪比为 ',num2str(fix(snr))]); 
subplot(613), plot(xd), axis([1 2048 -10 10]); 
title('降噪信号 - heuristic SURE'); 
% 使用软SURE阈值降噪 
xd = wden(x,'heursure','s','one',lev,'sym8');
% 画出信号
subplot(614), plot(xd), axis([1 2048 -10 10]); 
title('降噪信号 - SURE');
% 对噪声标准差进行单层估计,使用fixed form阈值降噪
xd = wden(x,'sqtwolog','s','sln',lev,'sym8');
% 画出信号
subplot(615), plot(xd), axis([1 2048 -10 10]); 
title('降噪信号 - Fixed form 阈值');
% 对噪声标准差进行多层估计,使用minimax阈值降噪
xd = wden(x,'minimaxi','s','sln',lev,'sym8');
% 画出信号
subplot(616), 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');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?