内容均来源于维基百科对db小波函数的介绍

多贝西小波(英语:Daubechies Wavelet),是以比利时女性物理暨数学家英格丽·多贝西(Ingrid Daubechies)的名字命名之一种小波函数,当初英格丽·多贝西发现了一种具有阶层(hierarchy)性质的小波,便将此小波以她的名字命名。多贝西小波主要应用在离散型的小波转换,是最常使用到的小波转换,通常使用在数位信号分析、信号压缩跟噪声去除。

一般而言的离散小波转换通常是以正交小波(orthogonal wavelet)为基底,而多贝西小波也是一种正交小波。由于它很容易经由快速小波转换(fast wavelet transform(FWT))实现,所以常会放在数位信号处理的教科书中教学。

对于有限长度的小波,应用于快速小波转换(fast wavelet transform(FWT))时,会有两个实数组成的数列:一是作为高通滤波器的系数,称作小波滤波器(wavelet filter,也称为mother wavelet);二是低通滤波器的系数,称作调整滤波器(scaling filter,也称为father wavelet)。

我们则以滤波器的长度N来形容滤波器为DN,例如:N=2的多贝西小波写作D2、N=4的多贝西小波写作D4,以此类推(N为偶数)。实际上常用的多贝西小波为D2到D20。

  • 分类方式

    多贝西小波的分类是以消失动量(vanishing moment)的值A(亦为消失动量的个数)为依据(A称为tap),调整函式(scaling function)及小波函式(wavelet function)的平滑度(smoothness)皆会随着消失动量的值(tap)增加而增加:例如,当A=1时,多贝西小波即是哈尔小波(Haar wavelet),调整函式及小波函式都是不连续的;当A=2时,多贝西小波的调整函式及小波函式为不能平滑微分的连续函式;当A=3时,调整函式及小波函式已经是连续可微的函式了。以此类推,当A愈大时,多贝西小波的两个函式平滑度会愈来愈高。以下为多贝西小波跟不同A的调整及小波函式图:

  • 长度

    多贝西小波的长度为消失动量(vanishing moment)值A的两倍;所以当消失动量为A时,多贝西小波的小波滤波器(wavelet filter)及调整滤波器(scaling filter)长度皆为2A(N=2A)。一般而言,我们仍是以N来形容多贝西小波的长度:例如,当A=1时,有一个消失动量,多贝西小波写成D2,长度为2(也是Haar小波);当A=2时,有两个消失动量,多贝西小波写成D4,长度为4;以此类推。但是,在matlab的使用上是以dbA描述多贝西小波,以下则为调整滤波器的系数及A的关系表:

多贝西小波具有调整函式(低通滤波)及小波函式(高通滤波)两个函式。因此,我们需先建立调整函式及小波函式的系数:

首先,调整函数在多尺度分析(multi-resolution analysis)中的每一层皆可写为下列方程式:

算法

以下为示范小波转换应用于影像压缩,压缩后为原本图片的四分之一。

假设输入的图片大小为M*N,让图片对高频和低频进行convolution。

对M的基数进行取样,这个结果会让两个维度都变成(M/2)*N。

把低频的图片放在上面,高频的放在下面,低频的图片会长的像原本的图片,高频的图片会是只有灰色的图片。

对新的图片再进行高频和低频的convolution,这时变成M*(N/2)的大小,低频放在左边,高频放在右边,

最后可以看到[0:M/2, 0:N/2]就会是原本压缩过后的图片。

因小波转换有良好的性质,经过多次压缩还是能保有原本的资讯。也就是说可以修改以下的程式码改成循环的方式,

进行多次小波转换,经过类似的模式再使用多次的反小波转换,还原出原本大小的图片。

import numpy as np
def subsampling(x, d):if d == 1:y = x[::2, :]elif d == 2:y = x[:, ::2]return ydef upsampling(x, d):s = x.shapeif d == 1:y = np.zeros((p * s[0], s[1]))y[::2, :] = xelif d == 2:y = np.zeros((s[0], p * s[1]))y[:, ::2] = xreturn ydef cconv(x, h, d):if d == 2:return np.transpose(cconv(np.transpose(x), h, 1))y = np.zeros(x.shape)p = len(h)pc = int(round( float((p - 1) / 2 )))for i in range(0, p):y = y + h[i] * np.roll(x, i - pc, axis=0)return ydef DWT(image, h, g): # discrete wavelet transformationfW = image.copy()j = int(np.log2(image.shape[0])-1)A = fW[:2**(j+1):,:2**(j+1):]Coarse = subsampling(cconv(A,h,1),1)Detail = subsampling(cconv(A,g,1),1)A = np.concatenate( (Coarse, Detail), axis=0 )Coarse = subsampling(cconv(A,h,2),2)Detail = subsampling(cconv(A,g,2),2)A = np.concatenate( (Coarse, Detail), axis=1 )fW[:2**(j+1):,:2**(j+1):] = Areturn fWdef iDWT(image, fW, h, g): #image is original, fW is after DWT of that.f1 = fW.copy()j = int(np.log2(image.shape[0])-1)A = f1[:2**(j+1):,:2**(j+1):]Coarse = A[:2**j:,:]Detail = A[2**j:2**(j+1):,:]h1 = h[::-1]g1 = g[::-1]Coarse = cconv(upsampling(Coarse,1),h1,1)Detail = cconv(upsampling(Detail,1),g1,1)A = Coarse + DetailCoarse = A[:,:2**j:]Detail = A[:,2**j:2**(j+1):]Coarse = cconv(upsampling(Coarse,2),h1,2)Detail = cconv(upsampling(Detail,2),g1,2)A = Coarse + Detailf1[:2**(j+1):,:2**(j+1):] = Areturn f1

