图像处理-Ch7-快速小波变换和小波包

个人博客!无广告观看,因为这节内容太多了,有点放不下,分了三节

文章目录

    • 快速小波变换(The Fast Wavelet Transform)
      • 与两频段子带编译码系统的关系
        • 例:计算一维小波变换
      • 一维快速小波反变换
        • 例:计算一维小波反变换
      • FFT与FWT的区别
    • 小波包(Wavelet Packets)
      • 分析树
        • 例:三尺度分析树

快速小波变换(The Fast Wavelet Transform)

实现DWT的快速实现。

再次考虑MRA方程:
φ ( x ) = ∑ n h φ ( n ) 2 φ ( 2 x − n ) \varphi(x)=\sum_{n}h_{\varphi}(n)\sqrt{2}\varphi(2x - n) φ(x)=nhφ(n)2 φ(2xn)
x x x乘以 2 j 2^{j} 2j,平移 k k k,并令 m = 2 k + n m = 2k + n m=2k+n,得到 :
φ ( 2 j x − k ) = ∑ n h φ ( n ) 2 φ ( 2 ( 2 j x − k ) − n ) = ∑ n h φ ( n ) 2 φ ( 2 j + 1 x − 2 k − n ) = ∑ m h φ ( m − 2 k ) 2 φ ( 2 j + 1 x − m ) \begin{align}\varphi(2^{j}x - k)&=\sum_{n}h_{\varphi}(n)\sqrt{2}\varphi(2(2^{j}x - k)-n)\\ &=\sum_{n}h_{\varphi}(n)\sqrt{2}\varphi(2^{j+1}x-2k-n)\\ &=\sum_{m}h_{\varphi}(m - 2k)\sqrt{2}\varphi(2^{j + 1}x - m) \end{align} φ(2jxk)=nhφ(n)2 φ(2(2jxk)n)=nhφ(n)2 φ(2j+1x2kn)=mhφ(m2k)2 φ(2j+1xm)
对于小波函数,有类似结果:
ψ ( 2 j x − k ) = ∑ m h ψ ( m − 2 k ) 2 φ ( 2 j + 1 x − m ) \psi(2^{j}x - k)=\sum_{m}h_{\psi}(m - 2k)\sqrt{2}\varphi(2^{j + 1}x - m) ψ(2jxk)=mhψ(m2k)2 φ(2j+1xm)
对于离散小波函数,有:
W ψ ( j , k ) = 1 M ∑ x f ( x ) 2 j / 2 ψ ( 2 j x − k ) W_{\psi}(j,k)=\frac{1}{\sqrt{M}}\sum_{x}f(x)2^{j/2}\psi(2^{j}x - k) Wψ(j,k)=M 1xf(x)2j/2ψ(2jxk)
进一步,有:
W ψ ( j , k ) = 1 M ∑ x f ( x ) 2 j / 2 [ ∑ m h ψ ( m − 2 k ) 2 φ ( 2 j + 1 x − m ) ] W_{\psi}(j,k)=\frac{1}{\sqrt{M}}\sum_{x}f(x)2^{j/2}\left[\sum_{m}h_{\psi}(m - 2k)\sqrt{2}\varphi(2^{j + 1}x - m)\right] Wψ(j,k)=M 1xf(x)2j/2[mhψ(m2k)2 φ(2j+1xm)]
交换求和与积分并重新排列项,得到 :
W ψ ( j , k ) = ∑ m h ψ ( m − 2 k ) [ 1 M ∑ x f ( x ) 2 ( j + 1 ) / 2 φ ( 2 j + 1 x − m ) ] W ψ ( j , k ) = ∑ m h ψ ( m − 2 k ) W φ ( j + 1 , m ) 同理 , W φ ( j , k ) = ∑ m h φ ( m − 2 k ) W φ ( j + 1 , m ) W_{\psi}(j,k)=\sum_{m}h_{\psi}(m - 2k)\left[\frac{1}{\sqrt{M}}\sum_{x}f(x)2^{(j + 1)/2}\varphi(2^{j + 1}x - m)\right]\\ W_{\psi}(j,k)=\sum_{m}h_{\psi}(m - 2k)W_{\varphi}(j + 1,m)\\ 同理,\ W_{\varphi}(j,k)=\sum_{m}h_{\varphi}(m - 2k)W_{\varphi}(j + 1,m) Wψ(j,k)=mhψ(m2k)[M 1xf(x)2(j+1)/2φ(2j+1xm)]Wψ(j,k)=mhψ(m2k)Wφ(j+1,m)同理, Wφ(j,k)=mhφ(m2k)Wφ(j+1,m)
上述方程表示了快速小波变换(FWT), 揭示了相邻尺度的离散小波变换(DWT)系数之间的显著关系。

