📄 sincostest.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 + -