资源简介
小波(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系统需求分析报告
- 下一篇:东南大学通信原理课程试卷+答案+复习提纲
相关资源
- 基于小波变换的高分辨率信号频谱分
- 基于小波变换的声波信号包络提取
- 离散小波变换的多分辨率分析
- 基于离散小波变换的心电信号预处理
- 小波变换的特征提取
- 基于多用途小波变换图像水印英文文
- 常用小波变换程序源码
- 图像融合小波变换
- 基于KLDA的人脸识别
- 基于小波变换的数字水印技术
- 小波变换算法
- 基于Gabor小波变换的人脸表情特征提取
- 小波变换在图像处理中的应用
- 小波变换特征提取
- 一种基于整数小波变换的数字水印算
- 基于小波变换的数字水印综述
- 基于小波变换的图像融合源代码
- ECG信号的小波变换检测方法
- 提升小波变换讲义
- 基于小波变换模极大值的信号奇异性
- 小波变换作业二
- 基于小波变换的彩色图像分割
- nsct与小波变换去噪
- 利用小波变换对图像进行分解和重构
- 大量-小波变换源程序
- 基于小波变换的图像增强方法与实现
- 墨西哥帽小波变换
- 基于Gabor的纹理特征
- 基于提升模式的非抽样小波变换及其
- 基于小波变换的心电信号去噪算法.
评论
共有 条评论