小波滤波器构造和消噪程序(2 个) 1.重构 % mallet_w avelet.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); 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'); %原信号与消噪后信号的比较 2.消噪 % mallet_wavelet.m % 此函数用于研究 Mallet 算法及滤波器设计 % 此函数用于消噪处理 %角度赋值 %此处赋值使滤波器系数恰为 db9 %分解的高频系数采用d...