小波变换C++实现(一)----单层小波变换
文章转自:
http://www.cnblogs.com/IDoIUnderstand/archive/2013/03/30/3280724.html
【小波变换】STL版 一维离散小波变换(DWT)库,完全按matlab的wavelet toolbox 的API实现的 - richard.hmm - 博客园
http://www.cnblogs.com/IDoIUnderstand/archive/2013/04/02/3280723.html
一、小波分解
按照Mallat分解算法,一维多层小波分解的过程可类似看成对一维单层小波变换的递归调用,因此先从一维单层离散小波变换说起。
1、边界延拓
边界延拓的方式有 周期延拓 和 对称延拓 两张方式,在MATLAB的实现中采用的是对称延拓的方式,为了便于对比,采用对称延拓的方式。
对称延拓实际上是按照左右对称的方式延拓数据,延拓的个数根据第2步计算卷积后的数据长度确定
设滤波器长度为L,则对称延拓的方式为在信号两边各延拓L-1个元素,延拓完之后,信号的长度为SignalLen+2*(L-1)。
2、卷积的计算
由于信号分析中采用的是离散的数据,因此卷积的计算使用离散卷积计算方法。计算过程参见:离散卷积的计算。
分别计算延拓之后的信号与滤波器的高频成分和低频成分的离散卷积得到小波变换后的高频成分(细节分量)和低频成分(近似分量)。
3、下采样
为了保证两组滤波器输出系列总长度与输入序列总长度保持一致,对每组滤波器的结果进行二抽取(下采样)
其方法为取延拓信号与滤波器序列卷积的奇数序号的元素(从0开始)
小波变换C++实现(一)----单层小波变换的更多相关文章
- 小波学习之一(单层一维离散小波变换DWT的Mallat算法C++和MATLAB实现) ---转载
1 Mallat算法 离散序列的Mallat算法分解公式如下: 其中,H(n).G(n)分别表示所选取的小波函数对应的低通和高通滤波器的抽头系数序列. 从Mallat算法的分解原理可知,分解后的序 ...
- 【DWT笔记】傅里叶变换与小波变换
[DWT笔记]傅里叶变换与小波变换 一.前言 我们经常接触到的信号,正弦信号,余弦信号,甚至是复杂的心电图.脑电图.地震波信号都是时域上的信号,我们也成为原始信号,但是通常情况下,我们在原始信号中得到 ...
- 浅谈压缩感知(十四):傅里叶矩阵与小波变换矩阵的MATLAB实现
主要内容: 傅里叶矩阵及其MATLAB实现 小波变换矩阵及其MATLAB实现 傅里叶矩阵及其MATLAB实现 傅里叶矩阵的定义:(来源: http://mathworld.wolfram.com/F ...
- 对小波变换中DWT和CWT的理解
转载自 http://blog.sina.com.cn/s/blog_633750d90100hbco.html 连续小波变换的概念.操作.及时间尺度图的显示 最近很多网友问到关于连续小波变换的诸多问 ...
- 小波变换C代码
#include <stdio.h> #include <stdlib.h> #define LENGTH 512//信号长度 /*********************** ...
- 小波变换检测信号突变点的MATLAB实现
之前在不经意间也有接触过求突变点的问题.在我看来,与其说是求突变点,不如说是我们常常玩的"找不同".给你两幅图像,让你找出两个图像中不同的地方,我认为这其实也是找突变点在生活中的应 ...
- 小波学习之二(单层一维离散小波变换DWT的Mallat算法C++实现优化)--转载
小波学习之二(单层一维离散小波变换DWT的Mallat算法C++实现优化) 在上回<小波学习之一>中,已经详细介绍了Mallat算法C++实现,效果还可以,但也存在一些问题,比如,代码 ...
- 小波变化库——Pywalvets学习笔记
笔记 术语(中英对照): 尺度函数:scaling function(又称父函数 father wavelet) 小波函数:wavelet function(又称母函数 mother wavelet) ...
- [Python ]小波变化库——Pywalvets 学习笔记
[Python ]小波变化库——Pywalvets 学习笔记 2017年03月20日 14:04:35 SNII_629 阅读数:24776 标签: python库pywavelets小波变换 更多 ...
随机推荐
- autofac + owin + webform + mvc + webapi集成demo
http://git.oschina.net/shiningrise/AutofacOwinDemo using Microsoft.Owin; using Owin; using System.We ...
- js中,还真不了解 console
参考链接: https://segmentfault.com/a/1190000000481884
- C# 正则匹配domain
1.带协议表达式 var pattern = @"[(?<=http://)|(?<=https://)]+[\w\.]+[^/?#]"; 2.不带协议表达式 var ...
- LINUX命令总结 -------来自 水滴娃娃 的CSDN
LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报 分类: linux(1) 版权声明:本文为博主原创文章,未经博主允许不得 ...
- 我的linux桌面
经过几次尝试安装linux系统之后,终于把自己的系统安装成了linux系统. wangkongming@ThinkPad-T410 ~ $ lsb_release -a No LSB modules ...
- PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone
在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the ...
- Storm与Spark Streaming比较
前言spark与hadoop的比较我就不多说了,除了对硬件的要求稍高,spark应该是完胜hadoop(Map/Reduce)的.storm与spark都可以用于流计算,但storm对应的场景是毫秒级 ...
- Python学习笔记(迭代、模块扩展、GUI 、编码处理等)
PythonIDLE中的编码处理 http://www.tuicool.com/articles/NbyEBr 原文标题:Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来 ...
- 清北暑假模拟day1 艳阳天
/* 注意P有可能不是质数,不要用欧拉函数那一套,正解可以倍增,就是等比数列和的性质,注意n是否为奇数 */ #include <cstdio> #include <algorith ...
- tc 147 2 PeopleCircle(再见约瑟夫环)
SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...