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

📄 psd_fixpt_c55x.c

📁 用dsp解压mp3程序的算法
💻 C
字号:
/*****************************************************************
*  psd_fixpt_c55x.c - C program computes FFT-based PSD using C55x
*                    assembly routines from TI DSPLIB for CCS
******************************************************************
*  System configuration:
*
*          _____     ____     __________     __________
*         |     |   |    |   |          |   |          |
*  x(n)-->| Buf |-->| BR |-->| (1/N)*FFT|-->| |X(k)|^2 |--> P(k)
*         |_____|   |____|   |__________|   |__________|                         
*           
*  whrer
*     x(n) is included in data file "in_int_asm.dat"
*
*****************************************************************/
/* C header files  */

#include "math.h"
#include "tms320.h"
#include "dsplib.h"
#include "in_int_asm.dat"	// input data file
#include "def_complex_fixpt.h"	// complex.h header file

#pragma DATA_SECTION(spectrum, "fft_out"); 

/* define variables and constants */ 
lcomplex ltemp;                       
DATA spectrum[N/2+1];

void main()
{
  unsigned int i; 
     
  rfft(inp,N,SCALE);

  /* perform magnitude-square */
	
  spectrum[0]= (int)(((long)inp[0]*(long)inp[0])>>15)+1;
  spectrum[N/2]= (int)(((long)inp[1]*(long)inp[1])>>15)+1;
	
  for (i=1; i<N/2; i++)
  {
    ltemp.re = (((long)inp[2*i]*(long)inp[2*i])>>15);
    ltemp.im = (((long)inp[(2*i)+1]*(long)inp[(2*i)+1])>>15);  
    spectrum[i] = (int)(ltemp.re+ltemp.im)+1; // scaling is perform in fft      
  }
     
  return;
} 


⌨️ 快捷键说明

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