今天读paper遇到用DWT做denoising处理的,以前只是听过离散小波变换,没怎么学过,顺便学习一下。

离散小波变换(Discrete Wavelet Transformation)
百度百科:
离散小波变换是对基本小波的尺度和平移进行离散化。在图像处理中,常采用二进小波作为小波变换函数,即使用2的整数次幂进行划分。
余弦变换是经典的谱分析工具,他考察的是整个时域过程的频域特征或整个频域过程的时域特征,因此对于平稳过程,他有很好的效果,但对于非平稳过程,他却有诸多不足。在JPEG中,离散余弦变换将图像压缩为8×8 的小块,然后依次放入文件中,这种算法靠丢弃频率信息实现压缩,因而图像的压缩率越高,频率信息被丢弃的越多。在极端情况下,JPEG图像只保留了反映图像外貌的基本信息,精细的图像细节都损失了。
小波变换是现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。他能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为他消除了DCT压缩普遍具有的方块效应。
在数字图像处理中,需要将连续的小波及其小波变换离散化。一般计算机实现中使用二进制离散处理,将经过这种离散化的小波及其相应的小波变换成为离散小波变换(简称DWT)。实际上,离散小波变换是对连续小波变换的尺度、位移按照2的幂次进行离散化得到的,所以也称之为二进制小波变换。

虽然经典的傅里叶变换可以反映出信号的整体内涵,但表现形式往往不够直观,并且噪声会使得信号频谱复杂化。在信号处理领域一直都是使用一族带通滤波器将信号分解为不同频率分量,即将信号f(x)送到带通滤波器族Hi(x)中。

小波分解的意义就在于能够在不同尺度上对信号进行分解,而且对不同尺度的选择可以根据不同的目标来确定。

对于许多信号,低频成分相当重要,它常常蕴含着信号的特征,而高频成分则给出信号的细节或差别。人的话音如果去掉高频成分,听起来与以前可能不同,但仍能知道所说的内容;如果去掉足够的低频成分,则听到的是一些没有意义的声音。在小波分析中经常用到近似与细节。近似表示信号的高尺度,即低频信息;细节表示信号的高尺度,即高频信息。因此,原始信号通过两个相互滤波器产生两个信号。

通过不断的分解过程,将近似信号连续分解,就可以将信号分解成许多低分辨率成分。理论上分解可以无限制的进行下去,但事实上,分解可以进行到细节(高频)只包含单个样本为止。因此,在实际应用中,一般依据信号的特征或者合适的标准来选择适当的分解层数。

一、定义(摘自百度百科):

  • 首先我们定义一些需要用到的信号及滤波器。
  • x[n]:离散的输入信号,长度为N。
  • g[n]:low pass filter低通滤波器,可以将输入信号的高频部份滤掉而输出低频部份。
  • h[n]:high pass filter高通滤波器,与低通滤波器相反,滤掉低频部份而输出高频部份。
  •  Q:downsampling filter降采样滤波器,如果以x[n]作为输入,则输出y[n]=x[Qn]。此处举例Q=2。
利用阶层架构来介绍如何将一个离散信号作离散小波变换

架构中的第1层(1st stage)

架构中的第2层(2nd stage)

可继续延伸

架构中的第α层(α thstage)
注意:若输入信号x[n]的长度是N,则第α层中的xα,L[n]及xα,H[n]的长度为

2-D Discrete Wavelet Transform

此时的输入信号变成x[m,n],而转换过程变得更复杂,说明如下:

首先对n方向作高通、低通以及降频的处理

接着对v1,L[m,n]与v1,H[m,n]延著m方向作高低通及降频动作

经过(1)(2)两个步骤才算完成2-D DWT的一个stage。

二、在降噪中的应用

在小波分析中经常用到近似于细节,近似表示信号的高尺度,即低频信息;细节表示信号的高尺度,即高频信息。

对含有噪声的信号,噪声分量的主要能量集中在小波解的细节分量中。

实例

clc; clear all; close all;
load leleccum; % 载入信号数据
s = leleccum;
Len = length(s);
[ca1, cd1] = dwt(s, 'db1'); % 采用db1小波基分解
a1 = upcoef('a', ca1, 'db1', 1, Len); % 从系数得到近似信号
d1 = upcoef('d', cd1, 'db1', 1, Len); % 从系数得到细节信号
s1 = a1+d1; % 重构信号
figure;
subplot(2, 2, 1); plot(s); title('初始电源信号');
subplot(2, 2, 2); plot(ca1); title('一层小波分解的低频信息');
subplot(2, 2, 3); plot(cd1); title('一层小波分解的高频信息');
subplot(2, 2, 4); plot(s1, 'r-'); title('一层小波分解的重构信号');

结果:

总结

小波分解可以使人们在任意尺度观察信号,只需所采用的小波函数的尺度合适。一层我试了一下,并没有什么明显的效果,估计多分解几层,效果就会明显了。小波分解将信号分解为近似分量和细节分量,它们在应用中分别有不同的特点。比如,对含有噪声的信号,噪声分量的主要能量集中在小波分解的细节分量中,对细节分量做进一步处理,比如阈值处理,可以过滤噪声。

