亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sp_dec.c

?? GSM半數率源代碼(VSELP) GSM半數率源代碼(VSELP)
?? C
?? 第 1 頁 / 共 5 頁
字號:

    pL_swap = pL_vjNew;
    pL_vjNew = pL_vjOld;
    pL_vjOld = pL_swap;

    /* Compute the j-th reflection coefficient */
    /*-----------------------------------------*/

    swTemp = norm_l(pL_pjOld[0]);      /* get shift count */
    swTemp1 = round(L_shl(pL_vjOld[0], swTemp));        /* normalize num.  */
    swTemp2 = round(L_shl(pL_pjOld[0], swTemp));        /* normalize den.  */

    /* Test for invalid divide conditions: a) devisor < 0 b) abs(divident) >
     * abs(devisor) If either of these conditions is true, zero out
     * reflection coefficients for i=j,...,NP-1 and return. */

    swAbsTemp1 = abs_s(swTemp1);
    if (swTemp2 <= 0 || sub(swAbsTemp1, swTemp2) >= 0)
    {
      i = j;
      for (i = j; i < NP; i++)
      {
        pswRc[i] = 0;
      }
      return;
    }

    swRc = divide_s(swAbsTemp1, swTemp2);       /* return division result */
    if (sub(swTemp1, swAbsTemp1) == 0)
      swRc = negate(swRc);             /* negate reflection Rc[j] */
    swRcSq = mult_r(swRc, swRc);       /* compute Rc^2 */
    pswRc[j] = swRc;                   /* copy Rc[j] to output array */

    /* Update pjNew and vjNew arrays for the next lattice stage if j < NP-1 */
    /*---------------------------------------------------------------------*/

    /* Updating pjNew: */
    /*-----------------*/

    for (i = 0; i <= NP - j - 2; i++)
    {
      L_temp = L_mpy_ls(pL_vjOld[i], swRc);
      L_sum = L_add(L_temp, pL_pjOld[i]);
      L_temp = L_mpy_ls(pL_pjOld[i], swRcSq);
      L_sum = L_add(L_temp, L_sum);
      L_temp = L_mpy_ls(pL_vjOld[-i], swRc);
      pL_pjNew[i] = L_add(L_sum, L_temp);
    }

    /* Updating vjNew: */
    /*-----------------*/

    for (i = -NP + j + 2; i <= NP - j - 2; i++)
    {
      L_temp = L_mpy_ls(pL_vjOld[-i - 1], swRcSq);
      L_sum = L_add(L_temp, pL_vjOld[i + 1]);
      L_temp = L_mpy_ls(pL_pjOld[(((i + 1) >= 0) ? i + 1 : -(i + 1))], swRc);
      L_temp = L_shl(L_temp, 1);
      pL_vjNew[i] = L_add(L_temp, L_sum);
    }
  }
  return;
}

/***************************************************************************
 *
 *   FUNCTION NAME: aToRc
 *
 *   PURPOSE:
 *
 *     This subroutine computes a vector of reflection coefficients, given
 *     an input vector of direct form LPC filter coefficients.
 *
 *   INPUTS:
 *
 *     NP
 *                     order of the LPC filter (global constant)
 *
 *     swAshift
 *                     The number of right shifts applied externally
 *                     to the direct form filter coefficients.
 *
 *     pswAin[0:NP-1]
 *                     The input vector of direct form LPC filter
 *                     coefficients.
 *
 *   OUTPUTS:
 *
 *     pswRc[0:NP-1]
 *                     Array containing the reflection coefficients.
 *
 *   RETURN VALUE:
 *
 *     siUnstableFlt
 *                     If stable reflection coefficients 0, 1 if unstable.
 *
 *
 *   DESCRIPTION:
 *
 *     This function performs the conversion from direct form
 *     coefficients to reflection coefficients. It is used in a_sst()
 *     and interpolateCheck().  In a_sst() reflection coefficients used
 *     as a transitional data format.  aToRc() is used for this
 *     conversion.
 *
 *     When performing interpolation, a stability check must be
 *     performed. interpolateCheck() does this by calling aToRc().
 *
 *     First coefficients are shifted down by iAshift. NP, the filter
 *     order is 10. The a's and rc's each have NP elements in them. An
 *     elaborate algorithm description can be found on page 443, of
 *     "Digital Processing of Speech Signals" by L.R. Rabiner and R.W.
 *     Schafer; Prentice-Hall; Englewood Cliffs, NJ (USA).  1978.
 *
 *   REFERENCES: Sub_Clause 4.1.6, and 4.2.3 of GSM Recomendation 06.20
 *
 *   KEYWORDS: reflectioncoefficients, parcors, conversion, atorc, ks, as
 *   KEYWORDS: parcorcoefficients, lpc, flat, vectorquantization
 *
 *************************************************************************/

static short aToRc(Shortword swAshift, Shortword pswAin[],
                          Shortword pswRc[])
{

/*_________________________________________________________________________
 |                                                                         |
 |                            Constants                                    |
 |_________________________________________________________________________|
*/

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/

  Shortword pswTmpSpace[NP],
         pswASpace[NP],
         swNormShift,
         swActShift,
         swNormProd,
         swRcOverE,
         swDiv,
        *pswSwap,
        *pswTmp,
        *pswA;

  Longword L_temp;

  short int siUnstableFlt,
         i,
         j;                            /* Loop control variables */

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

  /* Initialize starting addresses for temporary buffers */
  /*-----------------------------------------------------*/

  pswA = pswASpace;
  pswTmp = pswTmpSpace;

  /* Copy the direct form filter coefficients to a temporary array */
  /*---------------------------------------------------------------*/

  for (i = 0; i < NP; i++)
  {
    pswA[i] = pswAin[i];
  }

  /* Initialize the flag for filter stability check */
  /*------------------------------------------------*/

  siUnstableFlt = 0;

  /* Start computation of the reflection coefficients, Rc[9],...,Rc[1] */
  /*-------------------------------------------------------------------*/

  for (i = NP - 1; i >= 1; i--)
  {

    pswRc[i] = shl(pswA[i], swAshift); /* write Rc[i] to output array */

    /* Check the stability of i-th reflection coefficient */
    /*----------------------------------------------------*/

    siUnstableFlt = siUnstableFlt | isSwLimit(pswRc[i]);

    /* Precompute intermediate variables for needed for the computation */
    /* of direct form filter of order i-1                               */
    /*------------------------------------------------------------------*/

    if (sub(pswRc[i], SW_MIN) == 0)
    {
      siUnstableFlt = 1;
      swRcOverE = 0;
      swDiv = 0;
      swActShift = 2;
    }
    else
    {
      L_temp = LW_MAX;                 /* Load ~1.0 into accum */
      L_temp = L_msu(L_temp, pswRc[i], pswRc[i]);       /* 1.-Rc[i]*Rc[i]  */
      swNormShift = norm_l(L_temp);
      L_temp = L_shl(L_temp, swNormShift);
      swNormProd = extract_h(L_temp);
      swActShift = add(2, swNormShift);
      swDiv = divide_s(0x2000, swNormProd);
      swRcOverE = mult_r(pswRc[i], swDiv);
    }
    /* Check stability   */
    /*---------------------*/
    siUnstableFlt = siUnstableFlt | isSwLimit(swRcOverE);

    /* Compute direct form filter coefficients corresponding to */
    /* a direct form filter of order i-1                        */
    /*----------------------------------------------------------*/

    for (j = 0; j <= i - 1; j++)
    {
      L_temp = L_mult(pswA[j], swDiv);
      L_temp = L_msu(L_temp, pswA[i - j - 1], swRcOverE);
      L_temp = L_shl(L_temp, swActShift);
      pswTmp[j] = round(L_temp);
      siUnstableFlt = siUnstableFlt | isSwLimit(pswTmp[j]);
    }

    /* Swap swA and swTmp buffers */
    /*----------------------------*/

    pswSwap = pswA;
    pswA = pswTmp;
    pswTmp = pswSwap;
  }

  /* Compute reflection coefficient Rc[0] */
  /*--------------------------------------*/

  pswRc[0] = shl(pswA[0], swAshift);   /* write Rc[0] to output array */

  /* Check the stability of 0-th reflection coefficient */
  /*----------------------------------------------------*/

  siUnstableFlt = siUnstableFlt | isSwLimit(pswRc[0]);

  return (siUnstableFlt);
}

/***************************************************************************
 *
 *   FUNCTION NAME: a_sst
 *
 *   PURPOSE:
 *
 *     The purpose of this function is to perform spectral smoothing of the
 *     direct form filter coefficients
 *
 *   INPUTS:
 *
 *     swAshift
 *                     number of shift for coefficients
 *
 *     swAscale
 *                     scaling factor for coefficients
 *
 *     pswDirectFormCoefIn[0:NP-1]
 *
 *                     array of input direct form coefficients
 *
 *   OUTPUTS:
 *
 *     pswDirectFormCoefOut[0:NP-1]
 *
 *                     array of output direct form coefficients
 *
 *   RETURN VALUE:
 *
 *     none
 *
 *   DESCRIPTION:
 *
 *     In a_sst() direct form coefficients are converted to
 *     autocorrelations, and smoothed in that domain.  The function is
 *     used in the spectral postfilter.  A description can be found in
 *     section 3.2.4 as well as in the reference by Y. Tohkura et al.
 *     "Spectral Smoothing Technique in PARCOR Speech
 *     Analysis-Synthesis", IEEE Trans. ASSP, vol. ASSP-26, pp. 591-596,
 *     Dec. 1978.
 *
 *     After smoothing is performed conversion back to direct form
 *     coefficients is done by calling aFlatRc(), followed by rcToADp().
 *
 *     The spectral smoothing filter coefficients with bandwidth set to 300
 *     and a sampling rate of 8000 be :
 *     static ShortwordRom psrSST[NP+1] = { 0x7FFF,
 *         0x7F5C, 0x7D76, 0x7A5B, 0x7622, 0x70EC,
 *         0x6ADD, 0x641F, 0x5CDD, 0x5546, 0x4D86
 *     }
 *
 *   REFERENCES: Sub_Clause 4.2.4 of GSM Recomendation 06.20
 *
 *   KEYWORDS: spectral smoothing, direct form coef, sst, atorc, atocor
 *   KEYWORDS: levinson
 *
 *************************************************************************/

static void a_sst(Shortword swAshift, Shortword swAscale,
                         Shortword pswDirectFormCoefIn[],
                         Shortword pswDirectFormCoefOut[])
{

/*_________________________________________________________________________
 |                                                                         |
 |                           Local Static Variables                        |
 |_________________________________________________________________________|
*/

  static ShortwordRom psrSST[NP + 1] = {0x7FFF,
    0x7F5C, 0x7D76, 0x7A5B, 0x7622, 0x70EC,
    0x6ADD, 0x641F, 0x5CDD, 0x5546, 0x4D86,
  };

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/

  Longword pL_CorrTemp[NP + 1];

  Shortword pswRCNum[NP],
         pswRCDenom[NP];

  short int siLoopCnt;

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

  /* convert direct form coefs to reflection coefs */
  /* --------------------------------------------- */

  aToRc(swAshift, pswDirectFormCoefIn, pswRCDenom);

  /* convert to autocorrelation coefficients */
  /* --------------------------------------- */

  rcToCorrDpL(swAshift, swAscale, pswRCDenom, pL_CorrTemp);

  /* do spectral smoothing technique */
  /* ------------------------------- */

  for (siLoopCnt = 1; siLoopCnt <= NP; siLoopCnt++)
  {
    pL_CorrTemp[siLoopCnt] = L_mpy_ls(pL_CorrTemp[siLoopCnt],
                                      psrSST[siLoopCnt]);
  }

  /* Compute the reflection coefficients via AFLAT */
  /*-----------------------------------------------*/

  aFlatRcDp(pL_CorrTemp, pswRCNum);


  /* Convert reflection coefficients to direct form filter coefficients */
  /*-------------------------------------------------------------------*/

  rcToADp(swAscale, pswRCNum, pswDirectFormCoefOut);
}

/**************************************************************************
 *
 *   FUNCTION NAME: agcGain
 *
 *   PURPOSE:
 *
 *     Figure out what the agc gain should be to make the energy in the
 *     output signal match that of the input signal.  Used in the post
 *     filters.
 *
 *   INPUT:
 *
 *      pswStateCurr[0:39]
 *                     Input signal into agc block whose energy is
 *                     to be modified using the gain returned. Signal is not
 *                     modified in this routine.
 *
 *      snsInSigEnergy
 *                     Normalized number with shift count - the energy in
 *                     the input signal.
 *
 *      swEngyRShft
 *                     Number of right shifts to apply to the vectors energy
 *                     to ensure that it remains less than 1.0
 *                     (swEngyRShft is always positive or zero)
 *
 *   OUTPUT:
 *
 *      none
 *
 *   RETURN:
 *
 *      the agc's gain/2 note DIVIDED by 2
 *
 *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人妖av一区二区| 韩国成人福利片在线播放| 久久午夜电影网| 欧美日韩一级视频| 精品国产乱码久久久久久牛牛 | 亚洲一区二区三区四区在线 | 欧美系列在线观看| 色94色欧美sute亚洲线路二| kk眼镜猥琐国模调教系列一区二区| 国产一区二区三区香蕉| 久久精品国产亚洲5555| 久久不见久久见免费视频7| 免费成人性网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本欧美在线看| 日韩精品一级二级| 婷婷激情综合网| 一区二区三区在线视频观看| 亚洲欧美中日韩| 欧美三级蜜桃2在线观看| 成人福利视频在线| 国产精品一区二区三区四区| 成人97人人超碰人人99| 精品一区二区三区免费毛片爱| 午夜影视日本亚洲欧洲精品| 青青草成人在线观看| 亚洲成人7777| 天天爽夜夜爽夜夜爽精品视频| 欧美一区中文字幕| 久久九九久久九九| 国产亚洲精久久久久久| 日韩一区二区视频在线观看| 国产色综合一区| 国产午夜精品福利| 欧美一区二区高清| 久久久另类综合| 久久久久久久久久久久电影| 久久午夜色播影院免费高清| 椎名由奈av一区二区三区| 日韩欧美123| 91尤物视频在线观看| 懂色中文一区二区在线播放| 免费一级欧美片在线观看| 亚洲图片一区二区| 日本欧美韩国一区三区| 国产欧美视频一区二区三区| 国产亚洲精品bt天堂精选| 极品少妇xxxx精品少妇偷拍| 亚洲国产中文字幕在线视频综合| 国产精品视频九色porn| 日本一区二区三级电影在线观看| 久久一区二区视频| 日本一区二区三区国色天香 | 久久亚区不卡日本| 亚洲最新视频在线观看| 美女一区二区视频| 国产一区二区在线视频| 91麻豆国产福利精品| 色欧美乱欧美15图片| 这里只有精品免费| 久久婷婷国产综合国色天香| 国产精品色在线观看| 九九精品一区二区| 91麻豆产精品久久久久久| 欧美午夜片在线观看| 国产精品久久久久久久久动漫 | 欧美激情一区二区| 一区二区三区中文在线| 久久国产生活片100| 午夜精品久久久久久久久久久| 精品在线观看免费| 在线影视一区二区三区| 日韩欧美国产不卡| 一区二区三区日韩| 六月丁香婷婷久久| 欧美日韩久久一区二区| 国产欧美日韩麻豆91| 日韩精品电影在线| 成人黄色一级视频| 欧美一区二区私人影院日本| 自拍视频在线观看一区二区| 激情综合色综合久久综合| 久久综合久久综合久久综合| 亚洲国产cao| 色综合天天综合网天天狠天天| 国产精品国产三级国产有无不卡| 久久国产剧场电影| 国产精品三级av| 春色校园综合激情亚洲| 精品日韩欧美在线| 日韩综合小视频| 91免费在线视频观看| 久久免费电影网| 久久超级碰视频| 国产欧美综合色| 久久草av在线| 91精品国产麻豆国产自产在线 | 欧美日韩国产片| 国产精品国产三级国产aⅴ原创 | 亚洲综合色噜噜狠狠| 精品一区二区三区免费播放| 欧美色综合久久| 亚洲电影在线播放| av在线一区二区| 精品女同一区二区| 国产精品99久久久久久久vr| 91精品免费观看| 蜜桃av噜噜一区| 欧美无乱码久久久免费午夜一区| 中文一区在线播放 | 欧美成人精品福利| 日本中文字幕一区| 欧美mv日韩mv亚洲| 亚洲免费在线观看视频| 91搞黄在线观看| 亚洲欧美影音先锋| 不卡一区中文字幕| 国产精品久久久久久久第一福利| 日韩福利电影在线| 在线视频你懂得一区二区三区| 奇米四色…亚洲| 欧美精品一区二区三区蜜桃视频| 日韩亚洲欧美在线观看| 国产成人精品免费视频网站| 欧美一区二区在线免费观看| 久久精品国产亚洲一区二区三区| 精品久久国产字幕高潮| 蜜桃av一区二区三区电影| 精品久久久久久久久久久久久久久 | 91亚洲永久精品| 亚洲综合图片区| 中文字幕精品一区| 久久精品国产久精国产爱| 精品国产麻豆免费人成网站| 色呦呦国产精品| 亚洲成人777| 久久久久久影视| 日韩视频一区二区在线观看| 亚洲综合色婷婷| 亚洲精品一区二区三区香蕉| 欧美性感一区二区三区| 日韩av电影一区| 国产欧美一区二区精品婷婷| 精品国产免费视频| 丝袜亚洲另类欧美| 亚洲一区二区三区三| 日本一区二区成人| 日产精品久久久久久久性色| 欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩一区久久| 亚洲精品免费播放| 国产欧美日本一区二区三区| 精品视频一区二区三区免费| 亚洲一区二区三区中文字幕| 粉嫩高潮美女一区二区三区 | 欧美日韩激情一区二区| 大尺度一区二区| 亚洲精品老司机| 精品国产亚洲在线| 在线亚洲+欧美+日本专区| 国产精品高潮呻吟| 日韩免费高清av| 欧美综合欧美视频| 一区二区三区免费在线观看| 亚洲第一主播视频| 一区二区在线观看视频在线观看| 日韩精品资源二区在线| 日本一区二区电影| 亚洲欧美电影院| 日韩一区二区三区三四区视频在线观看| 青娱乐精品在线视频| 黑人巨大精品欧美黑白配亚洲| 亚洲精品免费播放| 欧美日本视频在线| 日韩精品一区二区三区中文精品 | 91精品国产综合久久国产大片| 欧美日韩国产精选| 欧美视频一区二区在线观看| 精品一区二区av| 风间由美中文字幕在线看视频国产欧美| 婷婷综合另类小说色区| 精品国产一区二区在线观看| 正在播放一区二区| 成人av动漫在线| 国产精品福利一区二区| 日韩欧美综合在线| 99免费精品视频| 亚洲国产日韩精品| 亚洲色图欧洲色图婷婷| 91精品国模一区二区三区| 精品精品国产高清一毛片一天堂| 成人一道本在线| 91啦中文在线观看| 日韩你懂的在线播放| 欧美在线综合视频| www..com久久爱| 欧美大片免费久久精品三p| 成人精品在线视频观看| 国产欧美日韩精品一区| 美国毛片一区二区三区|