/*------------------------------------------------------------------------- * 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 */ FLOAT32 gamma; /* Sicherheitskonstannte */ CMPXBUF *pBufX, *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] */ FLOAT32 *pBufPX; /* reeller Puffer PX[C] */ FLOAT32 *pBufXsave; /* Overlap-Save Puffer xs[S*L] */ FFT *pFFT; /* FFT-Objekt */ } PFLMS; AVERR PflmsInit(PFLMS *pObj,UINT32 N, UINT32 P, UINT32 S, UINT32 L, UINT32 C); AVERR PflmsInitFilter(PFLMS *pObj, FLOAT32 *pWTD); AVERR Pflms(PFLMS *pObj, FLOAT32 *pInTDx, FLOAT32 *pInTDd, FLOAT32 *pOutTDy, FLOAT32 *pOutTDe, FLOAT32 alpha); #endif /* _PFLMS_H */