小波阈值去噪的应用

2025-11-20 06:01:03

1、调用wden函数进行一维小波去噪,其调用格式如下:

      [XD,CXD,LXD]=wden(x,tptr,sorh,scal,N,'wname')

      其中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文件程序,结果如图:

小波阈值去噪的应用

3、调用ddencmp函数,wdcbm函数分别得到对应的全局阈值,分层阈值,调用格式分别如下:

      [thr,sorh,keepapp]=ddencmp('den’,’wv’,x)

      [thr1,nkeep]=wdcbm(c,l,N);

其中den表示去噪,wv小波,x原始输入信号,keepapp=1,表示保留低频系数不变,thr表示全局阈值,sorh表示阈值类型,thr1表示分层阈值

4、调用wdencmp函数对一维或二维信号进行全局阀值消噪,调用格式如下:

       [XD,CXD,LXD]=wdencmp('gbl’,x,'wname',N,thtr,sorh,keepapp)

示例2对应调用wdencmp函数进行全局阈值去噪对应的m文件如下:

      t=0:0.001:1;

       x=sin(5*pi*t);%%原始信号%%

      n=randn(size(t));%%表示产生一个噪声信号%%

      y=x+n;

%%获得全局阈值程序%%

    [thr,sorh,keepapp]=ddencmp('den','wp',y);

%%利用全局阈值进行去噪%%

     yd=wdencmp(‘gbl',y,'sym4',4,thr,sorh,keepapp);

     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]);

小波阈值去噪的应用

小波阈值去噪的应用

5、运行示例2对应的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文件程度,结果如图:

小波阈值去噪的应用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