DWT(离散小波变换)相关推荐

  1. 基于离散小波变换 (DWT)的图像信息隐藏算法

    离散小波变换 (DWT) 是一种常用于图像信息隐藏的算法.这种算法通过将图像进行小波变换来隐藏信息.在这个过程中,图像被分成不同的尺度和方向的部分,称为小波系数. 具体来说, 首先将图像进行小波分解, ...

  2. 离散小波变换(DWT)

    离散小波变换(Discrete Wavelet Transformation) 一.定义(摘自百度百科): 首先我们定义一些需要用到的信号及滤波器. x[n]:离散的输入信号,长度为N. g[n]:l ...

  3. 离散小波变换(DWT)去噪

    小波去噪(DWT) 小波变换去噪优势 方法 小波变换去噪优势 (1)能够很好的保留原有信号中所需的有用信号的峰值和突变部分,而用Fourior分析进行滤波时,由于有用信号集中在低频部分,而噪声集中在高 ...

  4. 一维离散小波变换原理和代码实现

    基本原理: 离散小波变换:对连续小波变换的尺度因子和时移动因子采用不同的离散条件进行离散,得到Discrete Wavelet Transform(DWT).降低计算量的同时,保持连续小波变换的光滑性 ...

  5. 离散小波变换的FPGA/Verilog实现

    小波变换(二) 离散小波变换的FPGA/Verilog实现 to 51研究不顺的假期 文章目录 小波变换(二) 尺度函数族 小波函数定义 尺度函数定义 尺度函数分辨率沿拓 多分辨分析(MRA)方程 尺 ...

  6. Java 离散小波变换公式_一维离散小波变换函数使用总结

    前言 matlab自带的小波分析工具非常全!实际工作中直接用即可.但是刚开始使用会遇到挫折:它的函数太多,并且它们的"名称.功能.配套使用"等要求都有些"相近" ...

  7. 【2DWT:2维离散小波变换(附Pytorch代码)】

    二维离散小波变换 一.相关基础 1.小波变换基础函数 2.小波变换 二.原理 三.基本小波基:哈尔小波 四.代码实现 参考: 图像信号具有非平稳特性,无法使用一种确定的数学模型来描述,而小波变换的多分 ...

  8. 小波教程-part4-多分辨率分析:离散小波变换

    1. 为什么需要离散小波变换 尽管离散连续小波变换可以通过计算机计算连续小波变换,但这并不是真正的离散变换. 实际上,小波序列只是CWT(连续小波变换)的一个采样版本,就信号的重构而言,它提供的信息是 ...

  9. 【图像处理】图像离散小波变换(Discrete Wavelet Transform)及python代码实现

    Motivation 看到有论文用到了图像的Haar Discrete Wavelet Transform(HDWT),前面也听老师提到过用小波变换做去噪.超分的文章,于是借着这个机会好好学习一下. ...

  10. matlab彩色图添加水印,基于离散小波变换的彩色图像水印算法及其MATLAB实现

    随着数字多媒体技术的迅速发展,数字(音频.视频)产品的传播日益简单化(利用Internet),其复制后质量几乎不受影响,这就使得版权纠纷问题急剧上升.基于这个原因,人们开始寻找一种能更好地控制非法使用 ...

最新文章

  1. Spring MVC 实现Excel的导入导出功能(2:Excel的导入优化和Excel的导出)
  2. linux 僵尸进程 defunct
  3. 内存管理vma_(十三)Linux内存管理之vma/malloc/mmap
  4. VC++ (三)虚函数与重载
  5. 关于Java类加载双亲委派机制的思考(附面试题)
  6. for命令不跳过空白行_Java程序员必备:查看日志常用的linux命令
  7. nodejs 创建一个静态资源服务器 +路由
  8. java log4j 代码配置文件_除了Log4jXML、属性文件和源代码(主要是Java)之外的配置日志的方法?...
  9. 攻防世界 CRYPTO 新手练习区 答题(1-12题解)
  10. 拉扎维模拟CMOS集成电路设计python建模工程——利用matplotlib绘制NMOS与PMOS转移特性曲线
  11. 软件创始人必须要知道的事情
  12. c语言车牌识别原理,解析车牌识别技术,融合多种算法的原理和过程
  13. QT5 + MSVC + OpenCV4 配置
  14. 安卓动画入门教程 Animation in Android(1)
  15. An error occurred.
  16. iOS/Android 微信及浏览器中唤起本地APP
  17. QtQuick 移动端开发实战系列(7)_屏幕旋转实现(Android)
  18. Ubuntu18.04安装搜狗输入法-问题全讲解
  19. 判断键盘输入的数是几位数且是否是回文数
  20. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

热门文章

  1. 开机提示grub可咋办啊
  2. android源码AOSP AOKP CM及下载
  3. python 卡方分布值_数据分析|抽样分布
  4. 2018年中考计算机考试成绩,2018年北京中考考试科目、时间及成绩公布通知
  5. linux命令行 jdb,什么使用加多宝(jdb)在linux下调试Java程序
  6. html中划过鼠标滑过上方英文,CSS如何实现鼠标滑过文字出现效果?
  7. vue中img本地图片地址的具体使用
  8. 探索:爬取双色球开奖历史数据,高准确度预测下一期开奖号码。
  9. matlab 判断大小写,【万大暗】matlab字符串不分字母大小写按字母表排序问题
  10. 清理winsxs的小工具