马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
%% 采用小波变换原理进行小波变换(滤波器系数矩阵第一行长度始终是2)
clear;
clc
y=[1:10]
T=10; % 信号长度
n=1:T;
%% 选用db2
wavelet='db2';
[Lo_D,Hi_D,Lo_R,Hi_R] = 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=[G12 zeros(length(G12),1)]
% G02=G01(:,2:2:end);
% G02=[G02 zeros(length(G02),1)]
% z01=G02*a2+G12*d2
% z11=G11*d1
x01=G01*G02*a2+G01*G12*d2+G11*d1
Q=[G01*G02,G01*G12, G11]
Confi=[a2;d2;d1]
D=cond(Confi); %求矩阵Gck的条件数
s=Q* Confi
|