本文展示了双树复小波变换 (Dual-Tree Complex Wavelet Transforms,DTCWT) 在信号、图像和轴承故障诊断方面的应用。 DTCWT 为两个独立的两通道滤波器组,在实际应用用,不能随意选择两棵树中使用的尺度小波滤波器。第一棵树 {h0 ,h1 } 的低通(尺度)和高通(小波)滤波器生成一个尺度函数和小波,另一棵树是由第一棵树的尺度函数的近似希尔伯特变换以及相应的高通滤波器生成的小波函数组成,记作{g0,g1 }。因此由两棵树形成的复值尺度函数和小波函数是近似解析的,因此,DTCWT比DWT具有更小的移位方差和更大的方向选择性。DTCWT的冗余度明显小于未抽取的DWT 的冗余度。本文验证了 DTCWT 的近似移位不变性,DTCWT在2-D和3-D数据中的方向选择性,以及DTCWT变换在图像去噪等方面的应用。

双树复小波变换DTCWT基本理论

双树复小波变换DTCWT采用二叉树结构的两路滤波器组进行信号的分解和重构,第一棵树生成实部,第二棵生成虚部,合理设计实、虚部树低通滤波器,满足半采样延迟条件,具有近似平移不变性。两树的滤波器采样频率相同,但是它们之间的延迟恰好是一个采样间隔,这样虚部树中第1层的二抽取恰好采到实部树中二抽取所丢掉的采样值,在获得了复小波变换的平移不变性的同时避免了大量的计算并且具有容易实现的优势。下图为3层双树复小波的分解和重构过程。

3层双树复小波的分解和重构过程

虚线上方实部树变换的小波系数和尺度系数可由式(2)和(3)计算

相关的参考文献如下:

[1]Huang Tongyuan,Xu Jia,Yang Yuling,Han Baoru. Robust Zero-Watermarking Algorithm for Medical Images Using Double-Tree Complex Wavelet Transform and Hessenberg Decomposition[J]. Mathematics,2022,10(7).

[2]Zhou Yilu,Fu Xiaojin. Image Denoising Based on Dual-tree Complex Wavelet Transform and Convolutional Neural Network[J]. Journal of Physics: Conference Series,2021,1995(1).

[3]Lei Wang,Zhiwen Liu,Hongrui Cao,Xin Zhang. Subband averaging kurtogram with dual-tree complex wavelet packet transform for rotating machinery fault diagnosis[J]. Mechanical Systems and Signal Processing,2020,142(C).

DTCWT的近似移位不变性

DWT受到移位变化的影响,这意味着输入信号或图像的微小偏移将导致DWT系数中跨尺度的信号或图像能量分布发生显着变化。 DTCWT是近似移位不变的。为了在测试信号中证明这一点,构建两个移位的离散时间脉冲,长度为128 个样本。一个信号在样本60处具有单位脉冲,而另一个信号在样本64处具有单位脉冲,两个信号显然都具有单位能量(l2)范数。

kronDelta1 = zeros(128,1);
kronDelta1(60) = 1;
kronDelta2 = zeros(128,1);
kronDelta2(64) = 1;

将DWT的扩展模式设置为周期性。使用长度为14的小波和尺度滤波器获得两个信号的DWT 和DTCWT,直到第3 级,提取第3级的细节系数进行比较。

origmode = dwtmode('status','nodisplay');
dwtmode('per','nodisp')
J = 3;
[dwt1C,dwt1L] = wavedec(kronDelta1,J,'sym7');
[dwt2C,dwt2L] = wavedec(kronDelta2,J,'sym7');
dwt1Cfs = detcoef(dwt1C,dwt1L,3);
dwt2Cfs = detcoef(dwt2C,dwt2L,3);[dt1A,dt1D] = DTCWT(kronDelta1,'Level',J,'FilterLength',14);
[dt2A,dt2D] = DTCWT(kronDelta2,'Level',J,'FilterLength',14);
dt1Cfs = dt1D{3};
dt2Cfs = dt2D{3};

绘制第3级两个信号的DWT 和DTCWT系数的绝对值,并计算系数的能量(平方l2范数),以相同的比例绘制系数。信号中的 4 个样本移位导致第3级 DWT 系数的能量发生了显着变化,第 3 级DTCWT 系数中的能量仅变化了大约 3%。

