当前位置:网站首页>Adaptive filter
Adaptive filter
2022-07-05 07:59:00 【feiyingzaishi】
1、LMS Filter Module simulation , Output will diverge , Mainly mu The value selection is inappropriate , Just choose a smaller value
2、 You can put online m File by matlab coder The tool is directly converted to C file ( Can't be used directly , Can be compared with reference )
3、 Revised the online C Code for reference
#include "LMS.h"
/* xn-------- Input signal sequence ( Column vector )
* itr------- The number of iterations , Scalar , The default is xn The length of ,M<itr<sizeof(xn)
* en-------- Error sequence (itr*1) Column vector
* dn-------- Desired response sequence ( Column vector )
* M--------- The order of the filter ( Scalar )
* mu-------- Convergence factor ( step ) Scalar
* W--------- Filter weight matrix , The size is M*itr
* yn-------- Actual output sequence ( Column vector )*/
/*LMS Concrete algorithm */
float * LMS_Filter(int itr, const float *xn, const float *dn, double mu, int length)
{
static int i = 0;
static int k = 0;
static float y = 0.0;
static float en[F_COUNT];
static float W[M][F_COUNT];
static float x[M];
static float yn[F_COUNT];
/* Create a en All zero matrix ,en(k) It means the first one k The error between the expected output and the actual input in the second iteration */
for (i=0; i<itr; i++)
{
en[i] = 0;
}
/* Create a W All zero matrix , Each line represents a weighting parameter , Each column represents an iteration */
for (i=0; i<M; i++)
for (k=0; k<itr; k++)
W[i][k] = 0;
/* Create a x All zero matrix */
for (i=0; i<M; i++)
x[i] = 0;
/* Iterative calculation */
for (k=M; k<=itr; k++)
{
/* filter M Input of two taps : from xn The first k-1 Take out the values in reverse order M Put the values of samples into x
* y Output for filter :W Of the K-2 Column and x Sum of products of */
for (i=0; i<M; i++)
{
x[i] = xn[k-i-1];
y += W[i][k-2] * x[i];
}
en[k-1] = dn[k-1] - y; // The first k The error of each iteration
/* Iterative formula for filter weight calculation */
for (i=0; i<M; i++)
{
W[i][k-1] = W[i][k-2] + 2*mu*en[k-1]*x[i];
}
y = 0.0;
}
/* Create a yn Full infinite matrix , Dimension and xn equally */
for (i=0; i<itr; i++)
{
yn[i] = 0.0;
}
/* When finding the optimal output sequence of the filter */
for (k=M; k<=length; k++)
{
for (i=0; i<M; i++)
{
x[i] = xn[k-i-1];
y += W[i][k-2]*x[i];
}
yn[k-1] = y;
y = 0.0;
}
return yn;
}
边栏推荐
- Global and Chinese market of plastic recycling machines 2022-2028: Research Report on technology, participants, trends, market size and share
- Altium designer 19.1.18 - clear information generated by measuring distance
- Record the visual shock of the Winter Olympics and the introduction of the screen 2
- TCP and UDP
- Gradle composite construction
- MLPerf Training v2.0 榜单发布,在同等GPU配置下百度飞桨性能世界第一
- Correlation based template matching based on Halcon learning [II] find_ ncc_ model_ defocused_ precision. hdev
- Scm-05 basis of independent keyboard
- Halcon's practice based on shape template matching [2]
- [professional literacy] specific direction of analog integrated circuits
猜你喜欢

Screen record of the opening ceremony of the Beijing winter olympics 2

研究發現,跨境電商客服系統都有這五點功能!

Win10 shortcut key

Class of color image processing based on Halcon learning_ ndim_ norm. hdev

About the problem that MySQL connector net cannot be cleared in MySQL

High end electronic chips help upgrade traditional oil particle monitoring

UEFI development learning 5 - simple use of protocol

How to select conductive slip ring

导电滑环磨损快的原因

Connection mode - bridge and net
随机推荐
C WinForm [get file path -- traverse folder pictures] - practical exercise 6
Acwing-宠物小精灵之收服-(多维01背包+正序倒序+两种形式dp求答案)
Network port usage
Software designer: 03 database system
Altium designer 19.1.18 - clear information generated by measuring distance
Global and Chinese markets for flexible endoscopic lithotripsy devices 2022-2028: Research Report on technology, participants, trends, market size and share
[professional literacy] specific direction of analog integrated circuits
solver. Learning notes of prototxt file parameters
Programming knowledge -- assembly knowledge
C language # and #
UEFI development learning 6 - creation of protocol
Shape template matching based on Halcon learning [v] find_ cocoa_ packages_ max_ deformation. Hdev routine
Development tools -- gcc compiler usage
RTOS in the development of STM32 single chip microcomputer
Altium designer learning (I)
TCP and UDP
Summary of STM32 serial port sending and receiving data methods
.NET服务治理之限流中间件-FireflySoft.RateLimit
Global and Chinese market for blood typing 2022-2028: Research Report on technology, participants, trends, market size and share
Global and Chinese markets for anesthesia, breathing and sleep apnea devices 2022-2028: Research Report on technology, participants, trends, market size and share