当前位置:网站首页>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;
}
边栏推荐
- Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
- Baiwen 7-day smart home learning experience of Internet of things
- 生产中影响滑环质量的因素
- Ads learning record (lna_atf54143)
- Record the torch encountered by win10 cuda. is_ False problem in available()
- Can't find real-time chat software? Recommend to you what e-commerce enterprises are using!
- Drive LED -- GPIO control
- Interview catalogue
- Factors affecting the quality of slip rings in production
- Altium designer 19.1.18 - clear information generated by measuring distance
猜你喜欢
Consul installation
MLPerf Training v2.0 榜单发布,在同等GPU配置下百度飞桨性能世界第一
LED display equipment records of the opening ceremony of the Beijing Winter Olympics
Summary -st2.0 Hall angle estimation
Significance and requirements of semiconductor particle control
Interview catalogue
Communication standard -- communication protocol
Create inf module in AMI code
Acwing-宠物小精灵之收服-(多维01背包+正序倒序+两种形式dp求答案)
How to select conductive slip ring
随机推荐
Pointnet++ classification practice
Use of orbbec Astra depth camera of OBI Zhongguang in ROS melody
Threads and processes
Shape template matching based on Halcon learning [9] PM_ multiple_ dxf_ models. Hdev routine -- [read and write XLD from DXF file]
VESC Benjamin test motor parameters
IC software learning
Altium designer 19.1.18 - hide the fly line of a network
Global and Chinese market of blackbody calibration source 2022-2028: Research Report on technology, participants, trends, market size and share
Consul installation
Altium Designer 19.1.18 - 更改铺铜的透明度
Beijing Winter Olympics opening ceremony display equipment record 3
Some errors in configuring the environment
Markdown tips
Application of ultra pure water particle counter in electronic semiconductors
Mlperf training v2.0 list released, with the same GPU configuration, the performance of Baidu PaddlePaddle ranks first in the world
C WinForm [view status bar -- statusstrip] - Practice 2
STM32 knowledge points
MySQL - storage engine
. Net service governance flow limiting middleware -fireflysoft RateLimit
TCP and UDP