figure
subplot(1,2,1)
stem(abs(dwt1Cfs),'markerfacecolor',[0 0 1])
title({'DWT';['Squared 2-norm = ' num2str(norm(dwt1Cfs,2)^2,3)]},...'fontsize',10)
ylim([0 0.4])
subplot(1,2,2)
stem(abs(dwt2Cfs),'markerfacecolor',[0 0 1])
title({'DWT';['Squared 2-norm = ' num2str(norm(dwt2Cfs,2)^2,3)]},...'fontsize',10)
ylim([0 0.4])

figure
subplot(1,2,1)
stem(abs(dt1Cfs),'markerfacecolor',[0 0 1])
title({'Dual-tree CWT';['Squared 2-norm = ' num2str(norm(dt1Cfs,2)^2,3)]},...'fontsize',10)
ylim([0 0.4])
subplot(1,2,2)
stem(abs(dwt2Cfs),'markerfacecolor',[0 0 1])
title({'Dual-tree CWT';['Squared 2-norm = ' num2str(norm(dt2Cfs,2)^2,3)]},...'fontsize',10)
ylim([0 0.4])

为了证明近似移位不变性在实际数据中的作用,我们分析心电图 (ECG) 信号。 ECG 信号的采样间隔为 1/180 秒,数据取自 Percival & Walden[4],第 125 页(数据最初由华盛顿大学的 William Constantine 和 Per Reinhall 提供)。为方便起见,我们将数据从 t=0 开始。

[4]Percival, Donald B., and Andrew T. Walden. Wavelet Methods for Time Series Analysis. Cambridge Series in Statistical and Probabilistic Mathematics. Cambridge ; New York: Cambridge University Press, 2000.

load wecg
dt = 1/180;
t = 0:dt:(length(wecg)*dt)-dt;
figure
plot(t,wecg)
xlabel('Seconds')
ylabel('Millivolts')

相隔约0.7 秒的较大的正值峰是心律R波。首先,使用带有 Farras近似对称滤波器的临界采样DWT分解信号。绘制原始信号以及第2级和第3级小波系数。之所以选择第2级和第3级系数,是因为对于给定的采样频率,R波在这些尺度中被分离的较为显著。

figure
J = 6;
[df,rf] = dtfilters('farras');
[dtDWT1,L1] = wavedec(wecg,J,df(:,1),df(:,2));
details = zeros(2048,3);
details(2:4:end,2) = detcoef(dtDWT1,L1,2);
details(4:8:end,3) = detcoef(dtDWT1,L1,3);
subplot(3,1,1)
stem(t,details(:,2),'Marker','none','ShowBaseline','off')
title('Level 2')
ylabel('mV')
subplot(3,1,2)
stem(t,details(:,3),'Marker','none','ShowBaseline','off')
title('Level 3')
ylabel('mV')
subplot(3,1,3)
plot(t,wecg)
title('Original Signal')
xlabel('Seconds')
ylabel('mV')

进行DTCWT分析,只取第2级和第3级双树系数的实部,如下图所示

临界采样DWT和双树小波变换DTCWT都将 ECG 波形的一个重要特征定位到相似的尺度。小波在一维信号中的一个重要应用是获得按尺度的方差分析。按理说,这种方差分析不应该对输入信号的循环移位敏感。不幸的是,严格采样的DWT并非如此。为了证明这一点,我们将 ECG 信号循环移位4个样本,采用严格采样的DWT分析未移动和移动的信号,并计算跨尺度的能量分布。

wecgShift = circshift(wecg,4);
[dtDWT2,L2] = wavedec(wecgShift,J,df(:,1),df(:,2));detCfs1 = detcoef(dtDWT1,L1,1:J,'cells');
apxCfs1 = appcoef(dtDWT1,L1,rf(:,1),rf(:,2),J);
cfs1 = horzcat(detCfs1,{apxCfs1});
detCfs2 = detcoef(dtDWT2,L2,1:J,'cells');
apxCfs2 = appcoef(dtDWT2,L2,rf(:,1),rf(:,2),J);
cfs2 = horzcat(detCfs2,{apxCfs2});sigenrgy = norm(wecg,2)^2;
enr1 = cell2mat(cellfun(@(x)(norm(x,2)^2/sigenrgy)*100,cfs1,'uni',0));
enr2 = cell2mat(cellfun(@(x)(norm(x,2)^2/sigenrgy)*100,cfs2,'uni',0));
levels = {'D1';'D2';'D3';'D4';'D5';'D6';'A6'};
enr1 = enr1(:);
enr2 = enr2(:);
table(levels,enr1,enr2,'VariableNames',{'Level','enr1','enr2'})

注意到第3级和第4级的小波系数显示原始信号和移位信号之间的能量变化约为 3%。接下来,我们使用DTCWT进行分析,结果如下所示。

