各类多小波滤波器系数生成工具箱
项目介绍
本项目构建了一个基于 MATLAB 的综合性算法库,专门用于生成、计算和验证数字信号处理中所需的各种多小波(Multi-wavelet)滤波器组系数。与传统标量小波不同,多小波利用向量和矩阵运算,结合了正交性、对称性、短支集和高阶消失矩等优良特性。
本工具箱通过内置的算法求解多尺度矩阵方程,能够精确输出 GHM、Chui-Lian 等经典多小波系统对应的矩阵滤波器系数(包括低通尺度滤波器矩阵 H 和高通小波滤波器矩阵 G),并利用级联算法绘制对应的尺度函数波形,为离散多小波变换(DMWT)在图像压缩、去噪等领域的底层研究提供了便捷的数据支持。
功能特性
- 多类型支持:支持生成 GHM (Geronimo-Hardin-Massopust)、Chui-Lian 系列 (CL2, CL3) 以及 SA4 (Shen-Strang-Suter) 多小波系数。
- 矩阵系数生成:能够输出 $r times r$ 维度的低通尺度滤波器组 $H$ 和高通小波滤波器组 $G$ 数值。
- 数值性质验证:自动检验生成的滤波器系数是否满足多小波的基本构造条件(如特征值条件、近似阶、能量守恒/正交性)。
- 尺度函数可视化:内置级联算法(Cascade Algorithm),通过迭代逼近的方式绘制多小波尺度函数 $Phi(t)$ 的波形。
系统要求
- MATLAB R2016a 或更高版本(代码不依赖特殊工具箱,主要使用基础矩阵运算)。
使用方法
- 确保 MATLAB 的当前工作目录包含
main.m。 - 在 MATLAB 命令窗口中运行主函数
main。 - 程序将依次输出各类多小波的滤波器矩阵系数,打印性质验证结果,并弹出相应的尺度函数波形图。
详细实现逻辑与代码分析
本项目通过单一入口文件 main.m 实现,主要包含以下核心模块和逻辑:
1. 主控流程 (函数: main)
- 初始化环境:清理工作区,设置显示格式为
short g 以优化矩阵输出的可读性。 - 批处理循环:定义了待处理的小波类型列表
{'GHM', 'CL2', 'CL3', 'SA4'},通过循环依次对每种小波进行处理。 - 异常处理:使用
try-catch 结构包裹核心调用,确保某一种小波生成失败不会中断整个程序的运行。
2. 核心系数生成 (函数: multiwavelet_coeffs)
该函数根据输入的类型字符串,按内置的数学模型返回 3 维数组形式的滤波器组系数($H$ 和 $G$):
* 基于 Strela 的理论,实现了 $r=2$ 的短支集、对称二阶多小波。
*
H 系数:包含 4 个 $2 times 2$ 矩阵,内部实现了 $sqrt{2}$ 的归一化处理。
*
G 系数:对应的高通滤波器同样由 4 个 $2 times 2$ 矩阵组成,已经过 $sqrt{2}$ 缩放以匹配标准频域定义。
* 长度为 3 的正交对称/反对称多小波。
* 代码中对原始文献系数进行了调整,使其求和后的特征值结构符合级联算法的收敛要求(针对直流增益进行了 $times 2$ 或归一化处理)。
* 长度为 4 的高阶多小波。
*
H 系数:使用了高精度的数值近似解(如
h0 到
h3),而非符号解析解。
*
G 系数:代码中当前版本未完整实现 CL3 的高通系数闭式解,仅初始化为零矩阵用于占位演示。
* 利用 $sqrt{2}$ 和 $sqrt{3}$ 构造的对称/反对称多小波,支集区间为 [0, 3]。
*
G 系数:仅通过简单的对称翻转生成了示意性系数。
3. 性质验证 (函数: verify_properties)
对生成的系数矩阵进行数值上的必要条件检查:
- 特征值检查:计算 $sum H_k$ 的特征值。根据结果判断归一化标准是基于 $2$ 还是 $sqrt{2}$。
- 近似阶 (Approximation Order):计算交替和 $sum (-1)^k H_k$ 的行列式,理论上应接近 0,以保证多小波具有一定的消失矩。
- 正交性/能量检查:计算 $sum (H_k H_k^T)$ 的范数,用于验证滤波器的正交性或能量守恒性质。
4. 可视化算法 (函数: plot_scaling_functions)
实现了
级联算法 (Cascade Algorithm) 来绘制尺度函数:
- 初始化:设定迭代次数(默认为 7 次),初始化时间轴点数。
- 初始猜测:使用方波作为尺度函数 $Phi(t)$ 的初始值。
- 迭代细分:
* 根据多小波细分方程(Refinement Equation):$Phi(t) = text{scale} cdot sum_k H_k Phi(2t - k)$。
* 代码包含自动检测归一化类型的逻辑,以决定是否需要额外乘以 $sqrt{2}$。
* 通过逆向迭代过程不断细化波形,最终绘制出 r 个分量的尺度函数图(代码中此处存在截断,旨在展示逻辑框架)。
注意事项
- CL3 和 SA4 的高通系数:在当前代码实现中,CL3 的高通系数 $G$ 被置为全零,SA4 的 $G$ 系数仅为简单示意。如果需要用于实际的小波分解与重构,需补充完整的高通矩阵求解逻辑。
- 归一化差异:不同的多小波文献对系数的归一化定义可能不同(有的基于 $sum H_k = 2I$,有的基于 $sqrt{2}I$)。本工具箱在
verify_properties 和 plot_scaling_functions 中包含自动判断逻辑,但在引用系数时请注意这一点。