📄 mkf.cpp
字号:
#if 0
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "gaeci.h"
#define M_PI (3.14158265)
double aP [GAEC_FBR_SZ];
S16 GAEC_aasFBR[GAEC_BANDS*2][GAEC_FBR_SZ];
S16 GAEC_aasFBS[GAEC_BANDS*2][GAEC_FBS_SZ];
S16 GAEC_aasFBZ[GAEC_BANDS*2][GAEC_FBZ_SZ];
S16 GAEC_aasFBX[GAEC_BANDS*2][GAEC_FBZ_SZ];
#define _K (sqrt(GAEC_BANDS/2))
//#define _K (1.0)
void fill_one
(
S16 *pS,
int sz,
char *filename
)
{
int k, band;
int sign;
FILE *pf=fopen(filename, "r");
if (!pf) exit(1);
for (k=0; k< sz ;k++)
{
float f=0;
fscanf(pf,"%f", &f);
aP[k]=f;
}
sign = -1;
for (k = 0; k < sz; k++)
{
pS[ 0+k] = Q15(_K*sqrt(2.0)*aP[k]);
pS[GAEC_BANDS*sz+k] = Q15(_K*sqrt(2.0)*aP[k]*sign);
sign = -sign;
}
for ( band = 1; band < GAEC_BANDS; band++)
{
for (k = 0; k < sz; k++)
{
double x = k-sz/2.0+0.5;
pS[(band+ 0)*sz+k] = Q15(_K*2.0*aP[k]*cos((M_PI*band*x)/float(GAEC_BANDS)));
pS[(band+GAEC_BANDS)*sz+k] = Q15(_K*2.0*aP[k]*sin((M_PI*band*x)/float(GAEC_BANDS)));
}
}
}
/*-------------------------------------------------------------------------*/
void _shaffle_fbz
/*-------------------------------------------------------------------------*/
(
)
{
int k;
S16 *ps1 = &GAEC_aasFBX[0][0];
S16 *ps2 = &GAEC_aasFBX[GAEC_BANDS][0];
for (k = 0; k < GAEC_BLK_SZ/2; k++)
{
int band;
for (band = 0; band < 2*GAEC_BANDS; band++)
{
int i0 = GAEC_FBZ_SZ - GAEC_BLK_SZ + k*2+0;
int i1 = GAEC_FBZ_SZ - GAEC_BLK_SZ + k*2+1;
int n;
for(n = 0; n < GAEC_LFCTR; n++)
{
*ps1++ = GAEC_aasFBZ[band][i0];
*ps2++ = GAEC_aasFBZ[band][i1];
i0 -= GAEC_BLK_SZ;
i1 -= GAEC_BLK_SZ;
}
}
}
}
void fb_init()
{
fill_one(&GAEC_aasFBR[0][0], GAEC_FBR_SZ, "fr.dat");
fill_one(&GAEC_aasFBS[0][0], GAEC_FBS_SZ, "fs.dat");
fill_one(&GAEC_aasFBZ[0][0], GAEC_FBZ_SZ, "fz.dat");
{
int band, k;
FILE *pf=fopen("fb.c","w");
if (!pf) return;
fprintf(pf,"const S16 GAEC_aasFBR[GAEC_BANDS*2][GAEC_FBR_SZ/2] = {\n");
for (band = 0; band < GAEC_BANDS*2; band++)
{
fprintf(pf,"\n/* band %d */\n", band);
for (k = 0; k < GAEC_FBR_SZ/2; k++)
{
fprintf(pf, "%+6d, ", GAEC_aasFBR[band][k]);
if ((k & 7) == 7)
{
fprintf(pf,"\n");
}
}
}
fprintf(pf,"\n};\n");
fprintf(pf,"const S16 GAEC_aasFBS[GAEC_BANDS*2][GAEC_FBS_SZ/2] = {\n");
for (band = 0; band < GAEC_BANDS*2; band++)
{
fprintf(pf,"\n/* band %d */\n", band);
for (k = 0; k < GAEC_FBS_SZ/2; k++)
{
fprintf(pf, "%+6d, ", GAEC_aasFBS[band][k]);
if ((k & 7) == 7)
{
fprintf(pf,"\n");
}
}
}
fprintf(pf,"\n};\n");
fprintf(pf,"const S16 GAEC_aasFBZ[GAEC_BANDS*2][GAEC_FBZ_SZ] = {\n");
for (band = 0; band < GAEC_BANDS*2; band++)
{
fprintf(pf,"\n/* band %d */\n", band);
for (k = 0; k < GAEC_FBZ_SZ; k++)
{
fprintf(pf, "%+6d, ", GAEC_aasFBZ[band][k]);
if ((k & 7) == 7)
{
fprintf(pf,"\n");
}
}
}
fprintf(pf,"\n};\n");
_shaffle_fbz();
fprintf(pf,"const S16 GAEC_aasFBX[GAEC_BANDS*2][GAEC_FBZ_SZ] = {\n");
for (band = 0; band < GAEC_BANDS*2; band++)
{
fprintf(pf,"\n/* Band %d */\n", band);
for (k = 0; k < GAEC_FBZ_SZ; k++)
{
fprintf(pf, "%+6d, ", GAEC_aasFBX[band][k]);
if ((k & 7) == 7)
{
fprintf(pf,"\n");
}
}
}
fprintf(pf,"\n};\n");
fclose(pf);
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -