📄 super_bass.c
字号:
extern void InitC5410(void);
extern void OpenMcBSP(void);
extern void CloseMcBSP(void);
extern void READAD50(void);
extern void WRITEAD50(void);
#include "stdio.h"
#include "math.h"
#define pi 3.1415926
int in[256], out[256];
double fs = 16000;
double nlpass = 0.014;
double nlstop = 0.214;
double a[3],b[3],x,y;
void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[]);
void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[])
{
int i, u, v;
double wp, omp, gsa, t;
wp = nlpass*2*pi;
omp = tan(wp/2.0);
gsa = omp*omp;
for (i=0; i<=2; i++)
{
u = i%2;
v = i-1;
a[i] = gsa*pow(2,u)-sqrt(2)*omp*v+pow(-2,u);
}
for (i=0; i<=2; i++)
{
u = i%2;
b[i] = gsa*pow(2,u);
}
t = a[0];
for (i=0; i<=2; i++)
{
a[i]=a[i]/t;
b[i]=b[i]/t;
}
}
/*******************************************************************/
/* Main Function Program */
/*******************************************************************/
void main(void)
{
int i,j;
int x_ad,y_da;
int *px = (int*)0x3000;
int *py = (int*)0x3010;
double w[9];
/*** mode = 0, 直通,输出与输入相同 ***/
/*** mode = 1, 提取重低音部分,输出 ***/
/*** mode = 2, 对输入信号做低音加重处理 ***/
int mode = 1;
for ( i = 0; i < 9; i++ ) w[i] = 0;
InitC5410(); /* initialize C5402 DSP */
OpenMcBSP();
biir2lpdes(fs,nlpass,nlstop,a,b);
for ( ; ; )
{
READAD50();
x_ad = *px;
x = x_ad;
w[2] = x - w[0]*a[2] - w[1]*a[1];
w[5] = (w[0]*b[2] + w[1]*b[1] + w[2]*b[0])*3.17 - w[4]*a[1] - w[3]*a[2];
w[8] = (w[3]*b[2] + w[4]*b[1] + w[5]*b[0])*3.17 - w[7]*a[1] - w[6]*a[2];
y = w[8]*b[0] + w[7]*b[1] + w[6]*b[2];
w[0] = w[1]; w[1] = w[2];
w[3] = w[4]; w[4] = w[5];
w[6] = w[7]; w[7] = w[8];
if ( mode == 0 ) y = x_ad;
else if ( mode == 1 ) y = 2*y;
else if ( mode == 2 ) y = x + y;
else y = 0;
if ( y > 32700 ) y = 32700.0;
if ( y < -32700 ) y = -32700.0;
y_da = (int)(y);
*py = y_da;
WRITEAD50();
in[j] = x_ad;
out[j] = y_da;
j++;
if ( j >= 256 )
{
j = 0; /* Set breakpoint here can view the in data and out data */
}
}
}
/********************************************************************************
** End of File –– exp08.c
*********************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -