⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmsfilter.cpp

📁 Adaptive digital Filters in C++
💻 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 + -