預加重及C代碼

    技术2022-05-19  24

     

    預加重及C代碼

     

    預加重的作用

    預加重是提高信號高頻部分,使得低頻部分到高頻部分的頻譜平穩。使低頻到高頻的信噪比一樣。經常在頻譜分析中使用。

     

    在語音頻譜分析中,我們為什麼要使用預加重?

    語音信號中由於人聲的激勵,使得頻譜低頻向高頻呈跌落狀態,也就是說高頻比低頻的成分少,高頻比低頻難求。所以在頻譜分析之前我們需要對時域語音信號進行預加重。

     

    以下是預加重的C代碼

    pfData 是輸入語音信號

    fMem   用於保存計算中語音信號的前一個信號值pfData[i-1]

    fPreemph 預加重值,值在0.0~1.0區間,值越大,高頻提高的程度越高

    nFrameSize pfData的個數

    void PreEmphasis(float* pfData, int nFrameSize, float fPreemph, float& fMem)

    {

    float fTmp = 0;

    for(int i = 0; i < nFrameSize; i++)

    {

    fTmp = pfData[i] - fPreemph * fMem;

    fMem = pfData[i];

    pfData[i] = fTmp;

    }

    }

     


    最新回复(0)