资源简介
小波(Wavelet)这一术语,顾名思义,“小波”就是小区域、长度有限、均值为0的波形。所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。与Fourier变换相比,小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。有人把小波变换称为“数学显微镜”。

代码片段和文件信息
// DWTHelp.cpp: implementation of the CDWTHelp class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “DWTHelp.h“
#include “math.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDWTHelp::CDWTHelp()
{
m_haar_filter=2;
}
CDWTHelp::~CDWTHelp()
{
}
//全局变量
LONG hBen hEnd h1Ben h1End hLen h1Len;
double *h *g *h1 *g1;
void CDWTHelp::FilterSet_haar( )
{
hLen = 2;
h1Len = 2;
hBen = 0;
hEnd = 0;
h1Ben = 0;
h1End = 0;
if(h!=NULL) delete[] h;
h = new double[hLen];
if(h1!=NULL) delete[] h1;
h1 = new double[h1Len];
if(g!=NULL) delete[] g;
g = new double[h1Len];
if(g1!=NULL) delete[] g1;
g1 = new double[hLen];
for(int k=0;k {
h[k]=0.7071;
h1[k]=0.7071;
g[k]=0.7071;
g1[k]=0.7071;
}
}
void CDWTHelp::FilterSet_97(float t)
{
//好像长度分别为9/7,然后4/3是中点的位置.
hLen = 9;
h1Len = 7;
hBen = -4;
hEnd = 4;
h1Ben = -3;
h1End = 3;
if(h!=NULL) delete[] h;
h = new double[hLen];
if(h1!=NULL) delete[] h1;
h1 = new double[h1Len];
if(g!=NULL) delete[] g;
g = new double[h1Len];
if(g1!=NULL) delete[] g1;
g1 = new double[hLen];
*h = (8*t*t*t-6*t*t+3*t)/(1+2*t)*(1/32.)*sqrt(2);
*(h+1) = (-16*t*t*t+20*t*t-12*t+3)/(1+2*t)*(1/32.)*sqrt(2);
*(h+2) = (2*t-3)/(1+2*t)*(1/8.)*sqrt(2);
*(h+3) = (16*t*t*t-20*t*t+28*t+5)/(1+2*t)*(1/32.)*sqrt(2);
*(h+4) = (-8*t*t*t+6*t*t+5*t+20)/(1+2*t)*(1/16.)*sqrt(2);
*(h+5) = *(h+3);
*(h+6) = *(h+2);
*(h+7) = *(h+1);
*(h+8) = *(h+0);
*h1 = -t/16.*sqrt(2);
*(h1+1) = (1-2*t)/16.*sqrt(2);
*(h1+2) = (t+4)/16.*sqrt(2);
*(h1+3) = (3+2*t)/8.*sqrt(2);
*(h1+4) = *(h1+2);
*(h1+5) = *(h1+1);
*(h1+6) = *(h1+0);
*g1 = *(h+8);
*(g1+1) = -*(h+7);
*(g1+2) = *(h+6);
*(g1+3) = -*(h+5);
*(g1+4) = *(h+4);
*(g1+5) = -*(h+3);
*(g1+6) = *(h+2);
*(g1+7) = -*(h+1);
*(g1+8) = *h;
*g = -*(h1+6);
*(g+1) = *(h1+5);
*(g+2) = -*(h1+4);
*(g+3) = *(h1+3);
*(g+4) = -*(h1+2);
*(g+5) = *(h1+1);
*(g+6) = -*h1;
}
//小波逆变换函数
void CDWTHelp::ICWT2Dhelp(double * buffer LONG height LONG width LONG lv)
{
LONG ijk;
LONG nheightnwidth;
for (k=0; k {
nheight=height>>(lv-k-1);
nwidth=width>>(lv-k-1);
double *p;
p = new double [nheight];
for(j=0; j {
for (i=0; i *(p+i) = *(buffer+i*width+j);
ICWT1Dhelp(pnheighthBenhEndh1Benh1Endh1g1);
for(i=0; i *(buffer+i*width+j) = *(p+i);
}
delete []p;
double *p1;
p1 = new double [nwidth];
for (i=0; i {
for(j=0; j //*(p1+j) = *(buffer+i*height+j);
*(p1+j) = *(buffer+i*width+j);//-xia
ICWT1Dhelp(p1nwi
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10689 2008-11-19 21:04 dwt\DWTHelp.cpp
文件 1301 2008-07-11 15:36 dwt\DWTHelp.h
目录 0 2010-07-21 11:23 dwt
----------- --------- ---------- ----- ----
11990 3
- 上一篇:某企业ERP系统需求分析报告
- 下一篇:东南大学通信原理课程试卷+答案+复习提纲
相关资源
- 实现小波变换例子 upcoef 函数
- 图像二维小波变换的实现源代码
- 很好的一个小波变换图像压缩程序
- 小波变换的详细原理,应用
- 图像的小波变换/图像的融合、复原、
- 小波代码 小波变换 程序 代码 全部打
- 利用小波变换对图像进行分解与重构
- 基于小波变换的医学图像融合
- 综合Canny法与小波变换的边缘检测方法
- openCV 上的小波变换
- 基于小波变换和直方图均衡的红外图
- 基于SA-GSO的小波加权多模盲均衡算法
- 小波变换在信号分析中的应用论文若
- ECG心电算法陷波,低通,小波变换
- 基于小波变换的语音信号去噪及其D
- The Wavelet Tutorial(中文版)
- 小波变换与分数傅里叶变换理论与应
- 经验小波变换方面的论文
- 基于小波变换的方向行波距离保护的
- 基于小波变换的数字水印系统设计
- 一维信号的小波变换算法.rar
- 基于FFT和小波变换的电力系统谐波检
- 小波总结 小波变换小波总结 小波变换
- 一种采用Gabor小波的纹理特征提取方法
- 基于小波变换的嵌入式零树编码压缩
- 小波变换教程(wavelet tutotial)
- 加窗傅里叶变换和小波变换的原理与
- 基于FPGA的高性能离散小波变换设计
- 小波变换及其应用信号处理 小波变换
- 基于STM32F4的小波变换移植含小波分解
评论
共有 条评论