小波变换课件ch4 Mallat算法及二维小波
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a j 1,k Aj 1 ( x), j 1,k ( x) ( a j ,l j ,l d jl jl ), j 1, k ( x) a j ,l j ,l , j 1,k d jl jl , j 1,k
s s
n
a j ,n hn 2 k a j h (2k )
n
hk h k
d j 1,k a j g (2k )
g k g k
多级分解
无需尺度函数和小波函数的具体表达式
离散小波变换的数据量不变性质
j=0
近似序列 细节序列 j=-1
塔式数据 塔式算法
figure(3); % 信号图 subplot(2,1,1) plot(real(sig1)); title('Low-frequency Component')
subplot(2,1,2) plot(real(sig2)); title('High-frequency Component')
(2) L=2K+2, c(n)=±c(-1-n)
x ( n)
k K 1
K
c (k ) s( n k )
k K 1 K 1 k K
K
c ( k ) s( n k )
k K 1
K
c ( 1 k ) s ( n k )
m m
重构算法
多级重构算法
4.3边界处理
以下两式的前提式信号为双向无限长序列 a g (2k ) a a h(2k ) , d 实际信号是有限长序列,矛盾 解决方法:将信号以某种方式延拓为双向 无限长序列 边界处理问题 一般的,数据 a (n) 的下标范围是0~N, n 滤波器记为 c(n), K , K 1,, K ,其长度 L K K 1 ,那么分解过程就是
不重复S(0),S(N-1)
当 c(n)不对称时,数据总量几乎增大一倍 当 c ( n) 对称时,数据总量保持不变 (1)L=2K+1,c(n)=c(-n)
x ( n)
K
k K
c(k )s(n k ) c(k )s(n k )
k K
K
K
k K
j 1, k j
j 1, k j
j
1
1
2
2
1
x ( n)
k K1
c(k ) s (n k )
K2
y(n) x(2n)
四种延拓方法
补零延拓 简单周期延拓 以边界点为对称中心的对称延拓 边界值重复的对称周期延拓
补零延拓
简单 保留多于N/2的 信息才能重构 长度为N的序列 如果信号的边 界点的值与0差 别很大,则会 在边界处产生 阶跃变化
从j=0开始经J级分解后最后得到 {a J ,k },{d J ,k },,{d1,k }
1 J
初始化问题
, f ( x) a0,k ( x k ) , a0,k =? k 按照定义
f ( x) V0
a0,k f ( x), ( x k ) f ( x) ( x k )dx
s s s
j 1,k ( x) gs j ,2k s ( x)
a j 1,k f ( x), j 1,k ( x) f ( x), hs j ,2 k s ( x)
s
s
hs f ( x), j ,2 k s ( x) hs a j ,2 k s
边界值重复的对称周期延拓
作对称延拓时重复 原信号的边界值 主周期内以n=-0.5 和n=N-0.5为对称 中心 延拓后的信号不存 在周期性的剧烈突 变
重复S(0),S(N-1)
(1)L=2K-1,c(n)=c(-n)
x(1 n) x(n)
x( N 1 n) x( N n)
%% 4.MALLAT重构算法 sig1=dyaddown(sig1); % 2抽取 sig2=dyaddown(sig2); % 2抽取 sig1=dyadup(sig1); % 2插值 sig2=dyadup(sig2); % 2插值 sig1=sig1(1,[1:N]); % 去掉最后一个零 sig2=sig2(1,[1:N]); % 去掉最后一个零 hr=h(end:-1:1); % 重构低通 gr=g(end:-1:1); % 重构高通 hr=circshift(hr',1)'; % 位置调整圆周右移一位 gr=circshift(gr',1)'; % 位置调整圆周右移一位
K
c( 1 k ) s( N 1 n k )
c(k ) s( N 1 n 1 k ) x ( N 2 n)
k K
K 1
输出序列是2N-2的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。(滤波器的对称中心为-0.5)
以及同级尺度函数的平移正交性,有
j ,l , j 1,k hs j 1,2l s , j 1,k hk 2l
s
j ,l , j 1,k g k 2l
则 a j 1,k
2l+s=k,<.,.>=1
a
l
jl k 2l
h
c ( k ) s(n 1 k ) x (n 1)
x ( N 1 n)
k K 1
K
c (k ) s( N 1 n k )
k K 1
K
c (k ) s ห้องสมุดไป่ตู้( N 1 n k )
k K 1
实际上, f (x)
n
{ fn }
f n f (nx)
a0,k f n (n k )
a0,k f k
(n k ) 1
n
fn fk
原始数据就是j=0的近似序列
DWT的相图
DWT分解树
W1
8点的DWT相图
W2
V1 V3
W3
V2
4.2重构算法
由已知近似序列 {a j ,k } 和细节序列 {d j ,k }求出 序列 {a j 1,k }
figure(4); % 频谱图 subplot(2,1,1) stem(abs(fft(sig1))); title('Amplitude Spectrum of Low-frequency Component')
subplot(2,1,2) stem(abs(fft(sig2))); title('Amplitude Spectrum of High-frequency Component')
d jl g k 2l
m偶 m奇
m偶 m奇
l
令 a a j , m 2 j ,m 0
d j ,m d j , m 2 0
原数据每两个 之间补0所得
则 a j 1,k ajm hk m d ,m gk m a h(k ) d g(k ) j
subplot(2,1,2) stem(abs(fft(g))); title('High-pass Filter(W_{0})')
% 3.MALLAT分解算法(圆周卷积的快速傅里叶变换实现) sig1=ifft(fft(y).*fft(h)); % 低通(低频分量) sig2=ifft(fft(y).*fft(g)); % 高通(高频分量)
l l
考虑到
j ,l ( x) 2 j 2 (2 j x l ) 2 j 2 2 hs (2(2 j x l ) s )
hs 2( j 1) 2 (2( j 1) x (2l s )) hs j 1,2l s ( x)
s s s
%% 2.小波滤波器谱分析 h=wfilters('db30','l'); % 低通 g=wfilters('db30','h'); % 高通 h=[h,zeros(1,N-length(h))]; % 补零(圆周卷积,且增大分辨率变于观察) g=[g,zeros(1,N-length(g))]; % 补零(圆周卷积,且增大分辨率变于观察) figure(2); subplot(2,1,1) stem(abs(fft(h)));%stem函数用于绘制火柴梗图 title('Low-pass Filter(V_{0})')
(2)L=2K,c(n)=±c(1-n)
x(n) x(n)
x( N n) x( N n)
输出序列是 2N 的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。(采用偶数长的对称(反对称)滤波 器的对称中心为+0.5,奇数长的对称滤波器的对称中心为0)
c(k )s(n k )
K k K
k K
c(k )s(n k ) x(n)
K k K
K
x ( N 1 n)
K
c(k )s( N 1 n k ) c(k )s( N 1 n k )
k K
f ( x) a j -1,k j -1,k ( x) d j -1,k j -1,k ( x)
如何分解?
结论:序列 {a j 1,k } 和 {d j 1,k } 可分别由序列 {a j ,k } 通过数字滤波器{ h ' }和{ g ' },并对输 出作偶数点抽样得到 。
c(k )s( N 1 n k ) x( N 1 n)
输出序列是2N-2的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。 (滤波器的对称中心为0)
近似序列
细节序列
推导:
j 1,k ( x) 2( j 1) 2 (2 j 1 x k ) 2( j 1) 2 2 hs (2(2 j 1 x k ) s)
hs 2 j 2 (2 j x (2k s)) hs j ,2 k s ( x)
简单周期延拓
数据总量保持不变 当信号序列的两端 边界值相差很大时, 延拓后的信号将存 在周期性的剧烈突 变
以边界点为对称中心的对称周期延拓
step1 从 s (n)到 s(n) , N’=2N-2 step2 s(n) 作N’周期延 拓 主周期内以n=0和 n=N-1为对称中心 延拓后的信号不存 在周期性的剧烈突 变
第四章 Mallat算法 及二维小波
小波变换应用于信号处理的一般过程
4.1 基于正交小波的分解算法
由已知序列 {a j ,k }分别求出 j 1 级的近似序 列{a j 1,k } 和 j 1 级细节序列 {d j 1,k } 分解目标:
V j V j 1 W j 1
一维小波分解&重构实例
clc;clear;
% 1.正弦波定义 f1=50; % 频率1 f2=100; % 频率2 fs=2*(f1+f2); % 采样频率 Ts=1/fs; % 采样间隔 N=120; % 采样点数
n=1:N; y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合 figure(1) subplot(2,1,1) plot(y); title('Signal') subplot(2,1,2) stem(abs(fft(y))); title('Amplitude Spectrum')
s s
n
a j ,n hn 2 k a j h (2k )
n
hk h k
d j 1,k a j g (2k )
g k g k
多级分解
无需尺度函数和小波函数的具体表达式
离散小波变换的数据量不变性质
j=0
近似序列 细节序列 j=-1
塔式数据 塔式算法
figure(3); % 信号图 subplot(2,1,1) plot(real(sig1)); title('Low-frequency Component')
subplot(2,1,2) plot(real(sig2)); title('High-frequency Component')
(2) L=2K+2, c(n)=±c(-1-n)
x ( n)
k K 1
K
c (k ) s( n k )
k K 1 K 1 k K
K
c ( k ) s( n k )
k K 1
K
c ( 1 k ) s ( n k )
m m
重构算法
多级重构算法
4.3边界处理
以下两式的前提式信号为双向无限长序列 a g (2k ) a a h(2k ) , d 实际信号是有限长序列,矛盾 解决方法:将信号以某种方式延拓为双向 无限长序列 边界处理问题 一般的,数据 a (n) 的下标范围是0~N, n 滤波器记为 c(n), K , K 1,, K ,其长度 L K K 1 ,那么分解过程就是
不重复S(0),S(N-1)
当 c(n)不对称时,数据总量几乎增大一倍 当 c ( n) 对称时,数据总量保持不变 (1)L=2K+1,c(n)=c(-n)
x ( n)
K
k K
c(k )s(n k ) c(k )s(n k )
k K
K
K
k K
j 1, k j
j 1, k j
j
1
1
2
2
1
x ( n)
k K1
c(k ) s (n k )
K2
y(n) x(2n)
四种延拓方法
补零延拓 简单周期延拓 以边界点为对称中心的对称延拓 边界值重复的对称周期延拓
补零延拓
简单 保留多于N/2的 信息才能重构 长度为N的序列 如果信号的边 界点的值与0差 别很大,则会 在边界处产生 阶跃变化
从j=0开始经J级分解后最后得到 {a J ,k },{d J ,k },,{d1,k }
1 J
初始化问题
, f ( x) a0,k ( x k ) , a0,k =? k 按照定义
f ( x) V0
a0,k f ( x), ( x k ) f ( x) ( x k )dx
s s s
j 1,k ( x) gs j ,2k s ( x)
a j 1,k f ( x), j 1,k ( x) f ( x), hs j ,2 k s ( x)
s
s
hs f ( x), j ,2 k s ( x) hs a j ,2 k s
边界值重复的对称周期延拓
作对称延拓时重复 原信号的边界值 主周期内以n=-0.5 和n=N-0.5为对称 中心 延拓后的信号不存 在周期性的剧烈突 变
重复S(0),S(N-1)
(1)L=2K-1,c(n)=c(-n)
x(1 n) x(n)
x( N 1 n) x( N n)
%% 4.MALLAT重构算法 sig1=dyaddown(sig1); % 2抽取 sig2=dyaddown(sig2); % 2抽取 sig1=dyadup(sig1); % 2插值 sig2=dyadup(sig2); % 2插值 sig1=sig1(1,[1:N]); % 去掉最后一个零 sig2=sig2(1,[1:N]); % 去掉最后一个零 hr=h(end:-1:1); % 重构低通 gr=g(end:-1:1); % 重构高通 hr=circshift(hr',1)'; % 位置调整圆周右移一位 gr=circshift(gr',1)'; % 位置调整圆周右移一位
K
c( 1 k ) s( N 1 n k )
c(k ) s( N 1 n 1 k ) x ( N 2 n)
k K
K 1
输出序列是2N-2的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。(滤波器的对称中心为-0.5)
以及同级尺度函数的平移正交性,有
j ,l , j 1,k hs j 1,2l s , j 1,k hk 2l
s
j ,l , j 1,k g k 2l
则 a j 1,k
2l+s=k,<.,.>=1
a
l
jl k 2l
h
c ( k ) s(n 1 k ) x (n 1)
x ( N 1 n)
k K 1
K
c (k ) s( N 1 n k )
k K 1
K
c (k ) s ห้องสมุดไป่ตู้( N 1 n k )
k K 1
实际上, f (x)
n
{ fn }
f n f (nx)
a0,k f n (n k )
a0,k f k
(n k ) 1
n
fn fk
原始数据就是j=0的近似序列
DWT的相图
DWT分解树
W1
8点的DWT相图
W2
V1 V3
W3
V2
4.2重构算法
由已知近似序列 {a j ,k } 和细节序列 {d j ,k }求出 序列 {a j 1,k }
figure(4); % 频谱图 subplot(2,1,1) stem(abs(fft(sig1))); title('Amplitude Spectrum of Low-frequency Component')
subplot(2,1,2) stem(abs(fft(sig2))); title('Amplitude Spectrum of High-frequency Component')
d jl g k 2l
m偶 m奇
m偶 m奇
l
令 a a j , m 2 j ,m 0
d j ,m d j , m 2 0
原数据每两个 之间补0所得
则 a j 1,k ajm hk m d ,m gk m a h(k ) d g(k ) j
subplot(2,1,2) stem(abs(fft(g))); title('High-pass Filter(W_{0})')
% 3.MALLAT分解算法(圆周卷积的快速傅里叶变换实现) sig1=ifft(fft(y).*fft(h)); % 低通(低频分量) sig2=ifft(fft(y).*fft(g)); % 高通(高频分量)
l l
考虑到
j ,l ( x) 2 j 2 (2 j x l ) 2 j 2 2 hs (2(2 j x l ) s )
hs 2( j 1) 2 (2( j 1) x (2l s )) hs j 1,2l s ( x)
s s s
%% 2.小波滤波器谱分析 h=wfilters('db30','l'); % 低通 g=wfilters('db30','h'); % 高通 h=[h,zeros(1,N-length(h))]; % 补零(圆周卷积,且增大分辨率变于观察) g=[g,zeros(1,N-length(g))]; % 补零(圆周卷积,且增大分辨率变于观察) figure(2); subplot(2,1,1) stem(abs(fft(h)));%stem函数用于绘制火柴梗图 title('Low-pass Filter(V_{0})')
(2)L=2K,c(n)=±c(1-n)
x(n) x(n)
x( N n) x( N n)
输出序列是 2N 的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。(采用偶数长的对称(反对称)滤波 器的对称中心为+0.5,奇数长的对称滤波器的对称中心为0)
c(k )s(n k )
K k K
k K
c(k )s(n k ) x(n)
K k K
K
x ( N 1 n)
K
c(k )s( N 1 n k ) c(k )s( N 1 n k )
k K
f ( x) a j -1,k j -1,k ( x) d j -1,k j -1,k ( x)
如何分解?
结论:序列 {a j 1,k } 和 {d j 1,k } 可分别由序列 {a j ,k } 通过数字滤波器{ h ' }和{ g ' },并对输 出作偶数点抽样得到 。
c(k )s( N 1 n k ) x( N 1 n)
输出序列是2N-2的周期序列,且在一个周期内有两个对称中心,只需 保留[0,N-1]的数据,然后进行下采样得到N/2点的序列 a j 1 (n) 和 d j 1 (n) 并采用同样的延拓方式实现重构。 (滤波器的对称中心为0)
近似序列
细节序列
推导:
j 1,k ( x) 2( j 1) 2 (2 j 1 x k ) 2( j 1) 2 2 hs (2(2 j 1 x k ) s)
hs 2 j 2 (2 j x (2k s)) hs j ,2 k s ( x)
简单周期延拓
数据总量保持不变 当信号序列的两端 边界值相差很大时, 延拓后的信号将存 在周期性的剧烈突 变
以边界点为对称中心的对称周期延拓
step1 从 s (n)到 s(n) , N’=2N-2 step2 s(n) 作N’周期延 拓 主周期内以n=0和 n=N-1为对称中心 延拓后的信号不存 在周期性的剧烈突 变
第四章 Mallat算法 及二维小波
小波变换应用于信号处理的一般过程
4.1 基于正交小波的分解算法
由已知序列 {a j ,k }分别求出 j 1 级的近似序 列{a j 1,k } 和 j 1 级细节序列 {d j 1,k } 分解目标:
V j V j 1 W j 1
一维小波分解&重构实例
clc;clear;
% 1.正弦波定义 f1=50; % 频率1 f2=100; % 频率2 fs=2*(f1+f2); % 采样频率 Ts=1/fs; % 采样间隔 N=120; % 采样点数
n=1:N; y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合 figure(1) subplot(2,1,1) plot(y); title('Signal') subplot(2,1,2) stem(abs(fft(y))); title('Amplitude Spectrum')