gusucode.com > 小波等多种方法去噪和信噪比成程序和本科毕设matlab源码程序 > 仿真以及图/xiaobo.m

    clear
close all
clc

%% 产生一个长为2^10点,包含高斯白噪声的正弦信号,信噪比0.1。

sqrt_snr=2;

[x,xn]=wnoise(1,10,sqrt_snr);


figure
subplot(211)
plot(x)
title('原始信号')
subplot(212)
plot(xn)
title('染噪信号')
set(gcf,'Color',[1 1 1])

lev=5;
%% 用全局默认阈值进行去噪处理 
[thr,sorh,keepapp]=ddencmp('den','wv',x);         % 获取全局默认阈值 
xd=wdencmp('gbl',x,'dmey',lev,thr,sorh,keepapp);    %利用全局默认阈值对信号去噪

figure
subplot(311)
plot(x)
title('原始信号')
subplot(312)
plot(xn)
title('染噪信号')
subplot(313)
plot(xd)
title('dmey小波全局默认阈值去噪')
set(gcf,'Color',[1 1 1])
%% 启发式阈值,不随噪声水平变化
lev=5;
xd=wden(x,'heursure','s','one',lev,'sym3');

figure
subplot(311)
plot(x)
title('原始信号')
subplot(312)
plot(xn)
title('染噪信号')
subplot(313)
plot(xd)
title('sym3小波启发式SURE阈值去噪')
set(gcf,'Color',[1 1 1])
% 利用’sym8’小波对信号分解,在分解的第5层上,利用启发式SURE域值选择法对信号去噪。


%% 启发式阈值,根据第一层小波分解的噪声水平估计进行调整
xd=wden(x,'heursure','s','sln',lev,'haar'); 
figure
subplot(311)
plot(x)
title('原始信号')
subplot(312)
plot(xn)
title('染噪信号')
subplot(313)
plot(xd)
title('haar小波软SURE阈值去噪')
set(gcf,'Color',[1 1 1])
% 同上’sym8’小波对信号分解条件,但用软SURE域值选择算法对信号去噪。


%% 固定式阈值
xd=wden(x,'sqtwolog','s','sln',lev,'db3'); 
figure
subplot(311)
plot(x)
title('原始信号')
subplot(312)
plot(xn)
title('染噪信号')
subplot(313)
plot(xd)
title('db3小波固定式阈值去噪')
set(gcf,'Color',[1 1 1])