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

📄 sincostest.c

📁 CHP 3 - Real-Time Digital Signal Processing: Implementations and Applications, Second Edition by Sen
💻 C
字号:
//                                              
//  Project: Experiment 3.6.5.4 Function Approximaiton - Chapter 3 
//  File name: sinCosTest.c   
//
//  Description: This function is used to test the function approximation implementation
//
//  For the book "Real Time Digital Signal Processing: 
//                Implementation and Application, 2nd Ed"
//                By Sen M. Kuo, Bob H. Lee, and Wenshun Tian
//                Publisher: John Wiley and Sons, Ltd
//
//
//  Tools used: CCS v.2.12.07
//              TMS320VC5510 DSK Rev-C
//
    
#define UNITQ15  0x7FFF
                   
extern void sine_cos(short, short *); 

const short theta[16]={
  0x9556,0xa000,0xaaab,0xc000,  /* -150, -135, -120, -90 */
  0xd555,0xe000,0xeaab,0xffff,  /*  -60,  -45,  -30,  -0 */ 
  0x1555,0x2000,0x2aaa,0x4000,  /*   30,   45,   60,  90 */            
  0x5555,0x6000,0x6aaa,0x7fff}; /*  120,  135,  150, 180 */

double  resultBuf[32];       
short   WnBuf[2];        

void main()
{    
  short  *Wn,i; 
  double *result; 
    
  for (i=0; i<32; i++)
    resultBuf[i]=0;
			      
  result = resultBuf;
  Wn = WnBuf;
	                                    
  /* 3rd quadrant angles */  
  sine_cos(theta[0], Wn); /* -150 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[1], Wn); /* -135 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[2], Wn); /* -120 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[3], Wn); /* -90  */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
		
  /* 4th quadrant angles */  
  sine_cos(theta[4], Wn); /* -60 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[5], Wn); /* -45 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[6], Wn); /* -30 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[7], Wn); /* -0  */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
	
  /* 1st quadrant angles */
  sine_cos(theta[8], Wn);  /* 30 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[9], Wn);  /* 45 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[10], Wn); /* 60 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[11], Wn); /* 90 */   
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 

  /* 2nd quadrant angles */
  sine_cos(theta[12], Wn); /* 120 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[13], Wn); /* 135 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[14], Wn); /* 150 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
  sine_cos(theta[15], Wn); /* 180 */
  *result++ = (double)(*Wn++)/UNITQ15;
  *result++ = (double)(*Wn--)/UNITQ15; 
}

⌨️ 快捷键说明

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