由结果可得,DTCWT变换为原始信号及其循环移位版本生成按比例的一致性方差。

图像处理中的方向选择性

我们绘制一下具有 4阶消失矩 sym4 的 Daubechies 最小不对称相位小波的 LH、HL 和 HH滤波器

由图可以看出LH和HL小波滤波器分别具有清晰的水平和竖直方向,最右边的HH小波滤波器混合了+45 度和-45 度方向,产生了伪影。这种方向的混合是由于使用了实值可分离滤波器。HH实值可分离滤波器在2维频率平面的所有四个高频角都有通带。DTCWT通过使用近似解析的小波实现方向选择性,在DTCWT中,实部和虚部有6个子带。6个子带的实部是通过将列滤波后的输出相加,然后对两棵树中的输入图像进行行滤波而形成的。6个子带的虚部是通过减去列滤波和行滤波的输出而形成的。应用于列和行的滤波器可能来自相同的滤波器 {h0,h1 } 或 {g0,g1},或者来自不同的滤波器 {h0,g1},{g0,h1}。下面绘制对应于DTCWT实部和虚部的12个小波滤波器的方向,图的第1行是6个小波滤波器的实部,第2行是虚部。

二维边缘表示

DTCWT的近似解析性和方向选择性在图像边缘的表示方面提供了优于标准2维DWT的性能。为了说明这一点,我们使用临界采样的2-D DWT和 2-D DTCWT来分析测试图像。首先,导入图像

将图像分解到第 4 级,并根据第 4 级细节系数重构图像。

接下来,分析一个具有双曲边的八边形。

load woctagonHyperbolic
figure
imagesc(woctagonHyperbolic)
colormap gray
title('Octagon with Hyperbolic Edges')
axis equal
axis off

同样将图像分解到第 4 级,并根据第 4 级细节系数重构图像

注意到两幅图像的二维 DTCWT 中均不存在二维严格采样 DWT 中明显的伪影。 DTCWT 再现了直线和曲线奇点。

图像降噪

由于能够在独立的子带中分离不同的方向,DTCWT在图像降噪等应用中通常优于标准的可分离DWT。使用软阈值处理对严格采样的 DWT 和 DTCWT 进行降噪比较。对于每个阈值,均显示均方根 (RMS) 误差和峰值信噪比 (PSNR)。

DTCWT 在 RMS 误差和 PSNR 方面优于标准 DWT。接下来,简单地看下图像的降噪效果

DTCWT 提供的 PSNR 比标准 2-D DWT 高出近 4 dB

3-D空间中的方向选择性

当将小波分析扩展到更高维时,使用可分离DWT在二维空间中观察到的伪影会加剧。DTCWT 能以最小的冗余保持3-D空间中的方向选择性。在3-D空间中,DTCWT中有 28 个小波子带。为了演示3-DDTCWT 的方向选择性,可视化3-D DTCWT 和可分离 DWT小波的3-D等值面图。首先,分别可视化两个双树子带的实部和虚部。

等值面图的红色部分表示小波从零开始的正偏移,而蓝色表示负偏移。可以清楚地看到DTCWT的实部和虚部在空间中的方向选择性。现在可视化双树子带之一,将实部和虚部图一起绘制为一个等值面。

上图展示了实部和虚部在空间中相互转换,这反映了双树复小波的虚部是实部的近似希尔伯特变换。接下来,在 3-D 中可视化正交小波的等值面以进行比较

看下DTCWT和DWT的方向混叠现象

与 2-D情况类似,3-D DTCWT的方向选择特性通常降噪效果更好。为了证明这一点,考虑一个由 16 个切片组成的 MRI 数据集。原始数据集中加入了标准差为10的高斯噪声。

load MRI3D
montage(reshape(noisyMRI,[128 128 1 16]),'DisplayRange',[])

计算一下SNR

20*log10(norm(origMRI(:),2)/norm(origMRI(:)-noisyMRI(:),2))

使用 DTCWT 和 DWT 将 MRI 数据集降噪,共分解到4级,这两种情况下都使用相似的小波滤波器长度。将生成的 SNR 绘制为阈值的函数。

figure
montage(reshape(imrecDTCWT,[128 128 1 16]),'DisplayRange',[])
title('DTCWT Denoised Volume')

figure
montage(reshape(imrecDWT,[128 128 1 16]),'DisplayRange',[])
title('DWT Denoised Volume')

