数组复数的离散小波变换(Daubechies 小波)

Discrete Wavelet Transform (Daubechies wavelet) of an array complex numbers

比如说,我有一个表示为实数数组的信号 y = [1,2,0,4,5,6,7,90,5,6]。我可以使用 Daubechies-4 系数 D4 = [0.482962, 0.836516, 0.224143, -0.129409],并应用小波变换来接收信号的高频和低频。所以,高频分量会这样计算:

high[v] = y[2*v]*D4[0] + y[2*v+1]*D4[1] + y[2*v+2]*D4[2] + y[2*v+3]*D4[3], 

并且低频分量可以使用其他D4系数排列来计算。


问题是:如果y是复数数组怎么办?我只是乘以和添加复数来接收子带,还是获取振幅和相位是正确的,将它们中的每一个都当作实数对待,对它们进行小波变换,然后使用公式为每个子带恢复复数数组 real_part = abs * cos(phase)imaginary_part = abs * sin(phase)?

要处理复杂数据的情况,您正在查看 Complex Wavelet Transform。它实际上是对 DWT 的简单扩展。处理复杂数据的最常见方法是将实部和虚部视为两个单独的信号,并对每个成分分别执行 DWT。然后您将收到实部和虚部的分解。

这通常称为双树复小波变换。这可以用我从维基百科中提取的下图来最好地描述:

来源:Wikipedia

之所以称为 "dual-tree",是因为您有两个并行发生的 DWT 分解 - 一个用于实部,一个用于虚部。在上图中,g0/h0 代表信号实部的低通和高通分量 xg1/h1 代表信号的低通和高通分量信号的虚部 x.

一旦将实部和虚部分解为各自的 DWT 分解,就可以将它们组合起来以获得幅度 and/or 相位,然后继续下一步或任何您想对它们执行的操作。


关于此正确性的数学证明不在我们讨论的范围内,但如果您想了解这是如何推导出来的,我建议您参阅 Kingsbury 于 1997 年在工作 复杂小波的图像处理 - http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=835E60EAF8B1BE4DB34C77FEE9BBBD56?doi=10.1.1.55.3189&rep=rep1&type=pdf。密切注意使用 CWT 对图像进行噪声过滤 - 这可能就是您正在寻找的。