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

📄 expdct01.c

📁 这是DSP实现的DCT变换
💻 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 "math.h"
  #include "stdio.h"
  #define pi 3.1415927
  double x[128],y[128],z[128];
  int n=128;
  void dct1c2 (double x[], double y[], int n);
  void idct1c2 (double y[], double z[], int n);
/*
  x为输入序列,y为DCT变换输出序列,z为重构序列,序列长度为128
  n为DCT变换序列长度
  dct1c2为DCT变换子程序,idct1c2为DCT逆变换子程序
*/  
  void dct1c2 (double x[], double y[], int n)
  {
  		double s,t;
  		int i,j;
  		s=0.0;
   	for (i=0; i<=n-1; i++)
   	  {
   		s=s+x[i];
   	  }
   	
   	for (i=1; i<=n-1; i++)
      {
   		t=0.0;
   		for (j=0; j<=n-1; j++)
   		  {
   			t=t+x[j]*cos((2.0*j+1)*i*pi/(2.0*n));
   		  }
   		y[i]=sqrt(2.0/n)*t;
   	   }
   	y[0]=s/(sqrt(n/1.0));
  }
  
  void idct1c2(double y[], double z[], int n)
  {
  		double t;
  		int i,j;
  		for (i=0; i<=n-1; i++)
   	 	  {
		    t=0.0;
		    for (j=0; j<=n-1; j++)
		     {
		  	   t=t+y[j]*cos((2.0*i+1)*j*pi/(2.0*n));
		     }
      		z[i]=y[0]/(sqrt(n/1.0))+sqrt(2.0/n)*t;
      	  }
  		
  }
 
void main(void)
{
		int k=0;
		int i,j;		
		int xm,zm;
		int *px = (int*)0x3000;
		int *pz = (int*)0x3080;
	for (; ;)
	{
		InitC5402(); /* initialize C5402 DSP */
		OpenMcBSP();
			
 		  for (j=0; j<=2; j++)
		  {
			READAD50();
		
			for (i=0; i<=127; i++)
			{
				px = (int*)(0x3000+i);
				xm = *px;
				x[i] = xm/32768.0;
			}		
		
			dct1c2 (x,y,n);
						
			idct1c2 (y,z,n);
				
			for (i=0; i<=127; i++)
			{
				pz = (int*)(0x3080+i);
				zm=(int)(z[i]*32768.0);
				*pz = zm;
			}
    			
    	   WRITEAD50();
				
		   k++;
	     }	
    }
				
		/*void PROCESSING(void)
		{
		do the necessery operations here!*/
}

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










⌨️ 快捷键说明

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