双树复小波变换Dual-Tree Complex Wavelet Transform在信号处理中的应用相关推荐

  1. 【图像融合】基于matlab双树复小波变换像素级图像融合【含Matlab源码 2024期】

    ⛄一.双树复小波变换简介 1999年, Kingsbury提出了双树复小波变换.随后, 2005年, Seles nick等设计出了双树复小波变换的分解重构算法,这一算法的提出,使得双树复小波变换能够 ...

  2. 双树复小波变换——详细分析

    https://dtcwt.readthedocs.io/en/0.12.0/reference.html#module-dtcwt.compat

  3. 从2-3-4树谈到Red-Black Tree(红黑树)

    从2-3-4树谈到红黑树 译者:July. 出处:http://blog.csdn.net/v_JULY_v . 在上一篇文章--从B树.B+树.B*树谈到R 树里已提到2-3-4树,那么本文,咱们就 ...

  4. 小波变换(wavelet transform)的通俗解释(一)

    小波变换 小波,一个神奇的波,可长可短可胖可瘦(伸缩平移),当去学习小波的时候,第一个首先要做的就是回顾傅立叶变换(又回来了,唉),因为他们都是频率变换的方法,而傅立叶变换是最入门的,也是最先了解的, ...

  5. Ag Grid 表格树 Vue Data Grid: Tree Data

    目录 Tree Data 模式 提供 Tree Data 配置组列 Auto Column Group Custom Column Group 示例:组织层次结构 填充组 Tree Data 聚合(合 ...

  6. 小波变换(wavelet transform)的通俗解释

    本篇为<信号处理>系列博客的第三篇,该系列博客主要记录信号处理相关知识的学习过程和自己的理解,方便以后查阅. 文章原地址:<小波变换(wavelet transform)的通俗解释( ...

  7. 【UOJ#388】【UNR#3】配对树(线段树,dsu on tree)

    [UOJ#388][UNR#3]配对树(线段树,dsu on tree) 题面 UOJ 题解 考虑一个固定区间怎么计算答案,把这些点搞下来建树,然后\(dp\),不难发现一个点如果子树内能够匹配的话就 ...

  8. LSM树(Log-Structured Merge Tree)存储引擎

    LSM树(Log-Structured Merge Tree)存储引擎 代表数据库:nessDB.leveldb.hbase等 核心思想的核心就是放弃部分读能力,换取写入的最大化能力.LSM Tree ...

  9. 强化学习—— 蒙特卡洛树(Monte Carlo Tree Search, MCTS)

    强化学习-- 蒙特卡洛树(Monte Carlo Tree Search, MCTS) 1. 单一状态蒙特卡洛规划 1.1 特点 1.2 数学模型 2. 上限置信区间策略 3. 蒙特卡洛树搜索 3.1 ...

最新文章

  1. 如何使用Next.js创建动态的Rick and Morty Wiki Web App
  2. 《评人工智能如何走向新阶段》后记(再续15)
  3. java synchronized关键字
  4. sap 客户信贷配置与管理解析
  5. 记录一些使用git过程中的bug
  6. 【渝粤题库】国家开放大学2021春2047商业银行经营管理题目
  7. 移动平均线ma分析_使用动态移动平均线构建交互式库存量和价格分析图
  8. c语言建立顺序表 存储并输出,请教数据结构课程中怎么建立顺序表,显示,输出,从头到尾详细点最好加讲解,希望大家能帮这个小忙...
  9. Java语言所有异常类均继承自_要继承自定义异常类的继承方式必须使用 ( ) 关键字_学小易找答案...
  10. mysql插入datetime默认值0000-00-00时报错
  11. 小程序中如何引用阿里图标
  12. 延时加载(lazy load)
  13. postgresql Connection to database failed: FATAL: no pg_hba.conf entry for host 10.129.195.161, us
  14. python 扩展c extention
  15. Ubuntu 中文字体设置备忘
  16. 【C语言快速上手】带你了解C语言,零基础入门①
  17. Shader 漫反射
  18. 蕊蕊吃糖2870 C语言
  19. mysql将VARBINARY转为字符串显示方法
  20. Spark的数据存储目录HDFS

热门文章

  1. 重大突发事件及其应急决策研究
  2. swift3.0中文转拼音
  3. SitePoint播客#137:与Jan Lukacs联手Paymo
  4. PyTorch 对应点相乘、矩阵相乘
  5. 关于javaweb连接mysql数据库mysql驱动包存放路径的问题
  6. 成绩管理系统c语言程序设计,学生成绩管理系统(C语言)
  7. Python爬取斗鱼直播信息
  8. 基于Java+Springboot+vue在线版权登记管理系统设计实现
  9. 谈谈我对Ext的认识,元芳,你怎么看
  10. JavaWeb---放慢-脚步---04_JavaScript