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

📄 mkf.cpp

📁 TI公司DSP/tms320c55x/tms320c54x系列的声学回声消除代码
💻 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 + -