預加重及C代碼

来源:互联网 发布:双显卡交火软件 编辑:程序博客网 时间:2024/05/01 17:20

 

預加重及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;

}

}

 

原创粉丝点击