小波阈值去噪的应用
1、调用wden函数进行一维小波去噪,其调用格式如下: [XD,CXD,雉搽妤粲LXD]=wden(x,tptr,sorh,scal,N,'wname泌驾台佐39;) 其中x表示原始信号,tptr表示阀值类型,sorh表示软阀值(s表示)或硬阀值(h表示),N表示分解层数,wname小波函数类型,XD去除噪声后信号,CXD表示各层分量,LXD表示各层分量对应的长度。示例1对应调用wden函数对应的m文件如下: t=0:0.001:1;%%时间序列%% x=sin(5*pi*t);%%原始信号%% n=randn(size(t));%%表示产生一个噪声信号%% y=x+n;%%含有噪声的信号%% yd=wden(y,'heursure','s','one',3,'sym5'); subplot(3,1,1) %%表示显示三行一列第一个图%%%%设置第一幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(x,'r'); xlabel('n'); ylabel('幅值'); title('原始信号'); axis([0 1000 -5 5]) subplot(3,1,2) %%表示显示三行一列第二个图%%%%设置第二幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(y,'k'); xlabel('n'); ylabel('幅值'); title('含有噪声信号'); axis([0 1000 -5 5]); subplot(3,1,3) %%表示显示三行一列第三个图%%%%设置第三幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(yd,'c'); xlabel('n'); ylabel('幅值'); title('消除噪声后信号'); axis([0 1000 -5 5]);

2、运行示例1对应的m文件程序,结果如图:


6、调用wdencmp函数对一维或二维信号进行分层阀值消噪,调用格式如下 [XD,CXD,LXD]=wdencmp('lvd',c,l,'wname',N,thtr,sorh,keepapp)示例3对应调用wdencmp函数进行分层阈值去噪对应的m文件如下:t=0:0.001:1; x=sin(5*pi*t);%%原始信号%% n=randn(size(t));%%表示产生一个噪声信号%% y=x+n;%%获得分层阈值%% [c,l]=wavedec(y,4,'sym4'); [thr1,nkeep]=wdcbm(c,l,4)%%利用分层阈值进行去噪%% yd=wdencmp('lvd',c,l,'sym4',4,thr1,'s'); subplot(3,1,1) %%表示显示三行一列第一个图%%%%设置第一幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(x,'r'); xlabel('n'); ylabel('幅值'); title('原始信号'); axis([0 1000 -5 5]) subplot(3,1,2) %%表示显示三行一列第二个图%%%%设置第二幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(y,'k'); xlabel('n'); ylabel('幅值'); title('含有噪声信号'); axis([0 1000 -5 5]); subplot(3,1,3) %%表示显示三行一列第三个图%%%%设置第三幅图像的x轴、y轴、标题信息以及坐标轴范围信息%% plot(yd,'c'); xlabel('n'); ylabel('幅值'); title('利用分层阈值消除噪声后信号'); axis([0 1000 -5 5]);

7、运行示例3对应m文件程度,结果如图:
