00001 #include "c_lpc10.h"
00002
00003
00004
00005 #define xDISABLE_HP100
00006
00007 #ifndef ORIG
00008 #define FCAST(n) (FLOAT)(n)
00009 #else
00010 #define FCAST(n) (n)
00011 #endif
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 VOID hp100( FLOAT speech[], FLOAT dest[] )
00022 {
00023 INDEX i;
00024 FLOAT si, err;
00025
00026 for (i = 0; i < LFRAME; i++) {
00027 si = speech[i];
00028
00029 err = (FLOAT)(si + FCAST(1.859076) * g_hpa1 - FCAST(0.8648249) * g_hpa2);
00030 si = (FLOAT)(err - FCAST(2.0) * g_hpa1 + g_hpa2);
00031 g_hpa2 = g_hpa1;
00032 g_hpa1 = err;
00033
00034 err = (FLOAT)(si + FCAST(1.935715) * g_hpb1 - FCAST(0.9417004) * g_hpb2);
00035 si = (FLOAT)(err - FCAST(2.0) * g_hpb1 + g_hpb2);
00036 g_hpb2 = g_hpb1;
00037 g_hpb1 = err;
00038
00039 #ifdef DISABLE_HP100
00040 dest[i] = speech[i];
00041 #else
00042 dest[i] = (FLOAT)(FCAST(0.902428) * si);
00043 #endif
00044 }
00045 }
00046
00047
00048
00049
00050
00051 VOID hp100_i16( INT16 speech[], FLOAT dest[] )
00052 {
00053 INDEX i;
00054 FLOAT si, err;
00055
00056 for (i = 0; i < LFRAME; i++) {
00057 si = ((FLOAT)speech[i]/(FLOAT)8.0);
00058
00059 err = (FLOAT)(si + FCAST(1.859076) * g_hpa1 - FCAST(0.8648249) * g_hpa2);
00060 si = (FLOAT)(err - FCAST(2.0) * g_hpa1 + g_hpa2);
00061 g_hpa2 = g_hpa1;
00062 g_hpa1 = err;
00063
00064 err = (FLOAT)(si + FCAST(1.935715) * g_hpb1 - FCAST(0.9417004) * g_hpb2);
00065 si = (FLOAT)(err - FCAST(2.0) * g_hpb1 + g_hpb2);
00066 g_hpb2 = g_hpb1;
00067 g_hpb1 = err;
00068
00069 #ifdef DISABLE_HP100
00070 dest[i] = ((FLOAT)speech[i]/(FLOAT)8.0);
00071 #else
00072 dest[i] = (FLOAT)(FCAST(0.902428) * si);
00073 #endif
00074 }
00075 }
00076
00077