iir.c

来自「C语言实现IIR滤波器」· C语言 代码 · 共 57 行

C
57
字号
/*****************************************************************************/
/* filter.c                                                                  */
/*****************************************************************************/

#include <stdio.h>

/*****************************************************************************/
/* Global Variables                                                          */
/*****************************************************************************/
static void dataIO();
int input[256];
int output[256];  
long buffer[260];

float b[5]={1,-1.968427777,1.735860705,-0.7244708538,0.1203896031};

float a[5]={0.01020948123,0.04083792493,0.06125688553,0.04083792493,0.01020948123};
 
/*****************************************************************************/
/* MAIN                                                                      */
/*****************************************************************************/

void main()
{ 
   int i,j,q;
   
   while(1)
   {    
	  dataIO();
	
	  buffer[0]=buffer[1]=buffer[2]=buffer[3]=0;
	
	  for(i=0;i<256;i++)
	  {
		output[i]=0;
	  }
	  for(j=4;j<(256+4);j++)
	  {
	    buffer[j]=b[0]*input[j-4];
	    for(q=0;q<4;q++)
	    {
	      buffer[j]=buffer[j]-b[q+1]*buffer[j-q-1];
	    }
	    for(i=0;i<5;i++)
	    {
	      output[j-4]+=a[i]*buffer[j-i];
	    }
	   }
	  
	}
}
static void dataIO()
{
  return;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?