資源簡(jiǎn)介
小波(Wavelet)這一術(shù)語(yǔ),顧名思義,“小波”就是小區(qū)域、長(zhǎng)度有限、均值為0的波形。所謂“小”是指它具有衰減性;而稱(chēng)之為“波”則是指它的波動(dòng)性,其振幅正負(fù)相間的震蕩形式。與Fourier變換相比,小波變換是時(shí)間(空間)頻率的局部化分析,它通過(guò)伸縮平移運(yùn)算對(duì)信號(hào)(函數(shù))逐步進(jìn)行多尺度細(xì)化,最終達(dá)到高頻處時(shí)間細(xì)分,低頻處頻率細(xì)分,能自動(dòng)適應(yīng)時(shí)頻信號(hào)分析的要求,從而可聚焦到信號(hào)的任意細(xì)節(jié),解決了Fourier變換的困難問(wèn)題,成為繼Fourier變換以來(lái)在科學(xué)方法上的重大突破。有人把小波變換稱(chēng)為“數(shù)學(xué)顯微鏡”。

代碼片段和文件信息
//?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)
{
//好像長(zhǎng)度分別為9/7,然后4/3是中點(diǎn)的位置.
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;
}
//小波逆變換函數(shù)
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
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????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
評(píng)論
共有 條評(píng)論