?? exp8a.c
字號:
/*
exp8a.c - Experiment 8A
System identification using LMS adaptive filter
*/
#include "LP_coef.dat"
#define N0 48 /* Adaptive filter order */
#define N1 48 /* Unknown filter order */
#define Ns 128 /* Number of input signal */
#pragma CODE_SECTION(main, "lms_code");
#pragma DATA_SECTION(fir_index, "lms_data");
#pragma DATA_SECTION(sys_index, "lms_data");
#pragma DATA_SECTION(w, "lms_coef");
#pragma DATA_SECTION(d_sys, "lms_data");
#pragma DATA_SECTION(d_fir, "lms_data");
#pragma DATA_SECTION(in, "lms_in");
#pragma DATA_SECTION(d, "lms_out");
extern unsigned int fir_filt(int *, unsigned int, int *, unsigned int,
int *, int *, unsigned int);
extern unsigned int adaptive(int *, int *, int *, int *, unsigned int,
unsigned int, unsigned int);
extern void init(int *, unsigned int);
extern void random(int *, unsigned int);
int w[N0], /* Adaptive filter coefficients */
d_sys[N0], /* Adaptive filter delayed sample buffer */
d_fir[N1], /* Unknown system delayed sample buffer */
in[Ns], /* Input sample buffer */
d[Ns]; /* Unknown system output buffer */
unsigned int fir_index,sys_index;
void main()
{
init(w,N0); /* Initialize adaptive filter coefficients */
init(d_sys,N0); /* Initialize adaptive filter delay-line */
init(d_fir,N1); /* Initialize unknown filter delay-line */
fir_index=0; /* Init the unknown filter delay-line index */
sys_index=0; /* Init the adaptive filter delay-line index */
for (;;) /* Generate samples to both filter and */
{ /* identify unknown system */
random(in,Ns);
fir_index=fir_filt(in,Ns,LP_coef,N1,d,d_fir,fir_index);
sys_index=adaptive(in,d,d_sys,w,Ns,N0,sys_index);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -