小波分解后如何把相应系数置零达到去噪目的再重构信号

http://www.ilovematlab.cn/thread-295233-1-1.html

比如说一正弦信号x=sin(5*pi*t),在这个信号里叠加另一个信号y=0.2*sin(10*pi*t),sig=x+y,那对sig进行小波分解的话,是否可以判断出y信号出现某个位置,然后把该位置的系数置零后再重构信号?这样的话如何进行?


clc 

close all

t=0:0.05:20;

x=3*sin(0.2*pi*t);%原始正弦信号

ns=0.2*sin(9*pi*t);

%N=length(t)

%ns=[zeros(1,100),0.2*randn(1,200),zeros(1,101)];%区间为101-201的白噪声

%ns=zeros(1,401);

sig=x+ns;%叠加了噪声的信号

figure(1)

subplot(311)

plot(x);

title('原始信号')

subplot(312)

plot(ns);

title('噪声')

subplot(313)

plot(sig);

title('有噪信号')

[c,l]=wavedec(sig,4,'db4');%对有噪信号用db4小波函数进行4层分解

a1=appcoef(c,l,'db4',1);%提取第一层的近似分量

d1=detcoef(c,l,1);%提取第一层的细节分量

a2=appcoef(c,l,'db4',2);%提取第二层的近似分量

d2=detcoef(c,l,2);%提取第二层的细节分量

a3=appcoef(c,l,'db4',3);%提取第三层的近似分量

d3=detcoef(c,l,3);%提取第三层的细节分量

a4=appcoef(c,l,'db4',4);%提取第四层的近似分量

d4=detcoef(c,l,4);%提取第四层的细节分量

%画出每一层的近似分量和细节分量,共四层

figure(2)

subplot(421)

plot(a1)

title('第一层的近似分量')

subplot(422)

plot(d1)

title('第一层的细节分量')

subplot(423)

plot(a2)

title('第二层的近似分量')

subplot(424)

plot(d2)

title('第二层的细节分量')

subplot(425)

plot(a3)

title('第三层的近似分量')

subplot(426)

plot(d3)

title('第三层的细节分量')

subplot(427)

plot(a4)

title('第四层的近似分量')

subplot(428)

plot(d4)

title('第四层的细节分量')

%进行重构

dd1=zeros(size(d1));%将第一层的细节分量置零

dd2=zeros(size(d2));%将第二层的细节分量置零

dd3=zeros(size(d3));%将第三层的细节分量置零

dd4=zeros(size(d4));%将第四层的细节分量置零

c1=[a4 dd4 dd3 dd2 dd1];%重构小波分解向量,所有的细节分量变为零

aa1=waverec(c1,l,'db4');%重构信号

figure(3)

plot(aa1)

title('一到四层的细节分量置零后的重构信号')

c2=[a4 d4 dd3 dd2 dd1];%重构小波分解向量,其中第一、三、四层的细节分量被置零

aa2=waverec(c2,l,'db4');%重构信号

figure(4)

plot(aa2)

title('一到三层的细节分量置零后的重构信号')

c3=[a4 d4 dd3 d2 dd1];%重构小波分解向量,其中第一、三层的细节分量被置零

aa3=waverec(c3,l,'db4');%重构信号

figure(5)

plot(aa3)

title('一、三层的细节分量置零后的重构信号')

c4=[a4 d4 d3 d2 dd1];%重构小波分解向量,其中第一的层细节分量被置零

aa4=waverec(c4,l,'db4');%重构信号

figure(6)

plot(aa4)

title('第一层的细节分量置零后的重构信号')

c5=[a4 d4 d3 dd2 d1];%重构小波分解向量,其中第二的层细节分量被置零

aa5=waverec(c5,l,'db4');%重构信号

figure(7)

plot(aa5)

title('第二层的细节分量置零后的重构信号')


原文地址:https://www.cnblogs.com/gisalameda/p/12840560.html