📄 lms.c
字号:
#include "math.h"
#include "stdio.h"
int N=5; /* FIR滤波器阶数N */
float u=0.001; /* 自适应步长u */
float pi=3.1415926;
int i,j;
float x[504];
float y[500];
float d[500];
float e[500];
float X[5];
float W[5];
void main()
{
for (i=0;i<504;i++) /* 输入信号为正弦 */
{
x[i]=sin((9*i-36)*pi/180);
}
for (i=0;i<500;i++) /* 期望信号等于输入信号 */
{
d[i]=x[i+N-1];
}
for (i=0;i<N;i++) /* 滤波器权矢量W初始化为0 */
{
W[i]=0;
}
for (i=0;i<500;i++) /* 迭代运算 */
{
y[i]=0;
for(j=0;j<N;j++) /* 更新X */
{
X[j]=x[i+N-j-1];
}
for (j=0;j<N;j++)
{
y[i]=y[i]+W[j]*X[j]; /* 计算y */
}
e[i]=d[i]-y[i];
for(j=0;j<N;j++)
{
W[j]=W[j]+2*u*e[i]*X[j]; /* 更新W */
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -