You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.4 KiB
C++

// FFT.h: interface for the CFFT class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FFT_H__DD76BAB3_D55E_11D3_BFCD_00A00C3FB20E__INCLUDED_)
#define AFX_FFT_H__DD76BAB3_D55E_11D3_BFCD_00A00C3FB20E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class AFX_EXT_CLASS CFilter
{
double xbegin,xend;
public:
CFilter();
CFilter(double x1,double x2);
void set(double x1,double x2);
double bartly(double x);
double hann(double x);
double welch(double x);
double window(double x);
void draw();
};
class AFX_EXT_CLASS CFFT
{
public:
CFFT();
virtual ~CFFT();
double *pr,*pi,*fr,*fi;
int m_pow,num;
double T;
void FilterLog();
void UnTransform();
void Filter(CFFT &t);
void Write(char *m_output,double dt,int state=1,char *mode="wt");
void ToDrawing(char *name,double w1,double w2,char *mode="wt");
void Transform(double *y,int n);
int Create(double *m_pr,double *m_pi,int num);
void Wavelet(double* y, int n);
void UnWavelet(void);
int GetPow(int num);
void kcfwt(double* p, int n, int k, double* x);
void kbfft(double* pr,double *pi,int n,int k,double* fr,double* fi,int l,int il);
void Walsh(double *p,int n,double *x);
void Walsh(double **a,int m,int n,int IsInverse);
void FFT2D(double **ar,double **ai,int m,int n,int IsInverse);
};
#endif // !defined(AFX_FFT_H__DD76BAB3_D55E_11D3_BFCD_00A00C3FB20E__INCLUDED_)