⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 小波滤波器构造.m

📁 实现了小波滤波器构造
💻 M
字号:
%  mallet_wavelet.m
%  此函数用于研究Mallet算法及滤波器设计
%  此函数仅用于消噪
a=pi/8;                 %角度赋初值
b=pi/8; 
%低通重构FIR滤波器h0(n)冲激响应赋值
h0=cos(a)*cos(b);
h1=sin(a)*cos(b);
h2=-sin(a)*sin(b);
h3=cos(a)*sin(b); 
low_construct=[h0,h1,h2,h3];
L_fre=4; %滤波器长度  
low_decompose=low_construct(end:-1:1);   %确定h0(-n),低通分解滤波器 
for i_high=1:L_fre;                     %确定h1(n)=(-1)^n,高通重建滤波器       
    if(mod(i_high,2)==0);     
        coefficient=-1;   
    else
        coefficient=1;   
    end
    high_construct(1,i_high)=low_decompose(1,i_high)*coefficient;
end
high_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n)
L_signal=100;  %信号长度 
n=1:L_signal; %信号赋值
f=10;
t=0.001;
y=10*cos(2*pi*50*n*t).*exp(-20*n*t); 
figure(1);
plot(y);
title('原信号'); 
check1=sum(high_decompose);       %h0(n)性质校验
check2=sum(low_decompose);
check3=norm(high_decompose);%小波系数平方和应该等于1,检验结果符合
check4=norm(low_decompose); 
l_fre=conv(y,low_decompose); %卷积
l_fre_down=dyaddown(l_fre);       %抽取,下采样,得低频细节 
h_fre=conv(y,high_decompose);
h_fre_down=dyaddown(h_fre);         %信号高频细节  
figure(2);
subplot(2,1,1)
plot(l_fre_down);
title('小波分解的低频系数');
subplot(2,1,2);
plot(h_fre_down);
title('小波分解的高频系数');  
l_fre_pull=dyadup(l_fre_down);    %上采样,补0差值
h_fre_pull=dyadup(h_fre_down);  
l_fre_denoise=conv(low_construct,l_fre_pull);
h_fre_denoise=conv(high_construct,h_fre_pull);
l_fre_keep=wkeep(l_fre_denoise,L_signal); %取结果的中心部分,消除卷积影响
h_fre_keep=wkeep(h_fre_denoise,L_signal);
sig_denoise=l_fre_keep+h_fre_keep;        %信号重构
compare=sig_denoise-y;                 %与原信号比较
figure(3); 
subplot(3,1,1)
plot(y);   
ylabel('y');    %原信号
subplot(3,1,2);
plot(sig_denoise);
ylabel('sig\_denoise'); %重构信号 
subplot(3,1,3);
plot(compare);
ylabel('compare');     %原信号与消噪后信号的比较

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -