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

📄 lbq.m

📁 本程序为小波滤波器设计用于mallat算法的应用
💻 M
字号:
%小波滤波器构造

%角度赋初值   
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); 

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 + -