📄 lmsfilter.cpp
字号:
// lmsfilter.c++
static const char rcsid[] = "@(#)lmsfilter.c++ 1.1 15:00:30 10/19/92 EFC";
#include <math.h>
#include <lmsfilter.hpp>
float LMSFilter::filter(const float xin)
{
shift(x, nm1); // shift data down one to allow next value
x[ nm1 ] = xin;
float e = x[ nm1 ] - convolve();
adapt( e );
if ( _output_error )
out_val = e;
return out_val;
}
void LMSFilter::adapt(const float e)
{
float errf = 2.0 * beta_coef * e;
for (int k = 0; k < nx; k++)
{
alpha[k] += errf * x[nm1 - k];
if ( fabs( alpha[k] ) > 1.0 )
alpha[k] = alpha[k] > 0.0 ? 1.0 : -1.0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -