Commit a8273e9d authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

changed hp20_fx_32() coefficient from Q29 to Q30

parent 13f79214
Loading
Loading
Loading
Loading
Loading
+22 −21
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
#include "wmc_auto.h"

#define HP20_COEFF_SCALE ( 2 )
#define HP20_FX_COEFF_SCALE ( 1 )
/*
 * hp20
 *
@@ -355,7 +356,7 @@ void hp20_fx_32(
    Word16 prescale, prescaleOld, prescale_current_frame, diff;

    prescale = L_norm_arr( signal_fx, lg );
    prescale_current_frame = sub( HP20_COEFF_SCALE, prescale );
    prescale_current_frame = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale );

    prescaleOld = extract_l( mem_fx[4] );

@@ -375,7 +376,7 @@ void hp20_fx_32(
        prescale = s_min( prescale, diff );
    }

    prescale = sub( HP20_COEFF_SCALE, prescale );
    prescale = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale );

    diff = sub( prescale, prescaleOld );
#ifdef ISSUE_1836_replace_overflow_libcom
@@ -405,10 +406,10 @@ void hp20_fx_32(
           [b,a] = butter(2, 20.0/4000.0, 'high');
           b = [0.988954248067140  -1.977908496134280   0.988954248067140]
           a =[1.000000000000000  -1.977786483776764   0.978030508491796]*/
        a1_fx = 1061816033l /* 1.977786483776764 Q29*/;
        a2_fx = -525076131l /*-0.978030508491796 Q29*/;
        b1_fx = -1061881538l /*-1.977908496134280 Q29*/;
        b2_fx = 530940769l /* 0.988954248067140 Q29*/;
        a1_fx = 2123632067 /* 1.977786483776764 Q30*/;
        a2_fx = -1050152262 /*-0.978030508491796 Q30*/;
        b1_fx = -2123763076 /*-1.977908496134280 Q30*/;
        b2_fx = 1061881538 /* 0.988954248067140 Q30*/;
    }
    ELSE IF( EQ_32( Fs, 16000 ) )
    {
@@ -416,10 +417,10 @@ void hp20_fx_32(
           [b,a] = butter(2, 20.0/8000.0, 'high');
           b =[ 0.994461788958195  -1.988923577916390   0.994461788958195]
           a =[1.000000000000000  -1.988892905899653   0.988954249933127] */
        a1_fx = 1067778748l /* 1.988892905899653 Q29*/;
        a2_fx = -530940770l /*-0.988954249933127 Q29*/;
        b1_fx = -1067795215l /*-1.988923577916390 Q29*/;
        b2_fx = 533897608l /* 0.994461788958195 Q29*/;
        a1_fx = 2135557497 /* 1.988892905899653 Q30*/;
        a2_fx = -1061881540 /*-0.988954249933127 Q30*/;
        b1_fx = -2135590430 /*-1.988923577916390 Q30*/;
        b2_fx = 1067795215 /* 0.994461788958195 Q30*/;
    }
    ELSE IF( EQ_32( Fs, 32000 ) )
    {
@@ -427,10 +428,10 @@ void hp20_fx_32(
           [b,a] = butter(2, 20.0/16000.0, 'high');
           b =[0.997227049904470  -1.994454099808940   0.997227049904470]
           a =[1.000000000000000  -1.994446410541927   0.994461789075954]*/
        a1_fx = 1070760263l /* 1.994446410541927 Q29*/;
        a2_fx = -533897608l /*-0.994461789075954 Q29*/;
        b1_fx = -1070764392l /*-1.994454099808940 Q29*/;
        b2_fx = 535382196l /* 0.997227049904470 Q29*/;
        a1_fx = 2141520527 /* 1.994446410541927 Q30*/;
        a2_fx = -1067795215 /*-0.994461789075954 Q30*/;
        b1_fx = -2141528783 /*-1.994454099808940 Q30*/;
        b2_fx = 1070764392 /* 0.997227049904470 Q30*/;
    }
    ELSE
    {
@@ -438,10 +439,10 @@ void hp20_fx_32(
           [b,a] = butter(2, 20.0/24000.0, 'high');
           b =[ 0.998150511190452  -1.996301022380904   0.998150511190452]
           a =[1.000000000000000  -1.996297601769122   0.996304442992686]*/
        a1_fx = 1071754114l /* 1.996297601769122 Q29*/;
        a2_fx = -534886875l /*-0.996304442992686 Q29*/;
        b1_fx = -1071755951l /*-1.996301022380904 Q29*/;
        b2_fx = 535877975l /* 0.998150511190452 Q29*/;
        a1_fx = 2143508228 /* 1.996297601769122 Q30*/;
        a2_fx = -1069773750 /*-0.996304442992686 Q30*/;
        b1_fx = -2143511901 /*-1.996301022380904 Q30*/;
        b2_fx = 1071755951 /* 0.998150511190452 Q30*/;
    }
    move32();
    move32();
@@ -456,7 +457,7 @@ void hp20_fx_32(
    W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x2 ) );        /* b2*x0 */
    W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[0], a2_fx ) ); /* y2*a2 */
    W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a1_fx ) ); /* y1*a1 */
    W_y2 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) );
    W_y2 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) );
    signal_fx[0] = W_round64_L( W_shl( W_y2, prescale ) );
    move32();

@@ -466,7 +467,7 @@ void hp20_fx_32(
    W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x1 ) );                  /* b2*x0 */
    W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a2_fx ) );           /* y2*a2 */
    W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a1_fx ) ); /* y1*a1 */
    W_y1 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) );
    W_y1 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) );
    signal_fx[1] = W_round64_L( W_shl( W_y1, prescale ) );
    move32();

@@ -484,7 +485,7 @@ void hp20_fx_32(
        W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x0 ) );                  /* b2*x0 */
        W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a2_fx ) ); /* y2*a2 */
        W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y1 ), a1_fx ) ); /* y1*a1 */
        W_y0 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) );
        W_y0 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) );

        signal_fx[i] = W_round64_L( W_shl( W_y0, prescale_current_frame ) );
        move32();