⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iir2.c

📁 用dsp解压mp3程序的算法
💻 C
字号:
/******************************************************************  iir2.c - C program for first-order IIR filtering*******************************************************************  System configuration:** *  x(n) |----------------| y(n)*  ---->| Lowpass filter |----->*       |----------------|********************************************************************  System simulation configuration:**     x(n) is the input data from data file "xn.dat"*     y(n) is the output data to data file "yn.dat"******************************************************************/#include <stdio.h>#include <stdlib.h>#include <math.h>/*Global declaration */int in_buffer[100];int out_buffer[100];#define TRUE 1/*Function */static int processing(int *input, int *output);static void dataIO(void);/*----- Main program ----- */void main(){/******************************************************************    Declare file pointers*****************************************************************/  int *input = &in_buffer[0];    /* input pointer               */  int *output = &out_buffer[0];  /* output pointer              *//******************************************************************    Start of main program*****************************************************************/  while(TRUE)  {           /* read in x(n) from data file and processing it  */    /*************************************************************    *    IIR filtering:    *         y(n) = (1-alpha)*y(n-1)+alpha*x(n)    *************************************************************/    	/* Read using Probe Point connected to a host file.     */	dataIO(); 	processing(input, output);   }}/* function for signal processing */static int processing(int *input, int *output){  int size = 100;  float yn = 0.0;             /* y(n), output from IIR filter   */  float alpha = 0.25;         /* alpha = 0.25                   */  float alpha1 = 0.75;        /* alpha1 = 1 - alpha = 0.75      */  while(size--){              /* *output++ = *input++*0.5;      */	    *output = (int)((alpha1*yn + alpha*((float)*input++))+0.5);    yn = (float)*output++;     }  return(TRUE);}/* dataIO - function for data I/O  */static void dataIO (){  return;}

⌨️ 快捷键说明

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