Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/avfft@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/***************************************************************************/
|
||||
/* FFT.H */
|
||||
/* Fast-Fourier-Transformation
|
||||
/* Author: Jens Ahrensfeld */
|
||||
/* Datum : 24.06.1999 */
|
||||
/* letzte Änderung: 09.06.2000 */
|
||||
/***************************************************************************/
|
||||
/* Tabellen und Funktionen für die FFT */
|
||||
/***************************************************************************/
|
||||
#ifndef FFT_H
|
||||
#define FFT_H
|
||||
|
||||
#define PI 3.1415926535897932384626433832795
|
||||
|
||||
typedef struct _sFFT
|
||||
{
|
||||
UINT32 m_numPoints, m_numStages;
|
||||
avfloat_t *pTwfRe, *pTwfIm;
|
||||
} FFT;
|
||||
|
||||
typedef struct _sFFT2D
|
||||
{
|
||||
struct _sFFT *pXfft, *pYfft;
|
||||
UINT32 m_Nx, m_Ny;
|
||||
} FFT2D;
|
||||
|
||||
/* DFT functions */
|
||||
extern void DFT(avfloat_t *pDataR, avfloat_t *pDataI, UINT32 N);
|
||||
extern void IDFT(avfloat_t *pDataR, avfloat_t *pDataI, UINT32 N);
|
||||
|
||||
/* FFT functions */
|
||||
extern void FFTinit(FFT *pFFT, UINT32 N);
|
||||
extern void FFTfree(FFT *pFFT);
|
||||
extern void fft(FFT *pFFT, avfloat_t*, avfloat_t*);
|
||||
extern void ifft(FFT *pFFT, avfloat_t*, avfloat_t*);
|
||||
extern void ffts(FFT *pFFT, avfloat_t *in_re, avfloat_t *in_im);
|
||||
extern void FFTCalcTwiddleTable (avfloat_t *pRealData, avfloat_t *pImagData, UINT32 numPoints);
|
||||
|
||||
/* 2D FFT functions */
|
||||
extern void FFT2Dinit(struct _sFFT2D *pFFT, UINT32 Nx, UINT32 Ny);
|
||||
extern void FFT2Dfree(struct _sFFT2D *pFFT);
|
||||
extern void fft2d(struct _sFFT2D *pFFT, avfloat_t **ppReal, avfloat_t **ppImag);
|
||||
extern void ifft2d(struct _sFFT2D *pFFT, avfloat_t **ppReal, avfloat_t **ppImag);
|
||||
|
||||
/* Helper functions */
|
||||
extern void Scale(avfloat_t *pRealData, avfloat_t *pImagData , avfloat_t scaleFactor, UINT32 N);
|
||||
extern void Modulus(avfloat_t *pRealData, avfloat_t *pImagData, UINT32 N);
|
||||
extern void Hanning (avfloat_t *pRealData, avfloat_t *pImagData, UINT32 N, UINT32 maximum);
|
||||
extern avfloat_t hanning_k (UINT32, UINT32);
|
||||
extern avfloat_t gauss_k(UINT32, UINT32, UINT32);
|
||||
extern AVERR IsPowerOfTwo(UINT32 N);
|
||||
|
||||
#endif /* FFT_H */
|
||||
Reference in New Issue
Block a user