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

📄 dsp6713_algorithm.c

📁 于博士cadence视频配套工程文件
💻 C
字号:
/* ---------------------------------------------------------------- */
/* Copyright declaration                                            */
/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
/* Description:   	  
 *  FileName  :    	DSP6713_algorithm.c                               	
 *  Writen by :    	Yu zheng										*/                                     		 
/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
#define CHIP_6713

#include <csl.h>
#include <csl_edma.h>
#include "DSP6713_const.h"
#include "DSP6713_algorithm.h"

extern int inputbuffer_ping[];
extern int inputbuffer_pong[];
extern int outputbuffer_ping[];
extern int outputbuffer_pong[];

// declare and initalize a IO buffer	   
float filt_coef[FILT_TAP]={
1.353780e-002,
8.324742e-004,
-1.314537e-002,
6.845718e-003,
1.349053e-002,
-1.229753e-002,
-1.678734e-002,
2.568337e-002,
1.267590e-002,
-4.063949e-002,
-4.577620e-003,
6.626522e-002,
-2.070024e-002,
-1.149802e-001,
1.099433e-001,
4.837131e-001,
4.837131e-001,
1.099433e-001,
-1.149802e-001,
-2.070024e-002,
6.626522e-002,
-4.577620e-003,
-4.063949e-002,
1.267590e-002,
2.568337e-002,
-1.678734e-002,
-1.229753e-002,
1.349053e-002,
6.845718e-003,
-1.314537e-002,
8.324742e-004,
1.353780e-002
};
	
float filt_Lconvbuf[FILT_CONVBUFSIZE]; 
float filt_Rconvbuf[FILT_CONVBUFSIZE];	 			

/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
/* complex filter and cic */
void dataprocessing(Uint16 WhichBuffer)
{
    int fi;
    int fj;

	int mod = FILT_CONVBUFSIZE;
	int k = 0;
	
	float Lval;
	float Rval;	


	if (WhichBuffer == PING)
	{
		 
		for (fi=0; fi<FILT_OUTLEN; fi++)
		{
			Lval = 0;
			Rval = 0;
			
			filt_Lconvbuf[fi] = (float)inputbuffer_ping[2*fi];
			filt_Rconvbuf[fi] = (float)inputbuffer_ping[2*fi + 1];				
			
			for (fj=0; fj<FILT_TAP; fj++)
			{
				k = (fi+mod-fj) % (mod);
				Lval += filt_Lconvbuf[k] * filt_coef[fj];
				Rval += filt_Rconvbuf[k] * filt_coef[fj];			
			}			

			outputbuffer_ping[2*fi] = (int)Lval;
			outputbuffer_ping[2*fi + 1] = (int)Rval;				
		}
	}
				
	else 
	{
		 
		for (fi=0; fi<FILT_OUTLEN; fi++)
		{
			Lval = 0;
			Rval = 0;
			
			filt_Lconvbuf[fi] = (float)inputbuffer_pong[2*fi];
			filt_Rconvbuf[fi] = (float)inputbuffer_pong[2*fi + 1];			
			
			
			for (fj=0; fj<FILT_TAP; fj++)
			{
				k = (fi+mod-fj) % (mod);
				Lval += filt_Lconvbuf[k] * filt_coef[fj];
				Rval += filt_Rconvbuf[k] * filt_coef[fj];			
			}
				
			outputbuffer_pong[2*fi]      =  (int)Lval;
			outputbuffer_pong[2*fi + 1]  =  (int)Rval;				
		}
	}
	
	
	
/*	
	int fi;
	if (WhichBuffer == PING)
	{
		 
		for (fi=0; fi<DATA_LEN; fi++)
		{
			outputbuffer_ping[fi] = inputbuffer_ping[fi];		
		}
		
	}
				
	else 
	{		
		 
		for (fi=0; fi<DATA_LEN; fi++)
		{
			outputbuffer_pong[fi] = inputbuffer_pong[fi];			
		
		}		
	}
*/
	
}// end of dataprocessing

/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
void dummyf(){return;}

/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
void initconvbuf()
{
	int fi;
	for (fi=0; fi<FILT_CONVBUFSIZE; fi++)
	{
		filt_Lconvbuf[fi] = 0;
		filt_Rconvbuf[fi] = 0;
	}	
}
/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
void initbuf()
{
	int fi;
	for (fi=0; fi<DATA_LEN; fi++)
	{
		inputbuffer_ping[fi] = 0;
		inputbuffer_pong[fi] = 0;
		outputbuffer_ping[fi] = 0;
		outputbuffer_pong[fi] = 0;
	}	
}

/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */


⌨️ 快捷键说明

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