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

📄 firtestn01.c

📁 这个是DSP实现的有现冲激FIP滤波器的程序 利用C编写的
💻 C
字号:
extern void InitC5402(void);
extern void OpenMcBSP(void);
extern void CloseMcBSP(void);
extern void READAD50(void);
extern void WRITEAD50(void);

/***********************************************************************
** Main Function Program
***********************************************************************/
  #include "stdio.h"
  #include "math.h"
  #define pi 3.1415927
  
  double npass,h[51], x, y, xmid[51];
  int m=50;
  int n=256;
  
  void firdes (int m, double npass);
    
   main ()
  {
  	int xm,ym;
	int *px = (int*)0x3000;
	int *py = (int*)0x3100;
  	double fs,fstop,r,rm;
  	int i,j,p,k,s;
  	k=0;
  	  	
  	fs = 16000;
  	fstop = 2000;
  	npass = fstop/fs;
  	
  	for (i=0; i<=m; i++)
  	{
  		xmid[i]=0;
  	}
  	
  for (; ; )
  {	
  	InitC5402(); /* initialize C5402 DSP */
	OpenMcBSP();

  	firdes(m, npass);
	
	for (s=0; s<=4; s++)
	{	
		READAD50();
		
		for (i=0; i<=n-1; i++)
		{
			px = (int*)(0x3000+i);
			xm = *px;
			x = xm/32768.0;
			    	
   		    for (p=0; p<=m; p++)
    		{
    			xmid[m-p] = xmid[m-p-1];
    		}
    		xmid[0] = x;
    
 			r = 0;
 			rm= 0; 
			for (j=0; j<=m; j++)
			{	
	 		 	r  = xmid[j] * h[j];
				rm = rm + r;
    		}
			y = rm;
    				
	   		py = (int*)(0x3100+i);
	   		ym = (int)(32768.0 * y);
	   	   *py = ym;
	   	}
		
		WRITEAD50();
		k++;
	}	
	
  }				
		/*void PROCESSING(void)
		{
		do the necessery operations here!*/
  }

  void firdes(int m, double npass)
  {
  	int t;
   	for (t=0; t<=m; t++)
  	{
  		h[t] = sin((t-m/2.0)*npass*pi)/(pi*(t-m/2.0));
  	}
  	if (t=m/2) h[t]=npass;
  }
  

/***********************************************************************
** End of File –– exp08.c
***********************************************************************/

⌨️ 快捷键说明

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