可以看到,尺度 j j j的近似系数 W φ ( j , k ) W_{\varphi}(j,k) Wφ(j,k)和细节系数 W ψ ( j , k ) W_{\psi}(j,k) Wψ(j,k)都可以通过将尺度 j + 1 j+1 j+1的近似系数 W φ ( j + 1 , k ) W_{\varphi}(j + 1,k) Wφ(j+1,k)与时间反转的缩放向量 h φ ( − n ) h_{\varphi}(-n) hφ(n)和小波向量 h ψ ( − n ) h_{\psi}(-n) hψ(n)进行卷积,并对结果进行下采样得到。

T与W同

与两频段子带编译码系统的关系

Q: 两频段子带编译码系统?

A: 是一种将信号分解为低频和高频子带的系统

  1. 低通通道(Low-Pass Channel):对应于尺度滤波器 h φ ( n ) h_{\varphi}(n) hφ(n),用于提取信号的低频成分。
  2. 高通通道(High-Pass Channel):对应于小波滤波器 h ψ ( n ) h_{\psi}(n) hψ(n),用于提取信号的高频成分。

∑ k g 0 ( k ) h 0 ( n − k ) + ( − 1 ) n ∑ k g 0 ( k ) h 0 ( n − k ) = 2 δ ( n ) , δ ( n ) = { 1 , n = 0 0 , n ≠ 0 ∑ k g 0 ( k ) h 0 ( 2 n − k ) = ⟨ g 0 ( k ) , h 0 ( 2 n − k ) ⟩ = δ ( n ) ⟨ h i ( 2 n − k ) , g j ( k ) ⟩ = δ ( i − j ) δ ( n ) i , j ∈ { 0 , 1 } \sum_{k}g_{0}(k)h_{0}(n - k)+(-1)^{n}\sum_{k}g_{0}(k)h_{0}(n - k)=2\delta(n),\delta{(n)}=\begin{cases}1 ,&n=0\\0, &n\neq 0\end{cases}\\ \sum_{k}g_{0}(k)h_{0}(2n - k)=\langle g_{0}(k),h_{0}(2n - k)\rangle=\delta(n)\\ \langle h_{i}(2n - k),g_{j}(k)\rangle=\delta(i - j)\delta(n)\quad i,j\in\{0,1\} kg0(k)h0(nk)+(1)nkg0(k)h0(nk)=2δ(n)δ(n)={1,0,n=0n=0kg0(k)h0(2nk)=g0(k),h0(2nk)⟩=δ(n)hi(2nk),gj(k)⟩=δ(ij)δ(n)i,j{0,1}

上述快速小波变换过程与两频段子带编译码系统的分析部分相同,其中:
h 0 ( n ) = h φ ( − n ) h 1 ( n ) = h ψ ( − n ) h_{0}(n)=h_{\varphi}(-n)\\ h_{1}(n)=h_{\psi}(-n) h0(n)=hφ(n)h1(n)=hψ(n)
可以写出 :
W ψ ( j , k ) = h ψ ( − n ) ∗ W φ ( j + 1 , n ) ∣ n = 2 k , k ≥ 0 W φ ( j , k ) = h φ ( − n ) ∗ W φ ( j + 1 , n ) ∣ n = 2 k , k ≥ 0 W_{\psi}(j,k)=h_{\psi}(-n)\ast W_{\varphi}(j + 1,n)\big|_{n = 2k,k\geq0}\\ W_{\varphi}(j,k)=h_{\varphi}(-n)\ast W_{\varphi}(j + 1,n)\big|_{n = 2k,k\geq0} Wψ(j,k)=hψ(n)Wφ(j+1,n) n=2k,k0Wφ(j,k)=hφ(n)Wφ(j+1,n) n=2k,k0
其中卷积在 n = 2 k ( k ≥ 0 ) n = 2k(k\geq0) n=2k(k0)时刻进行求值。在非负、偶数时刻,计算卷积与以2为步长进行过滤和抽样的效果相同。

值得注意的是,滤波器组可以“迭代”以创建多级结构,用于计算两个或多个连续尺度的 DWT 系数,如图所示。

image-20241225114935315

例:计算一维小波变换

与上面的例子同: f ( n ) = { 1 , 4 , − 3 , 0 } f(n)=\{1,4,-3,0\} f(n)={1,4,3,0}, 但现在使用相应的尺度和小波向量:
$$

h_{\varphi}(n)=\begin{cases}\frac{1}{\sqrt{2}},&n=0,1\0,& otherwise\end{cases}\\
h_{\psi}(n)=\begin{cases}\frac{1}{\sqrt{2}},&n=0\-\frac{1}{\sqrt{2}},&n=1\0,& otherwise\end{cases}
$$
这是用于建立FWT滤波器族的函数,它们给出了滤波器系数。

image-20241225115401963

一维快速小波反变换

上采样序列定义为:
y 2 ↑ ( n ) = { y ( n / 2 ) , n 是偶数 0 , 其他 y_{2\uparrow}(n)=\begin{cases}y(n/2),&n是偶数\\0,&其他\end{cases} y2(n)={y(n/2),0,n是偶数其他
其中 y ( n ) y(n) y(n)是一维取样序列,上采样因子为2。因子2上取样可以被视为在 y ( n ) y(n) y(n)的每个样本后插入一个0.

image-20241225165159030

例:计算一维小波反变换

快速小波反变换的计算与正变换的计算呈镜像关系。在开始计算之前,先对0级近似系数和细节系数进行上取样,分别得到{4,0},{1,0},然后继续向右移动,卷积,最终可以得到 f ( x ) = T φ ( 2 , n ) f(x)=T_{\varphi}(2,n) f(x)=Tφ(2,n).

image-20241225164731974

FFT与FWT的区别

  • 计算长度为 M = 2 j M = 2^j M=2j序列的FWT所涉及的数学运算量为 O ( M ) O(M) O(M)阶。
  • 这与FFT算法相比具有优势,FFT算法需要 O ( M log ⁡ M ) O(M\log M) O(MlogM)
  • 虽然傅里叶基函数(即正弦函数)保证了FFT的存在,但FWT的存在取决于所使用小波的缩放函数的可用性,以及缩放函数和相应小波的正交性(或双正交性)。
  • FFT无法同时在时间和频率上分析函数,但FWT可以。

小波包(Wavelet Packets)

快速小波变换(FWT)将函数分解为尺度和小波函数之和,其中尺度和小波函数的带框呈对数关系。也就是说,函数的低频内容被分组到窄频带(尺度和小波函数)中,而高频内容被分组到较宽的频带(尺度和小波函数)中。

如果我们想要对时频平面的划分进行更精细的控制,FWT必须被推广以产生一种更灵活的分解——称为小波包。

分析树

根节点被赋予最高尺度的近似系数,这些系数是函数本身的样本,而叶子节点继承变换的近似和细节系数输出。注意:每个节点的系数都是线性展开的权重。

image-20241225170845632

例:三尺度分析树

例如,上图中的三尺度分析树提供了以下三种展开选项:
V j = V j − 1 ⊕ W j − 1 V j = V j − 2 ⊕ W j − 2 ⊕ W j − 1 V j = V j − 3 ⊕ W j − 3 ⊕ W j − 2 ⊕ W j − 1 \begin{align} V_j& = V_{j - 1} \oplus W_{j - 1}\\ V_j &= V_{j - 2} \oplus W_{j - 2} \oplus W_{j - 1}\\ V_j &= V_{j - 3} \oplus W_{j - 3} \oplus W_{j - 2} \oplus W_{j - 1} \end{align} VjVjVj=Vj1Wj1=Vj2Wj2Wj1=Vj3Wj3Wj2Wj1
其中 ⊕ \oplus 表示空间的直和(类似于集合的并集)。

分析树也是表示小波包的一种有效机制,小波包不过是对细节进行迭代滤波的常规小波变换。因此,上图(b)中的三尺度FWT分析树变成了下图中的三尺度小波包树。

image-20241225193133942

A A A表示近似滤波、 D D D表示细节滤波。图中的小波包树支持26种不同的分解。例如, V j V_j Vj可以展开为:
V J = V J − 3 ⊕ W J − 3 ⊕ W J − 2 , A ⊕ W J − 2 , D ⊕ W J − 1 , A A ⊕ W J − 1 , A D ⊕ W J − 1 , D A ⊕ W J − 1 , D D V J = V J − 1 ⊕ W J − 1 , D ⊕ W J − 1 , A A ⊕ W J − 1 , A D V_J = V_{J - 3} \oplus W_{J - 3} \oplus W_{J - 2,A} \oplus W_{J - 2,D} \oplus W_{J - 1,AA} \oplus W_{J - 1,AD} \oplus W_{J - 1,DA} \oplus W_{J - 1,DD}\\ V_J = V_{J - 1} \oplus W_{J - 1,D} \oplus W_{J - 1,AA} \oplus W_{J - 1,AD} VJ=VJ3WJ3WJ2,AWJ2,DWJ1,AAWJ1,ADWJ1,DAWJ1,DDVJ=VJ1WJ1,DWJ1,AAWJ1,AD
image-20241225194327314

image-20241225194338398

一般来说, P P P尺度的一维小波包变换(以及相关的 P + 1 P + 1 P+1级分析树)支持:
D ( P + 1 ) = [ D ( P ) ] 2 + 1 D(P + 1)=[D(P)]^2 + 1 D(P+1)=[D(P)]2+1
种独特的分解,其中 D ( 1 ) = 1 D(1)=1 D(1)=1

lign}
V_j& = V_{j - 1} \oplus W_{j - 1}\
V_j &= V_{j - 2} \oplus W_{j - 2} \oplus W_{j - 1}\
V_j &= V_{j - 3} \oplus W_{j - 3} \oplus W_{j - 2} \oplus W_{j - 1}
\end{align}
$$
其中 ⊕ \oplus 表示空间的直和(类似于集合的并集)。

分析树也是表示小波包的一种有效机制,小波包不过是对细节进行迭代滤波的常规小波变换。因此,上图(b)中的三尺度FWT分析树变成了下图中的三尺度小波包树。

[外链图片转存中…(img-D1xm8JZn-1735127696455)]

A A A表示近似滤波、 D D D表示细节滤波。图中的小波包树支持26种不同的分解。例如, V j V_j Vj可以展开为:
V J = V J − 3 ⊕ W J − 3 ⊕ W J − 2 , A ⊕ W J − 2 , D ⊕ W J − 1 , A A ⊕ W J − 1 , A D ⊕ W J − 1 , D A ⊕ W J − 1 , D D V J = V J − 1 ⊕ W J − 1 , D ⊕ W J − 1 , A A ⊕ W J − 1 , A D V_J = V_{J - 3} \oplus W_{J - 3} \oplus W_{J - 2,A} \oplus W_{J - 2,D} \oplus W_{J - 1,AA} \oplus W_{J - 1,AD} \oplus W_{J - 1,DA} \oplus W_{J - 1,DD}\\ V_J = V_{J - 1} \oplus W_{J - 1,D} \oplus W_{J - 1,AA} \oplus W_{J - 1,AD} VJ=VJ3WJ3WJ2,AWJ2,DWJ1,AAWJ1,ADWJ1,DAWJ1,DDVJ=VJ1WJ1,DWJ1,AAWJ1,AD
[外链图片转存中…(img-zdaG9cvw-1735127696455)]

[外链图片转存中…(img-oieYA8Vt-1735127696456)]

一般来说, P P P尺度的一维小波包变换(以及相关的 P + 1 P + 1 P+1级分析树)支持:
D ( P + 1 ) = [ D ( P ) ] 2 + 1 D(P + 1)=[D(P)]^2 + 1 D(P+1)=[D(P)]2+1
种独特的分解,其中 D ( 1 ) = 1 D(1)=1 D(1)=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KAFKA 权威指南笔记(一)究竟应该配置多少个BROKER?

一个KAFKA集群需要多少个BROKER? 一个单独的Kafka服务器被叫做BROKER,BROKER可以处理数千个分区以及每秒百万级别的消息量。由BROKER组成了“集群”(其中由集群控制器角色的BROKER是从成员中选举出来的,负责控制管理工作&#xf…

【ES6复习笔记】函数参数的默认值(6)

在ES6中,函数参数默认值是一个非常有用的特性,它允许你在定义函数时为参数指定一个默认值。如果在调用函数时没有提供相应的参数值,那么函数将使用默认值。 1. 形参初始值 具有默认值的参数,一般位置要靠后。这是一个潜规则&…

WebRtc webrtc-streamer部署

文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 WebRtc webrtc-streamer 部署 docker run -p 8000:8000 -it mpromonet/webrt…

Spring Boot中幂等性的应用

在 Spring Boot 中,幂等性是实现分布式系统设计和接口调用的一个重要概念,尤其在高并发、分布式环境下,确保接口重复调用不会引发系统数据异常至关重要。 幂等性概念 幂等性(Idempotence)是指一次请求和重复多次请求…

leetcode 7. 整数反转

class Solution { public: int reverse(int x) { long long n0; if(x0) return 0; while(x%100) { xx/10; } while(x!0) { nn*10x%10; xx/10; } if(n<-2147483648||n>2147483647) return 0; return n; } };

[项目][boost搜索引擎#4] cpp-httplib使用 log.hpp 前端 测试及总结

目录 编写http_server模块 1. 引入cpp-httplib到项目中 2. cpp-httplib的使用介绍 3. 正式编写http_server 九、添加日志到项目中 十、编写前端模块 十一. 详解传 gitee 十二、项目总结 项目的扩展 写在前面 [项目详解][boost搜索引擎#1] 概述 | 去标签 | 数据清洗 |…

xxl-job 简单的入门到实战

本文是参考官方文档自己实践一次&#xff0c;纯享版&#xff0c;大致也是作者边写博客边去跟着官方文档实现 一、前期准备 1、官网地址 GitHub地址&#xff1a; GitHub - xuxueli/xxl-job: A distributed task scheduling framework.&#xff08;分布式任务调度平台XXL-JOB&…

Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org

在 CentOS 7 中使用 yum 工具时&#xff0c;如果出现 "Could not resolve host: mirrorlist.centos.org" 的错误&#xff0c;通常是因为默认的镜像源无法访问。以下是一些常用的解决方法&#xff1a; 检查网络连接&#xff1a;首先使用 ping 命令测试网络连接是否正常…

【教程】通过Docker运行AnythingLLM

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 官方教程&#xff1a;Local Docker Installation ~ AnythingLLM 1、先创建一个目录用于保存anythingllm的持久化文件&#xff1a; sudo mkdir /app su…

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

此教程适合若依前后端分离项目&#xff0c;其他项目可以在扩展列表中进行查找。 近期公司里需要对很久以前的RuoYi-Vue前后端分离项目扩展出flowable的功能&#xff0c;当然这个重任也是落在了我的身上&#xff08;不然也不会有这篇文章&#xff09;&#xff0c;然后我在官网看…

ubuntu 网络管理--NetworkManager

ubuntu 网络管理--NetworkManager 1 介绍2 NetworkManager 命令2 nmcli 命令显示可用的wifi AP连接wifi检查网络连接 ?? 如何删除删除网络连接查看设备状态添加一个新的以太网连接设置静态 IP 地址启用并测试连接添加新的wifi连接 3 其他命令参考 1 介绍 NetworkManager 是标…

计算机网络习题(第5章 网络层 第6章 传输层)

第5章 网络层 一、单选题 1、下列关于 IPv4 地址的说法中&#xff0c;错误的是( )。 A、 IP 地址是逻辑地址 B、 IP 地址一般用点分十进制表示 C、 205.106.286.36 是一个合法的 IP 地址 D、 同一个网络中不能有两台计算机的 IP 地址相同 正确答案&#xff1a; C 2、…

水库大坝三维模型的开发和使用3Dmax篇

成果图 开发过程 工具插件three.js先加载模型做水体衔接水位测量标尺水位标记断面标记大坝监测点打点 上代码&#xff0c;技术交流V: bloxed <template><div class"box w100 h100"><el-row :gutter"20" v-loading"loading"e…

【蓝桥杯每日一题】分糖果——DFS

分糖果 蓝桥杯每日一题 2024-12-24 分糖果 DFS 题目描述 两种糖果分别有 9 个和 16 个&#xff0c;要全部分给 7 个小朋友&#xff0c;每个小朋友得到的糖果总数最少为 2 个最多为 5 个&#xff0c;问有多少种不同的分法。糖果必须全部分完。 只要有其中一个小朋友在两种方案中…

计算机毕设-基于springboot的校园招聘网站的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

重生之我在异世界学编程之C语言:深入动态内存管理收尾 + 柔性数组篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文常见的动态内存管理错误&#xf…

无人直播源码

DY无人直播系统架构设计介绍 在DY等短视频平台的直播中&#xff0c;无人直播系统能够提供自动化、智能化的互动体验&#xff0c;既减轻了主播的工作量&#xff0c;又提升了观众的参与感。以下是一个典型的无人直播系统架构设计&#xff0c;包含全局配置、点对点互动、产品话术、…

被裁20240927 --- 嵌入式硬件开发 前篇

前篇主要介绍一些相关的概念&#xff0c;用于常识扫盲&#xff0c;后篇开始上干货&#xff01; 他捧着一只碗吃过百家的饭 1. 处理器芯片1.1 处理器芯片制造商一、 英特尔&#xff08;Intel&#xff09;二、 三星&#xff08;SAMSUNG&#xff09;三、 高通&#xff08;Qualcomm…

准备考试:解决大学入学考试问题

引言 在编程竞赛和算法挑战中&#xff0c;我们经常会遇到各种类型的组合问题。这些问题不仅考验我们的逻辑思维能力&#xff0c;还要求我们熟练掌握数据结构和算法。在这篇文章中&#xff0c;我们将探讨一个有趣的问题——“准备考试”&#xff0c;这个问题来自于一个虚构的情…

【Linux】进程间通信 -> 匿名管道命名管道

进程间通信的目的 数据传输&#xff1a;一个进程许需要将它的数据发送给另外一个进程。资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它们发生了某种事件&#xff08;如进程终止时要通知父进程…