📄 tswavtest.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#ifdef __cplusplus
extern "C" {
#endif
#define M_PI 3.1415926535897932384626433832795
#define M_SQRT2 1.41421356237309504880168872420969808
#define M_SQRT3 1.73205080756887729352745
void LWTrans( double *pData , int nDataLength ,
double *pWeight , int nWeightLength ,
double *pBuff , int nLayer);
void ILWTrans( double *pData , int nDataLength ,
double *pWeight , int nWeightLength ,
double *pBuff , int nLayer);
void LWDenoise( double *pData , int nDataLength ,
int nLayer);
//Harr小波
double g_dfLiftHarr[]={
-1.0 , 0.0 , 0.50 , 0.0 , 1/M_SQRT2
};
//5-3 小波
double g_dfLift53[]={
-0.5 , -0.5 , 0.25 , 0.25 , M_SQRT2
};
//9-7 小波
double g_dfLift97[]={
-0.5 , -0.5 , 0.25 , 0.25, M_SQRT2
};
//D4小波
double g_dfLiftDB4[]={
M_SQRT3, 0 , -M_SQRT3/4 , -(M_SQRT3-2)/4 , 0 , -1 , 0 , 0 , M_SQRT2/(M_SQRT3+1)
};
#define NUM 32
void LWDenoiseTest( char *szFilename )
{
FILE *fp;
int k, num;
double dfData[256];
double dfBuff[256];
double dfPoss[256];
fp=fopen(szFilename,"rt");
if( fp==NULL )
{
printf("Cant open file of %s \n", szFilename);
return;
}
num=0;
while( !feof(fp) )
{
fscanf(fp, "%lf\n", &dfData[num]);
dfPoss[num]=dfData[num];
num++;
}
fclose( fp );
k=NUM-1;
memcpy( dfData , dfPoss+k-(NUM-1), NUM*sizeof(double));
while( k<num-NUM )
{
dfData[NUM-1]=dfPoss[k];
LWTrans(dfData , NUM , g_dfLiftHarr , sizeof( g_dfLiftHarr)/sizeof(double)/4 ,
dfBuff, 3);
LWDenoise( dfData , NUM , 3);
ILWTrans(dfData , NUM , g_dfLiftHarr , sizeof( g_dfLiftHarr)/sizeof(double)/4 ,
dfBuff, 3);
// for( i=0; i<NUM; i++ )
// {
// printf("%4d %10.3f %10.6f\n", i+1,
// dfPoss[i],
// dfData[i]);
// }
k++;
printf("%4d %10.3f %10.6f %10.5f %10.5f\n", k-1 ,
dfPoss[k], dfData[0] ,dfData[NUM/2] ,dfData[NUM-1] );
memcpy( dfData , dfData+1, NUM*sizeof(double));
// for( i=0; i<NUM-1; i++)
// dfData[i]=dfPoss[k-NUM+1];
}
}
void main( void )
{
// LWDenoiseTest("E:\\数据融合\\waveletCpp\\BLHght.dat");
LWDenoiseTest("D:\\myJob\\wavelet\\waveletCPP\\BLHght.dat");
}
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -