- use build in data types
git-svn-id: http://moon:8086/svn/mips@35 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
@@ -3,54 +3,58 @@
|
||||
/* Fast-Fourier-Transformation
|
||||
/* Author: Jens Ahrensfeld */
|
||||
/* Datum : 24.06.1999 */
|
||||
/* letzte Änderung: 09.06.2000 */
|
||||
/* letzte �nderung: 09.06.2000 */
|
||||
/***************************************************************************/
|
||||
/* Tabellen und Funktionen für die FFT */
|
||||
/* Tabellen und Funktionen f�r die FFT */
|
||||
/***************************************************************************/
|
||||
#ifndef FFT_H
|
||||
#define FFT_H
|
||||
|
||||
#define PI 3.1415926535897932384626433832795
|
||||
|
||||
#define fft_float_t FLOAT32
|
||||
#ifndef float32_t
|
||||
#define float32_t float
|
||||
#endif
|
||||
|
||||
#define fft_float_t float32_t
|
||||
#define FFT_ERROR 0x80000000
|
||||
|
||||
typedef struct _sfft_t
|
||||
{
|
||||
UINT32 m_numPoints, m_numStages;
|
||||
uint32_t m_numPoints, m_numStages;
|
||||
fft_float_t *pTwfRe, *pTwfIm;
|
||||
} fft_t;
|
||||
|
||||
typedef struct _sfft2_t
|
||||
{
|
||||
fft_t *pXfft, *pYfft;
|
||||
UINT32 m_Nx, m_Ny;
|
||||
uint32_t m_Nx, m_Ny;
|
||||
} fft2_t;
|
||||
|
||||
/* DFT functions */
|
||||
extern void DFT(fft_float_t *pDataR, fft_float_t *pDataI, UINT32 N);
|
||||
extern void IDFT(fft_float_t *pDataR, fft_float_t *pDataI, UINT32 N);
|
||||
extern void DFT(fft_float_t *pDataR, fft_float_t *pDataI, uint32_t N);
|
||||
extern void IDFT(fft_float_t *pDataR, fft_float_t *pDataI, uint32_t N);
|
||||
|
||||
/* FFT functions */
|
||||
extern void FFTinit(fft_t *pFFT, UINT32 N);
|
||||
extern void FFTinit(fft_t *pFFT, uint32_t N);
|
||||
extern void FFTfree(fft_t *pFFT);
|
||||
extern void fft_inplace(fft_t *pFFT, fft_float_t*, fft_float_t*);
|
||||
extern void ifft_inplace(fft_t *pFFT, fft_float_t*, fft_float_t*);
|
||||
extern void ffts_inplace(fft_t *pFFT, fft_float_t *in_re, fft_float_t *in_im);
|
||||
extern void FFTCalcTwiddleTable (fft_float_t *pRealData, fft_float_t *pImagData, UINT32 numPoints);
|
||||
extern void FFTCalcTwiddleTable (fft_float_t *pRealData, fft_float_t *pImagData, uint32_t numPoints);
|
||||
|
||||
/* 2D FFT functions */
|
||||
extern void FFT2Dinit(fft2_t *pFFT, UINT32 Nx, UINT32 Ny);
|
||||
extern void FFT2Dinit(fft2_t *pFFT, uint32_t Nx, uint32_t Ny);
|
||||
extern void FFT2Dfree(fft2_t *pFFT);
|
||||
extern void fft2d_inplace(fft2_t *pFFT, fft_float_t **ppReal, fft_float_t **ppImag);
|
||||
extern void ifft2d_inplace(fft2_t *pFFT, fft_float_t **ppReal, fft_float_t **ppImag);
|
||||
|
||||
/* Helper functions */
|
||||
extern void Scale(fft_float_t *pRealData, fft_float_t *pImagData , fft_float_t scaleFactor, UINT32 N);
|
||||
extern void Modulus(fft_float_t *pRealData, fft_float_t *pImagData, UINT32 N);
|
||||
extern void Hanning (fft_float_t *pRealData, fft_float_t *pImagData, UINT32 N, UINT32 maximum);
|
||||
extern fft_float_t hanning_k (UINT32, UINT32);
|
||||
extern fft_float_t gauss_k(UINT32, UINT32, UINT32);
|
||||
extern UINT32 IsPowerOfTwo(UINT32 N);
|
||||
extern void Scale(fft_float_t *pRealData, fft_float_t *pImagData , fft_float_t scaleFactor, uint32_t N);
|
||||
extern void Modulus(fft_float_t *pRealData, fft_float_t *pImagData, uint32_t N);
|
||||
extern void Hanning (fft_float_t *pRealData, fft_float_t *pImagData, uint32_t N, uint32_t maximum);
|
||||
extern fft_float_t hanning_k (uint32_t, uint32_t);
|
||||
extern fft_float_t gauss_k(uint32_t, uint32_t, uint32_t);
|
||||
extern uint32_t IsPowerOfTwo(uint32_t N);
|
||||
|
||||
#endif /* FFT_H */
|
||||
|
||||
Reference in New Issue
Block a user