470 likes | 787 Views
清华大学计算机系 --- 孙延奎 ---2005. 第四章 小波变换的实现技术. Mallat 算法 多孔算法 小波变换的提升实现. Mallat 算法. 卷积法实现小波变换在实际中具有广泛的应用。. 实际应用中的边界处理问题: 边界延拓方法 零延拓 周期延拓 周期对称延拓法 光滑常数延拓法. Mallat 算法的 Matlab 实现. dwt() [cA,cD] = dwt(X,Lo_D,Hi_D) [cA,cD] = dwt(X,Lo_D,Hi_D,'mode',MODE).
E N D
清华大学计算机系---孙延奎---2005 第四章 小波变换的实现技术 Mallat算法 多孔算法 小波变换的提升实现
Mallat算法 卷积法实现小波变换在实际中具有广泛的应用。 • 实际应用中的边界处理问题: • 边界延拓方法 • 零延拓 • 周期延拓 • 周期对称延拓法 • 光滑常数延拓法
Mallat算法的Matlab实现 • dwt() [cA,cD] = dwt(X,Lo_D,Hi_D) [cA,cD] = dwt(X,Lo_D,Hi_D,'mode',MODE) 特点: • 能够实现重构. • 难以用于数据压缩应用 X 的长度为 , 滤波器的长度为 对于周期延拓方式,cA,cD的长度均为 对于其他延拓方式,cA,cD的长度均为 • idwt() X = idwt(cA,cD,Lo_R,Hi_R) X = idwt(cA,cD,Lo_R, Hi_R ,'mode',MODE) 对于周期延拓方法, 对于其他延拓方式,
具有延拓功能的二带分析/综合系统 问题:在什么情况下,能够确保完全重构?
用小波处理函数/信号的基本步骤 已知 和 是正交尺度函数与小波, 则用小波处理函数 的基本过程包括: 初始化 设信号 下的光滑逼近为 在最高初始分辨率级 记 ,则有 。其中, 小波分解
用小波处理函数/信号的基本步骤 小波系数处理 小波重构
用小波处理离散信号的基本步骤 其采样间距为 , 使得 对 做小波分解、对小波系数处理以及对处理后的系数进行小波重构等 说明: 1) 对 做小波分解,如何? 2) 若 的采样间距为1,如何?
Mallat算法应用举例 将该信号离散化为 个采样值,相应的逼近信号记为 用Haar小波进行分解, 。 画出 的图形。 若记 ,而 的三级多分辨逼近信号为 , ,则容易 算出 。
Mallat算法应用举例 • 对同一个离散信号应用不同的小波变换以及FFT变换进行压缩的处理效果与分析。 已知上例中的离散信号 问题:1)用Haar尺度函数和小波分解信号; 2)用D4尺度函数和小波分解信号; 3)用FFT变换分解信号。 令绝对值最小的80%和90%系数为0 对信号进行小波压缩,画出相应的重构信号的图形,并求出相应的相对误差。对各种变换的效果进行对比分析。
Mallat算法应用举例 Haar小波 均方差: 0.7991 2.9559 相对误差:0.00500.0185 取0比例: 80% 90% D4小波 均方差: 0.0277 0.2159 相对误差:0.000170.0014 取0比例: 80% 90% FFT变换 均方差: 0.00120.0025 相对误差:7.34×10-61.59×10-5 取0比例: 80% 90%
多孔算法 • 应用Mallat算法分析信号时存在的不足
多孔算法 • 二通道Mallat算法 z变换的滤波器形式
多孔算法 • 二通道Mallat算法z变换的滤波器形式 z变换的等效易位性质
多孔算法 • 说明: • 为什么称为多孔算法(a’trous algorithm) ? • 与二通道Mallat算法之间的关系 • 其它叫法: 非抽取小波变换(Undecimated Wavelet Transform ), • 平稳小波变换(Stationary Wavelet Transform ) 记 ,则分解算法为:
多孔算法的实现 分解算法 重构算法 While While End of While End of While 注: 为 的相邻两项之间插入 个零后得到的滤波器。 在Matlab小波工具箱中对应的函数: swt() , iswt()
小波变换的提升实现 • 概述 1) 能够用于构造第一代小波,用户可根据需要来设计小波基。 2)能够改进第一代小波变换算法。 3) 可用于构造第二代小波。
小波分解与重构的多相位表示 • 滤波器的多相位表示 滤波器 的多相位表示为:
小波分解与重构的多相位表示 • 滤波器的多相位矩阵 滤波器 和 的多相位矩阵为: 滤波器 和 的对偶多相位矩阵为: 则小波滤波器的完全重构条件等价于: 小波分解与重构的多相位表示
Laurent多项式的Euclidean算法 = 的次数 两个Laurent多项式的带余除法可表述为: 或 两个Laurent多项式的欧几里德算法如下: 从 开始进行如下的递归运算: 是一个Laurent多项式,其中 则 ,且 为使 的最小数。
Laurent多项式的Euclidean算法 如果an(z)是一个单项式,则a(z)和b(z)是互素的。 注意与多项式带余除法和欧几里德算法的异同之处.
多相位矩阵的因子分解 和 ,则总存在Laurent多项式 若 以及非零常数 ,使得 其中 。
有限滤波器多相位矩阵的提升分解算法 第1步,使用欧几里德算法得到: 第2步,计算 = 第3步,计算
时小波变换的提升实现算法 若 分别是序列 的z变换,且
正向小波变换的提升实现算法(预测步骤由奇序列预测偶序列开始)正向小波变换的提升实现算法(预测步骤由奇序列预测偶序列开始) Step 1. 懒小波变换 Step 2. 提升与对偶提升 For i =1 to m Step 3. 比例变换 For
时逆向小波变换的提升实现算法 Step 1.比例变换 For Step 2. 提升与对偶提升 For i = m to 1 Step 3. 逆懒小波变换
时正向小波变换的提升实现算法(预测步骤由偶序列预测奇序列开始)时正向小波变换的提升实现算法(预测步骤由偶序列预测奇序列开始) Step 1. 懒小波变换 Step 2. 提升与对偶提升 For i =1 to n Step 3. 比例变换 For
两点说明 1.本质上我们可以根据它们的任一分解式写出小波变换的提升算法 如果在实际计算时已知 的因子分解,设 则 2. 尚未完全解决的问题 多相位矩阵分解存在极大的不唯一性,到底存在多少种分解方法?如何求出所有的分解?如何根据具体的应用,选择一种‘好’的分解方法?
(5-3)小波变换的提升实现 , , , 正变换 逆变换
整数小波变换 提升算法的一大优点是,它存在整数提升算法,即在 忽略归一化因子的情况下,将算子 作用于每个 提升步骤中的算子 和 ,即可得到小波变 换的整数提升算法。 如(5-3)小波变换的整数版本如下: 特点:非线性变换
D4小波变换的提升实现 其中
D4小波变换的提升实现 第一种实现方法 第二种实现方法 ,
(9-7)小波变换的提升实现 其中, , , , , , , 说明: JPEG2000中C语言实现模块中尺度变换是: Lena图像实验: 1.23017410558578; 1.842 2.938 = 1.62578613134411
小波变换提升算法的实现技巧 任意长度信号小波变换的提升实现 (9-7)小波变换的提升实现如下: : :
小波变换提升算法的实现技巧 利用少量辅助内存实现多尺度小波变换 必要性: 算法过程由以下三步组成: 第1步, 申请一个大小为 的数组buffer存放高频系数 ,然后,在原空间中调整信号的低频系数的位置, 使 变为 第2步, 调整 中的高频系数的位置使 变为 第3步, 将buffer中暂存的高频系数 调整到 占用的位置,使 变为
边界处理 • 对于(5-3)和(9-7)这些具有线性相位的滤波器,采用对称周期延拓则不仅可实现小波变换的完全重构,同时又不增加变换后的数据量。因此,在实现时我们可采用对称周期延拓的方法。
双正交小波变换的对称提升实现 • 多相位矩阵的对称因子分解 • 对称提升实现
多相位矩阵的对称因子分解 一个Laurent多项式 称为对称的,如果 = 。记 为非负整数),则对称Laurent多项式都可表示为 ( 的形式。 ,则存在惟一的Laurent多项式 和 若 其中 以及非零常数 ,使得 其中 。 是对称Laurent多项式. 和
计算对称提升因子的快速算法 基本思想: 根据 的不同大小关系,分以下两种情况处 和 的复杂计算,因而 理,有效地避免了传统提升因子算法中求解 更加实用。 (1)当 时 记 = = = , 。 令 ,对 应用多项式的 = = 和 , 欧几里德算法, 求出唯一的一组多项式 和一个非零常数 ,使得 其中, 为偶数。
计算对称提升因子的快速算法 由 = 和 = ,求出 , ( )。于是, (2)当 时,则 。
小波变换的对称提升实现 Step 1. 懒小波变换 Step 2. 提升与对偶提升 For i =1 to m Step 3. 比例变换 For