exp6a.c

来自「TI的DSP C55X的应用程序」· C语言 代码 · 共 42 行

C
42
字号
/* 
   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 + =
减小字号Ctrl + -
显示快捷键?