Initial import

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/avpflms@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-07-19 07:44:42 +00:00
commit e93e7927cb
14 changed files with 2137 additions and 0 deletions
Executable
+39
View File
@@ -0,0 +1,39 @@
/*-------------------------------------------------------------------------
* 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 */