?? exp6a.c
字號:
/*
exp6a.c - Direct form II - IIR function implementation
in floating-point C and using signal generator
*/
#define M 128 /* Number of samples per block */
#define Ns 2 /* Number of 2nd order sections */
/* Low-pass IIR filter coefficients */
float C[Ns*5]={ /* i=section number */
/* A[i][1],A[i][2],B[i][2],B[i][0],B[i][1] */
-0.8659, 0.2139, 0.0992, 0.0992, 0.1984,
-1.1249, 0.5770, 0.0992, 0.0992, 0.1984};
/* IIR filter delay line:
w[]=w[i][n-1],w[i+1][n-1],...,w[i][n-2],w[i+1][n-2],... */
float w[Ns*2];
int out[M];
int in[M];
/* IIR filter function */
extern void iir(int*, int, int *, float *, int, float *);
/* Software signal generator */
extern void signal_gen2(int *, unsigned int);
void main(void)
{
int i;
/* Initialize IIR filter delay line */
for (i=0; i<Ns*2;i++)
w[i]=0;
/* IIR filter experiment start */
for (;;)
{
signal_gen2(in,M); /* Generate a block of samples */
iir(in,M,out,C,Ns,w); /* Filter a block of samples */
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -