?? lms.c
字號(hào):
#include "math.h"
#include "stdio.h"
int N=5; /* FIR濾波器階數(shù)N */
float u=0.001; /* 自適應(yīng)步長(zhǎng)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++) /* 輸入信號(hào)為正弦 */
{
x[i]=sin((9*i-36)*pi/180);
}
for (i=0;i<500;i++) /* 期望信號(hào)等于輸入信號(hào) */
{
d[i]=x[i+N-1];
}
for (i=0;i<N;i++) /* 濾波器權(quán)矢量W初始化為0 */
{
W[i]=0;
}
for (i=0;i<500;i++) /* 迭代運(yùn)算 */
{
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]; /* 計(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 */
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -