📄 小波去噪原理.m
字号:
clc;
clear;
%%%%%%%%%%%%小波滤波器%%%%%%%%%%%%%%%%%%
[a,b,c,d]=wfilters('db9');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L=18; %%%%%%%滤波器长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L_decomposition=a;%%%低通分解滤波器
H_decomposition=b;%%%高通分解滤波器
L_construct=c;%%%%%%%低通重构滤波器
H_construct=d;%%%%%%%高通重构滤波器
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=200; %%%%%%%信号长度
n=1:N;
f=100; %%%%%%%频率
dt=0.001; %%%%%%%抽样间隔
%%%%%%%%%%%%%%%信号%%%%%%%%%%%%%%%%%%%%%
y=10*cos(2*pi*f*n*dt).*exp(-20*n*dt);%%%%原始信号
y1=y;
noise=randn(1,20);%%%%%%%噪声信号
%%%%%%%%%%%%%%加上噪声的信号%%%%%%%%%%%%
for m=1:20
y1(m+100)=noise(m)+y(m+100);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1);
subplot(2,1,1);
plot(y);
title('原信号');
subplot(2,1,2);
plot(y1);
title('加上噪声的信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
low=conv(y1,L_decomposition);%%%卷积
low1=dyaddown(low); %%%%%抽取低频信号
high=conv(y1,H_decomposition);%%%卷积
high1=dyaddown(high); %%%%%%%高频信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2);
subplot(2,1,1)
plot(low1);
title('低频分量');
subplot(2,1,2);
plot(high1);
title('高频分量');
%%%%%%%%%%%%%%%消噪处理%%%%%%%%%%%%%%%%%%
for m=50:65
if abs(high1(1,m))>=0.000001
high1(1,m)=(10^-9);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
low2=dyadup(low1); %%%%%%%插值
high2=dyadup(high1);
%%%%%%%%%%%%%%%%重构%%%%%%%%%%%%%%%%%%%%%%
low3=conv(L_construct,low2);%%%%卷积
high3=conv(H_construct,high2);
low4=wkeep(low3,N); %取结果的中心部分
high4=wkeep(high3,N);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
signal=low4+high4; %消噪后信号重构
figure(3);
subplot(2,1,1)
plot(y1);
ylabel('y'); %原信号
title('加上噪声的信号');
subplot(2,1,2);
plot(signal);
ylabel('denoise'); %消噪后信号
title('消噪后的信号');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -