matlabウェーブレットノイズ除去プログラム

2920 ワード

本文には多くの例がありますが、皆さんは自分で取ります.
%%%%              
clear all;clc ;close all;
load noissin;
figure;
s=noissin(1:1000);
subplot(211);plot(noissin);
title('       ');
[C,L]=wavedec(s,3,'sym2');
a=[1 2 3 ]; %%     
p=[97 98 95];  %%      
nc=wthcoef('d',C,L,a,p); 
sd=waverec(nc,L,'sym2');    
subplot(212); plot(sd);title('      ')
%%%%%%%               
clear all;
clc ;
y=linspace(-1,1,100);
thr=0.4;
%%%       
ythard=wthresh(y,'h',thr);
ytsoft=wthresh(y,'s',thr);

figure;
subplot(311);plot(y); grid on; title('    ');
subplot(312);plot(ythard);grid on; title('     ');
subplot(313);plot(ytsoft);grid on; title('     ');
% 
clear all;
close all;
clc;

%%%%      
load leleccum;
indx = 1:1024;
x = leleccum(indx);
%      
init = 2055615866;
randn('seed',init);
nx = x + 18*randn(size(x));
%   nx      'sym5'    5 
%  mimimaxi          ,        ,
lev = 5;
xd = wden(nx,'minimaxi','s','mln',lev,'sym5');
subplot(221);
plot(x);
title('    ');
subplot(222);
plot(nx);
title('    ');
subplot(223);
plot(xd);
title('      ');

%%%   3    db5      ,     ,        
% load leleccum;
% indx = 1:1024;
% x = leleccum(indx);
% %      
% init = 2055615866;
% randn('seed',init);
% nx = x + 18*randn(size(x));
% %      'db5'     3   
% [c,l] = wavedec(nx,3,'db5');
% %      
% n = [1,2,3];
% %      
% p = [100,90,80];   
% %           
% nc = wthcoef('d',c,l,n,p);
% %               
% rx = waverec(nc,l,'db5');
% subplot(221);
% plot(x);
% title('    ');
% subplot(222);
% plot(nx);
% title('    ');
% subplot(223);
% plot(rx);
% title('      ');


%%%      db6  ,      ,     
% load leleccum;
% indx = 1:1024;
% x = leleccum(indx);
% %      
% init = 2055615886;
% randn('seed',init);
% nx = x + 18*randn(size(x));
% %      'db6'     3   
% [c,l] = wavedec(nx,3,'db6');
% %    1      
% sigma = wnoisest(c,l,1);
% alpha = 2;
% %          
% thr = wbmpen(c,l,sigma,alpha);
% keepapp = 1;
% %       
% xd = wdencmp('gbl',c,l,'db6',3,thr,'s',keepapp);
% subplot(221);
% plot(x);
% title('    ');
% subplot(222);
% plot(nx);
% title('    ');
% subplot(223);
% plot(xd);
% title('      ');

%   1            ,      ,     
% load leleccum;
% index = 1:1024;
% x = leleccum(index);
% %      
% init = 2055615866;
% randn('seed',init);
% nx = x + 18*randn(size(x));
% %       
% [thr,sorh,keepapp]=ddencmp('den','wv',nx);   %%%          
% %       
% xd = wdencmp('gbl',nx,'db4',2,thr,sorh,keepapp);
% subplot(221);
% plot(x);
% title('    ');
% subplot(222);
% plot(nx);
% title('    ');
% subplot(223);
% plot(xd);
% title('      ');