对小波变换中DWT和CWT的理解
转载自
http://blog.sina.com.cn/s/blog_633750d90100hbco.html
连续小波变换的概念、操作、及时间尺度图的显示
最近很多网友问到关于连续小波变换的诸多问题,我用了点时间,写了个底层程序,提供给大家参考。 。连续小波的概念。就是把一个可以称作小波的函数(从负无穷到正无穷积分为零)在某个尺度下与待处理信号卷积。改变小波函数的尺度,也就改变了滤波器的带通范围,相应每一尺度下的小波系数也就反映了对应通带的信息。本质上,连续小波也就是一组可控制通带范围的多尺度滤波器。 。连续小波是尺度可连续取值的小波,里面的a一般取整数,而不像二进小波a取2的整数幂。从连续小波到二进小波再到正交离散小波,其实就是a、b都连续,a不连续、b连续,a、b都不连续的过程。操作他们的快速算法也就是卷积(快速傅里叶),多孔(a trous),MALLAT。在MATLAB里,也就是CWT,SWT,DWT。SWT称平稳小波变换、二进小波变换、或者非抽取小波变换。 。从冗余性上:CWT>SWT>DWT,前面两个都冗余,后面的离散小波变换不冗余。 。从应用上:CWT适合相似性检测、奇异性分析;SWT适合消噪,模极大值分析;DWT适合压缩。 。操作。就是在某个尺度上得到小波的离散值和原信号卷积,再改变尺度重新得到小波的离散值和原信号卷积。每一个尺度得到一个行向量存储这个尺度下的小波系数,多个尺度就是一个矩阵,这个矩阵就是我们要显示的时间-尺度图。 。显示。“不要认为工程很简单”。我的一个老师说过的话。小波系数的显示还是有技巧的。很多人画出的图形“一片乌黑”就是个例子。第一步,一般将所有尺度下的小波系数取模;第二步,将每个尺度下的小波系数范围作映射,映射到你指定MAP的范围,比如如果是GRAY,你就映射到0-;第三步,用IMAGE命令画图;第四步,设置时间和尺度坐标。MATLAB是个很专业的软件,它把这些做的很好,但也就使我们懒惰和糊涂,我是个好奇心重的人就研究了下。里面有个巧妙的函数把我说的(,)两个步骤封装在了一起,就是WCODEMAT,有兴趣的同学可以看看。 希望大家深入研究小波。 这里,还有要说的是,小波目前理论的热点:
。不可分的小波或者具有可分性质的方向性小波;
。XLET: CONTOURLET, WEDGELET, SHEARLET, BANDELET, RIDGELET, CURVELET; PLATELET.
。多分辨率分析+多尺度几何分析的结合,才真正是我们所需要的。比如小波域的WEDGELET等等。 最后,几点建议:
。理论研究和实际应用不同,工程上很多问题小波并不是最好的,在做项目的时候大家要实际情况,实际对待。
。做研究,有些话题太成熟了,对于小波本身几乎很难再做下去,要在方向性和几何性上下功夫。对此,我也做的工作很少,毕竟研究方向转了。
。看看DAUBECHIES,MALLAT,Minh N. Do的personal web,特别是preprint的文章,会有些启发。
。最终大家还是最好自己提一些新的XLET或算法出来,这样才是有挑战性的工作,否则我们永远是落后的。
。交叉领域和结合是值得做的,最近R2007也就增加了PCA+WAVELET等内容,还有用小波在数值分析领域求解偏微分等,多尺度现在是个很热的东西,SIAM为此都开了专门的期刊,这是数值分析最前沿的期刊可以看看。还有ELSEVIER的Applied and Computational Harmonic Analysis,这些虽然数学多了一点,但毕竟才有可能在工程上是“新”的。 大家可以到我的网站下载到.m文件
http://cem.ahu.edu.cn/Freecode/freecode.htm 各位共勉!!! 安徽大学 沙威
2007年9月5日
% 编程人 沙威 安徽大学
% ws108@ahu.edu.cn function CWT_EXE();
% 多个尺度连续小波变换的实现
clc;clear % 下载信号
load vonkoch
vonkoch=vonkoch(:); % 尺度1-32的连续小波变换
S_Min=;S_Max=; index=;
for scale=S_Max:-:S_Min;
index=index+;
cwt_coef(index,:)=CWT_FUNCTION(scale,*(scale),vonkoch);
end % 小波系数取模
cwtcoef_abs=abs(cwt_coef); % 显示
for index=S_Min:S_Max
max_coef=max(cwtcoef_abs(index,:)); % 系数模最大
min_coef=min(cwtcoef_abs(index,:)); % 系数模最小
ext=max_coef-min_coef; % 系数模跨度
cwtcoef_abs(index,:)=*(cwtcoef_abs(index,:)-min_coef)/ext; % 系数大小变换
end figure() subplot(,,);
plot(vonkoch);
xlabel('时间')
ylabel('幅度')
title('分形信号')
axis([ 0.02]) subplot(,,)
colormap(pink());
image(cwtcoef_abs)
set(gca,'YTick',::)
set(gca,'YTickLabel',:-:)
title('连续小波变换时间尺度图')
xlabel('时间')
ylabel('尺度') % 某个尺度的连续小波变换的M函数 % delta 小波变换的尺度
% N 小波函数的长度
% s 原始信号
% g 原始信号某个尺度下的小波变换系数 function g=CWT_FUNCTION(delta,N,s); % 原始信号长度
n=length(s); % 构造墨西哥帽子小波函数
for index_x=:N;
x=index_x-(N+)/;
phi_x(index_x)=((pi^(-/))*(/sqrt()))*(-x.*x/(delta^))*exp(-(x.*x)/(*delta^));
end;
phi_x=phi_x/norm(phi_x); % 能量归一化 % 对信号做卷积
g=conv(s,phi_x); % 卷积
g=wkeep(g,n); % 保持信号长度
对小波变换中DWT和CWT的理解的更多相关文章
- C#中对IDisposable接口的理解
http://blog.sina.com.cn/s/blog_8abeac5b01019u19.html C#中对IDisposable接口的理解 本人最近接触一个项目,在这个项目里面看到很多类实现了 ...
- js中的回调函数的理解和使用方法
js中的回调函数的理解和使用方法 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为 ...
- [BS-18] 对OC中不可变类的理解
对OC中不可变类的理解 OC中存在很多不可变的类(如NSString,NSAttributedString,NSArray,NSDictionary,NSSet等),用它们创建的对象存在于堆内存中,但 ...
- oracle中 connect by prior 递归算法 -- 理解
oracle中 connect by prior 递归算法 -- 理解 http://blog.163.com/xxciof/blog/static/7978132720095193113752/ ...
- MVC架构中的Repository模式 个人理解
关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接 ...
- 关于MySQL中的自联结的通俗理解
关于MySQL中的自联结的通俗理解 前言:最近在通过SQL必知必会这本书学习MySQL的基本使用,在学习中也或多或少遇到了点问题,我也正好分享给大家,我的这篇博客用到的所有表格的代码都是来自SQL必知 ...
- 关于Autosar中的NM模块的理解
本篇文章主要介绍AutoSar中关于NM模块的理解. 阅读本篇文章希望达到的目的: 1. NM(网络管理)是用来做什么的: 2. AutoSar中网络管理的原理: 3.项目实例介绍 1. NM(网络管 ...
- Spring中Bean及@Bean的理解
Spring中Bean及@Bean的理解 Bean在Spring和SpringMVC中无所不在,将这个概念内化很重要,下面分享一下我的想法: 一.Bean是啥 1.Java面向对象,对象有方法和属性, ...
- Oracle中rownum和rowid的理解
rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每行的rounum不是固定的.而rowid是“物理”编号.若数据库文件没有移动,则每行的 rowid一般是固定 ...
随机推荐
- 【复制虚拟机】虚拟机复制后无ip的问题
先编辑虚拟机选项,把网络适配器删掉后保存,再重新添加网络适配器 然后开机 编辑文件/etc/udev/rules.d/70-persistent-net.rules,进去之后是这个样子 把前两个删掉, ...
- POJ 3628 Bookshelf2(0-1背包)
http://poj.org/problem?id=3628 题意:给出一个高度H和n个牛的高度,要求把牛堆叠起来达到H,求出该高度和H的最小差. 思路:首先我们计算出牛的总高度sum,sum-H就相 ...
- POJ 3624 Charm Bracelet(0-1背包模板)
http://poj.org/problem?id=3624 题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大. 思路:经典0-1背包.直接套用模板. #include<iostre ...
- MVC ---- Lambda表达式
Lambda表达式是比匿名函数还简洁的一种匿名方法语法 Lambda表达式缩写推演 new Func<string,int>(delegate(string str){return str ...
- Z-score(Z值)的意义--转载
http://blog.sina.com.cn/s/blog_72208a6a0101cdt1.html http://www.docin.com/p-350677620.html http://we ...
- WPF基础学习笔记整理 (四) 布局
WPF使用的是容器(container)进行布局: WPF窗口(Window类型)只能包含单个元素,故为了放置多个元素并增强界面效果,引入了容器: WPF布局容器都派生自System.Windows. ...
- Cassandra学习笔记
CASSANDRA在工作中用过,但是用的项目少,能用却了解的不全面.今天来稍加学习下: http://zqhxuyuan.github.io/2015/10/15/Cassandra-Daily/ ...
- ZC_C++类函数指针_模拟_Delphi类函数指针_Qt例子
qt-opensource-windows-x86-msvc2010_opengl-5.3.2.exe ZC: “const QString” 作传入参数的时候,不太会弄... 貌似 还是在进行构建等 ...
- Linux下Tomcat启动设置debug模式启动
原文: https://blog.csdn.net/li295214001/article/details/42077247 https://blog.csdn.net/jackie_xiaonan/ ...
- OpenGL入门程序四:颜色模式
1.OpenGL支持两种颜色模式: 1>RGBA颜色模式 ,用 glClearColor 指定清空屏幕后的颜色,即“空颜色” . 2>索引颜色模式,用 glClearIndex 指定清空屏 ...