参考资料

  1. A first course in Wavelets with Fourier Analysis, A.Boggess, F.J. Narcowich, 2001

分类:​

  • 正交小波

小波变换中的多贝西小波(DB小波函数)概述相关推荐

  1. matlab中daubechie小波,[转载]小波滤波器

    滤波器组完美重构与小波快速算法. 前面的分析可以知道Vj相当于在j分辨率的逼近,Vj-1相当于j-1分辨率的逼近,这样Wj-1相当于两个分辨率逼近的差.在高分辨率下,我们可以用f在(2^j*t)的采样 ...

  2. matlab小波脊线,小波脊线提取,模极大值法。运行的结果不太对,代码有些地方我也没完全看懂...

    本帖最后由 1393107100 于 2019-5-1 11:10 编辑 clear,clc close all %%%%%% 小波变换 %%%%%%%%%%%%%%%% fs=1024; t=1/f ...

  3. bp神经网络mallat小波matlab,小波神经网络原理及其应用汇总.ppt

    小波神经网络原理及其应用汇总,小波神经网络原理,小波变换原理与应用,神经网络的原理及应用,小波神经网络matlab,小波神经网络预测代码,小波神经网络模型,小波神经网络预测程序,小波神经网络预测,小波 ...

  4. 什么是小波?小波是什么?

    小波,不严格的说即有限持续时间的波形,其平均值为零.许多我们感兴趣的信号和图像表现出瞬变行为.例如语音信号的特点是辅音短脉冲编码,然后元音稳态振荡:自然图像边缘突变:金融时间序列表现出瞬态行为,经济状 ...

  5. 小波(小波包)变换 频率/频域 与 图像细节处理

    文章目录 小波变换与python 小波包变换 小波变换与深度学习的结合 频域(DCT,小波变换)与CNN结合 超分-wavelet [Invertible Image Rescaling 可逆图像缩放 ...

  6. morlet小波matlab代码,morlet小波matlab程序

    论-Matlab 7.0复Morlet小波分析操作实例.? 92? 2015年5 月 科技创新 中文科技期刊数据库 ( 文摘版 )自然科学 Matlab 7.0复MorletP]~ 波分析 操作 .. ...

  7. matlab 小波名称,morlet小波函数matlab

    论-Matlab 7.0复Morlet小波分析操作实例.? 92? 2015年5 月 科技创新 中文科技期刊数据库 ( 文摘版 )自然科学 Matlab 7.0复MorletP]~ 波分析 操作 .. ...

  8. 数字信号处理--基于MATLAB的小波去噪算法--小波变换在信号降噪和压缩中的应用

    小波分析的重要应用之一就是用于信号消噪,首先简要地说明一下小波变换实现信号消噪的基本原理. 一.基本原理 含噪的一维信号模型可以表示如下 式中s(k)为含噪信号,f(k)为有用信号,e(k)为噪声信号 ...

  9. matlab傅里叶变换去噪代码,小波的分析在心电信号去噪中应用(内附Matlab去噪源代码).ppt...

    求职应注意的礼仪 求职时最礼貌的修饰是淡妆 面试时最关键的神情是郑重 无论站还是坐,不能摇动和抖动 对话时目光不能游弋不定 要控制小动作 不要为掩饰紧张情绪而散淡 最优雅的礼仪修养是体现自然 以一种修 ...

最新文章

  1. NLP新秀prompt跨界出圈,清华刘知远最新论文将它应用到VLM图像端
  2. softmax layer 简单理解以及实际例子【有白话讲解】
  3. linux bash sh,linux bash shell.sh编程实例
  4. 神策数据独家丨100% 还原小仙炖 618 私域个性化服务实践
  5. 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度
  6. hbuilderx制作简单网页_简单的手机网页制作教程
  7. Maven配置之pom.xml(一)
  8. html日历框架,日历.html
  9. [Head First设计模式]云南米线馆中的设计模式——模版方法模式
  10. 《软件工程导论》考研复习
  11. CC2530步进电机
  12. 科技交流英语(2022秋)Unit1-Unit8题干速查
  13. 海淘时代全面来临,海淘转运公司为何风生水起?
  14. 奔驰采用鸿蒙系统,华为10分钟秒充190公里模块出口奥地利,奔驰使用鸿蒙系统!...
  15. python一只青蛙一次可以_python算法题 python123网站单元四题目
  16. 燃动金秋,Stibo Systems(思迪博) 软件受邀参加2021中国服贸会
  17. Windows Server 2008简体中文语言包体验
  18. 十年MFC经历认识的Microsoft技术2
  19. 功能演示:使用Java加密和解密Excel文件
  20. [hihocoder1489][微软2017年预科生计划在线编程笔试][Legendary Items]

热门文章

  1. 知识产品经理需要掌握什么知识?
  2. python round函数用法
  3. Element-UI组件之表单Form
  4. 行业分析网站-网站分析软件-免费网站详细数据分析软件
  5. 在blog中显示天气预报、日历、时钟、MSN、QQ在线状态
  6. 华为一系统命名为鸿蒙的意图,华为操作系统命名曝光,国内与海外不一样,背后是华为人的斗志...
  7. 蓝桥试题 算法训练 区间k大数查询 JAVA
  8. Java发送报文与接收报文
  9. 浅谈:网站到底要不要备案?
  10. 以太坊开发者证实 Eth2.0 不会在7月上线