申明,本文非笔者原创,原文转载自:  基于Matlab的离散小波变换         http://blog.sina.com.cn/s/blog_725866260100ryh3.html

简介

在数字图像处理中,需要将连续的小波及其小波变换离散化。一般计算机实现中使用二进制离散处理,将经过这种离散化的小波及其相应的小波变换成为离散小波变换(简称DWT)。实际上,离散小波变换是对连续小波变换的尺度、位移按照2的幂次进行离散化得到的,所以也称之为二进制小波变换。

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

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

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

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

实例

% By lyqmath
% DLUT School of Mathematical Sciences 2008
% BLOG:http://blog.sina.com.cn/lyqmath
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('一层小波分解的重构信号');

结果

总结

小波分解可以使人们在任意尺度观察信号,只需所采用的小波函数的尺度合适。小波分解将信号分解为近似分量和细节分量,它们在应用中分别有不同的特点。比如,对含有噪声的信号,噪声分量的主要能量集中在小波分解的细节分量中,对细节分量做进一步处理,比如阈值处理,可以过滤噪声。

最新文章

  1. 关于tableviewcell的一些必备常识
  2. Office 365常见问题解答(第一期)
  3. C++输入cout与输出cin
  4. nodejs+express+jade+mongodb给我baby做个小相册(2)-留言板
  5. C#中Guid类型值如何判断不是初始值!
  6. Human Gene Functions(poj 1080)
  7. POI取消科学计数法
  8. 系列文章--JavaScript教程文章
  9. ie编程半天的学习总结
  10. 一个urllib2构建的html下载器的代理组件的实现方案
  11. memcached内存分配及回收初探
  12. springmvc 之 返回值
  13. [2012-06-29]sed根据行号范围执行替换
  14. 6、投资的一些思考 - CEO之公司管理经验谈
  15. net core 使用 rabbitmq
  16. Nginx 工作原理
  17. 【H5动画】谈谈canvas动画的闪烁问题
  18. nfs的时间问题,影响编译
  19. Gulp 项目简单构建,自动刷新页面
  20. 使用 Nginx 对 ASP.NETCore网站 或 Docker 等进行反向代理,宝塔面板对 ASP.NET Core 反向代理

热门文章

  1. apache struts 2 任意代码执行漏洞
  2. MVC中 _ViewStart _Layout Index三个页面中的加载顺序
  3. Cornerstone详细操作
  4. asp.net mvc中在使用async的时候HttpContext为null的问题
  5. vim关于 引号和 括号的 高效操作-很好很强大的!
  6. php json_decode 函数
  7. 原生JavaScript技巧大收集(11~20)-(终于又被我找到这篇文章了)
  8. 网络安全&信息安全&系统安全常用名词汇总
  9. ggplot2 上篇
  10. JSON格式转换(javascript)