Files
avpflms/pflms2.h
T
jens e93e7927cb Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/avpflms@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
2014-07-19 07:44:42 +00:00

40 lines
1.6 KiB
C
Executable File

/*-------------------------------------------------------------------------
* 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 */