11、IIR滤波例子
- int BandpassFilter4(int InputAD4)
- {
- int ReturnValue;
- int ii;
- RESLO=0;
- RESHI=0;
- MACS=*PdelIn;
- OP2=1068; //FilterCoeff4[4];
- MACS=*(PdelIn+1);
- OP2=8; //FilterCoeff4[3];
- MACS=*(PdelIn+2);
- OP2=-2001;//FilterCoeff4[2];
- MACS=*(PdelIn+3);
- OP2=8; //FilterCoeff4[1];
- MACS=InputAD4;
- OP2=1068; //FilterCoeff4[0];
- MACS=*PdelOu;
- OP2=-7190;//FilterCoeff4[8];
- MACS=*(PdelOu+1);
- OP2=-1973; //FilterCoeff4[7];
- MACS=*(PdelOu+2);
- OP2=-19578;//FilterCoeff4[6];
- MACS=*(PdelOu+3);
- OP2=-3047; //FilterCoeff4[5];
- *p=RESLO;
- *(p+1)=RESHI;
- mytestmul<<=2;
- ReturnValue=*(p+1);
- for (ii=0;ii<3;ii++)
- {
- DelayInput[ii]=DelayInput[ii+1];
- DelayOutput[ii]=DelayOutput[ii+1];
- }
- DelayInput[3]=InputAD4;
- DelayOutput[3]=ReturnValue;
-
- // if (ReturnValue<0)
- // {
- // ReturnValue=-ReturnValue;
- // }
- return ReturnValue;
- }
|