根据小波变化的原理自己编写的的程序。
%% 采用小波变换原理进行小波变换(滤波器系数矩阵第一行长度始终是2)clear;
clc
y=
T=10; % 信号长度
n=1:T;
%% 选用db2
wavelet='db2';
= wfilters(wavelet);
%% 1.离散序列小波变换的矩阵分解表示
h0=Lo_D(end:-1:1);%形成低通滤波器系数矩阵
h1=Hi_D(end:-1:1);%形成高通滤波器系数矩阵
H00=zeros(13,16);
H10=zeros(13,16);
for i=1:13
H00(i,i:i+3)=h0;
end
for i=1:13
H10(i,i:i+3)=h1;
end
%第零层到第一层分解
H01=H00(2:2:end,4:13);%对系数矩阵行列分别进行删除
H11=H10(2:2:end,4:13);
a1=H01*y';%第一层近似系数
d1=H11*y';%第一层细节系数
%第一层到第二层分解
H02=H01(1:4,1:6);%对系数矩阵行列分别进行删除(4*6 )
H12=H11(1:4,1:6);
a2=H02*a1;%第二层近似系数
d2=H12*a1;%第二层细节系数
%第二层到第三层分解
H03=H01(1:3,1:4);%对系数矩阵行列分别进行删除
H13=H11(1:3,1:4);
a3=H03*a2;%第三层近似系数
d3=H13*a2;%第三层细节系数
%% 1.离散序列小波变换的矩阵重构表示
%用第一层系数进行重构(第零层到第一层分解滤波器系数矩阵的转置)
G01=H01';
G11=H11';
x00=G01*a1;
y01=G11*d1;
y1=x00'+y01'
%% 用第二层系数进行重构
%第二层系数重构第一层系数
G02=H02';
G12=H12';
a11=G02*a2;
d11=G12*d2;
a1=a11+d11;
%第一层系数重构第零层系数(原始信号)
G01=H01';
G11=H11';
x02=G01*a1;
y02=G11*d1;
y2= x02'+y02'
% %
%% 第二层重构第零层(原始信号)
g0=Lo_R(end:-1:1);%形成低通滤波器系数矩阵
g1=Hi_R(end:-1:1);%形成高通滤波器系数矩阵
G11=H11';
G01=H01';
G02=H02';
G12=H12';
% G12=G11(:,2:2:end);
% G12=
% G02=G01(:,2:2:end);
% G02=
% z01=G02*a2+G12*d2
% z11=G11*d1
x01=G01*G02*a2+G01*G12*d2+G11*d1
Q=
Confi=
D=cond(Confi); %求矩阵Gck的条件数
s=Q* Confi
给力, 学习
页:
[1]