?? dsp6713_algorithm.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 + -