/*------------------------------------------------------------------------- * pflms.h Partioned Frequency Least-Mean-Square adaptive algorithm * $Id: $ *------------------------------------------------------------------------- * * Copyright (C) 2001 Algo Vision Systems GmbH * *------------------------------------------------------------------------- */ #ifndef _PFLMS_H #define _PFLMS_H #include "pfft.h" /*-----------------------------------------------------------------------*/ /* PFLMS-Parameter */ /*-----------------------------------------------------------------------*/ typedef struct _sPFLMS { UINT32 N, P, S, L, C; /* PFLMS-Parameter N, P, S, L, C */ avfloat_t gamma; /* Sicherheitskonstannte */ CMPXBUF *pBufWS; /* komplexe Puffer X[P*S][C], WS[P][C] */ CMPXBUF *pX, *pWS, *pPj; /* aktuelle Zeiger auf Puffer[p][] */ COMPLEX *pTemp; /* temporaerer Puffer fuer Y[] und E[] */ REALBUF *pBufMu; /* reeller Puffer Mu[P*S][C] */ REALBUF *pMu; /* Aktueller zeiger auf Mu[k-p*S] */ avfloat_t *pBufPX; /* reeller Puffer PX[C] */ FFT *pFFT; /* FFT-Objekt */ PFFT *pFilter; /* Filter-Objekt */ } PFLMS; AVERR PflmsInit(PFLMS *pObj,UINT32 N, UINT32 P, UINT32 S, UINT32 L, UINT32 C); AVERR PflmsInitFilter(PFLMS *pObj, avfloat_t *pWTD); AVERR Pflms(PFLMS *pObj, avfloat_t *pInTDx, avfloat_t *pInTDd, avfloat_t *pOutTDy, avfloat_t *pOutTDe, avfloat_t alpha); #endif /* _PFLMS_H */