• 大小: 3.07MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-04
  • 语言: 其他
  • 标签: VisualC++  小波变换  

资源简介

一维信号的小波变换算法。处理声音等一维信号,小波分解和重构,适合工程实践项目中使用

资源截图

代码片段和文件信息

// CWT.cpp: implementation of the CCWT class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “WinCWT.h“
#include “CWT.h“
#include “math.h“

#define M_PI        3.14159265358979323846  /* pi */ 

BOOL GetIntMexhCoeff(double *wfltr);

BOOL cwt(double *wfltrdouble CurScaledouble *pIn int LengthIn double *pOut)
{
if (pIn==NULL) return FALSE;
if (pOut==NULL) return FALSE;
if (LengthIn<=0) return FALSE;
if (CurScale<1e-5) {
AfxMessageBox(“尺度太小“);
return FALSE;
}
if (CurScale>LengthIn) {
AfxMessageBox(“尺度太大“);
return FALSE;
}
//////////////////////////////////////////////////////////////////////////
double CurScale_SIG = 0;
double* pTemp = new double[LengthIn];
double tempValue=0;
int i=0;

int NumFilter = int(CurScale*16)+1;
tempValue = sqrt(CurScale);
double *newFilter=new double[NumFilter];
int *indexWAV=new int[NumFilter];
for (i=0;i indexWAV[i]=int(i*(64.0/CurScale)-1);
if (indexWAV[i]<0) indexWAV[i]=0;
newFilter[NumFilter-i-1]=wfltr[indexWAV[i]];//赋值并反褶
}
Convolve(pInLengthInnewFilterNumFilterpTemp);
Diff(tempValuepTempLengthInpOut);
/*
for (int SS=0;SS CurScale = pScale[SS];
tempValue = sqrt(CurScale);
Convolve(pIn LengthInwfltr1024pTemp);
Diff(tempValuepTempLengthInpOut);
}
*/
delete[] newFilter;
delete[] indexWAV;
return TRUE;
}
BOOL GetIntMexhCoeff(double *wfltr)
{
if(wfltr==NULL) return FALSE;
int NN=1024;
double LB = -8UB = 8;
double step = 16.0/1023;

double sqrt3=sqrt(3);
double out1[1024]={0};
double out2[1024]={0};
double Coeff[1024]={0};
for (int i=0;i<1024;i++) {
out2[i]=LB+i*step;
out1[i]=out2[i]*out2[i];
Coeff[i]=2/(sqrt3*pow(M_PI0.25))*exp(-1*out1[i]/2)*(1-out1[i]);
}

for (i=0;i<1024;i++) {
if((wfltr+i)==NULL) return FALSE;
wfltr[i]=0;
for (int j=0;j wfltr[i]+=Coeff[j]*step;
}
}
return TRUE;
}
void Convolve(double *pInint lengthdouble *pFilterint lenFilterdouble *pOut)
{
double *pTemp=new double[length+lenFilter-1];
memcpy(pTemp+lenFilter-1pIn(length)*sizeof(double));
memset(pTemp0(lenFilter-1)*sizeof(double));
pIn = pTemp;

double sum=0;
for(int i=lenFilter-1;i {
sum=0;
for(int j=0;j {
sum+=pIn[i-j]*pFilter[j]; 
}
pOut[i-lenFilter+1]=sum; 
}
delete[] pTemp;
}
void Diff(double fk double *pInint lengthdouble *pOut)
{
for (int i=0;i pOut[i]=fk*(pIn[i+1]-pIn[i]);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     480341  2007-06-04 17:35  WinCWT\3.0-100-1sound.txt

     文件       2641  2007-06-04 17:29  WinCWT\CWT.cpp

     文件        673  2007-06-04 17:26  WinCWT\CWT.h

     文件     480341  2007-06-04 17:35  WinCWT\Debug\3.0-100-1sound.txt

     文件       8229  2007-06-04 17:29  WinCWT\Debug\CWT.obj

     文件          0  2007-06-04 17:29  WinCWT\Debug\CWT.sbr

     文件      61472  2007-06-05 09:29  WinCWT\Debug\DispPanel.obj

     文件          0  2007-06-05 09:29  WinCWT\Debug\DispPanel.sbr

     文件       9759  2007-06-05 09:29  WinCWT\Debug\FFT.obj

     文件          0  2007-06-05 09:29  WinCWT\Debug\FFT.sbr

     文件      30049  2006-03-07 20:33  WinCWT\Debug\StaticPlotPanel.obj

     文件          0  2006-03-07 20:33  WinCWT\Debug\StaticPlotPanel.sbr

     文件     105889  2007-06-04 15:15  WinCWT\Debug\StdAfx.obj

     文件    1384143  2007-06-04 15:15  WinCWT\Debug\StdAfx.sbr

     文件      10295  2007-06-04 15:15  WinCWT\Debug\ThresSelDlg.obj

     文件          0  2007-06-04 15:16  WinCWT\Debug\ThresSelDlg.sbr

     文件     222208  2007-06-05 09:29  WinCWT\Debug\vc60.idb

     文件     372736  2007-06-05 09:29  WinCWT\Debug\vc60.pdb

     文件       9075  2007-06-04 14:38  WinCWT\Debug\wfltr.obj

     文件       8251  2007-06-04 14:38  WinCWT\Debug\wfltr.sbr

     文件    3744768  2007-06-05 09:29  WinCWT\Debug\WinCWT.bsc

     文件     147519  2007-06-05 09:29  WinCWT\Debug\WinCWT.exe

     文件     350172  2007-06-05 09:29  WinCWT\Debug\WinCWT.ilk

     文件      15423  2007-06-04 17:22  WinCWT\Debug\WinCWT.obj

     文件     533504  2007-06-05 09:29  WinCWT\Debug\WinCWT.pdb

     文件       2832  2007-06-04 17:09  WinCWT\Debug\WinCWT.res

     文件          0  2007-06-04 17:22  WinCWT\Debug\WinCWT.sbr

     文件      35716  2007-06-04 17:26  WinCWT\Debug\WinCWTDlg.obj

     文件          0  2007-06-04 17:26  WinCWT\Debug\WinCWTDlg.sbr

     文件    3744768  2006-07-24 19:47  WinCWT\Debug\WinDWT.bsc

............此处省略50个文件信息

评论

共有 条评论