欢迎来到天天文库
浏览记录
ID:34008384
大小:87.00 KB
页数:9页
时间:2019-03-03
《线性预测中的自相关系数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、线性预测中的自相关系数1.原理线性预测是语音编码中的基本算法,其基本原理如下:设语音信号的样值序列,第k时刻的取样值xk可以用之前的P个样值的线性组合来预测。实际样值与预测值之间的误差为:因此预测系统的传递函数为:其中H(Z)是一个全极点滤波器,称为综合滤波器。A(Z)是H(Z)的逆滤波器,称为分析滤波器。在语音线性预测编码中,A(Z)的系数反映了声道特性。为了使预测误差最小,采用最小均方误差准则,即使误差的均方值最小。在预测阶数P给定后,就是所有预测系数的函数,因此:可见,要使的预测误差最小,则必须与所有数据正交,称为正交性原理。将上式展开,可得:其中,即信号的自相关系
2、数。对平稳信号(语音信号一般不是平稳信号,但对单独处理的每帧来说,可以近似认为是短时平稳信号)来说,因此,可以得到:解此线性方程组,即可得到各预测系数。一般采用Levison-Durbin算法递推求解。在已知输入信号的情况下,必须先求各阶自相关系数。2.G.729中的线性预测ITU-TG.729语音编码标准采用CS-ACELP混合编码方法,输出码率为8kbps,每帧语音长度10ms,在8kHz采样条件下,具有80个样点。在线性预测时一般采用连续3帧进行加窗处理后进行,因此计算自相关系数的数组具有240个样点值。下面是G.729参考代码中的相关程序部分,并附加说明。void
3、Autocorr(Word16x[],/*(i):Inputsignal*/Word16m,/*(i):LPCorder*/Word16r_h[],/*(o):Autocorrelations(msb)*/Word16r_l[]/*(o):Autocorrelations(lsb)*/){Word16i,j,norm;Word16y[L_WINDOW];Word32sum;externFlagOverflow;/*Windowingofsignal*/for(i=0;i4、puter[0]andtestforoverflow*/do{Overflow=0;sum=1;/*Avoidcaseofallzeros*/for(i=0;i5、ract(sum,&r_h[0],&r_l[0]);/*PutinDPFformat(seeoper_32b)*//*r[1]tor[m]*/for(i=1;i<=m;i++){sum=0;for(j=0;j6、7、8、Fu9、nctionName:mult_r10、11、12、13、Purpose:14、15、16、17、Sameasmultwithrounding,i.e.:18、19、mult_r(var1,var2)=shr(((var1*var2)+16384),15)and20、21、mult_r(-32768,-32768)=32767.22、23、24、25、Complexityweight:226、27、28、29、Inputs:30、31、32、33、var134、35、16bitshortsignedinteger(Word16)whosevaluefallsinthe36、37、range:0xffff8000<=var1<=0x00007fff.38、39、40、41、var242、43、16bitsh44、ortsignedinteger(Word16)whosevaluefallsinthe45、46、range:0xffff8000<=var1<=0x00007fff.47、48、49、50、Outputs:51、52、53、54、none55、56、57、58、ReturnValue:59、60、61、62、var_out63、64、16bitshortsignedinteger(Word16)whosevaluefallsinthe65、66、range:0xffff8000<=var_out<=0x00007fff.67、68、___________________________________________
4、puter[0]andtestforoverflow*/do{Overflow=0;sum=1;/*Avoidcaseofallzeros*/for(i=0;i5、ract(sum,&r_h[0],&r_l[0]);/*PutinDPFformat(seeoper_32b)*//*r[1]tor[m]*/for(i=1;i<=m;i++){sum=0;for(j=0;j6、7、8、Fu9、nctionName:mult_r10、11、12、13、Purpose:14、15、16、17、Sameasmultwithrounding,i.e.:18、19、mult_r(var1,var2)=shr(((var1*var2)+16384),15)and20、21、mult_r(-32768,-32768)=32767.22、23、24、25、Complexityweight:226、27、28、29、Inputs:30、31、32、33、var134、35、16bitshortsignedinteger(Word16)whosevaluefallsinthe36、37、range:0xffff8000<=var1<=0x00007fff.38、39、40、41、var242、43、16bitsh44、ortsignedinteger(Word16)whosevaluefallsinthe45、46、range:0xffff8000<=var1<=0x00007fff.47、48、49、50、Outputs:51、52、53、54、none55、56、57、58、ReturnValue:59、60、61、62、var_out63、64、16bitshortsignedinteger(Word16)whosevaluefallsinthe65、66、range:0xffff8000<=var_out<=0x00007fff.67、68、___________________________________________
5、ract(sum,&r_h[0],&r_l[0]);/*PutinDPFformat(seeoper_32b)*//*r[1]tor[m]*/for(i=1;i<=m;i++){sum=0;for(j=0;j6、7、8、Fu9、nctionName:mult_r10、11、12、13、Purpose:14、15、16、17、Sameasmultwithrounding,i.e.:18、19、mult_r(var1,var2)=shr(((var1*var2)+16384),15)and20、21、mult_r(-32768,-32768)=32767.22、23、24、25、Complexityweight:226、27、28、29、Inputs:30、31、32、33、var134、35、16bitshortsignedinteger(Word16)whosevaluefallsinthe36、37、range:0xffff8000<=var1<=0x00007fff.38、39、40、41、var242、43、16bitsh44、ortsignedinteger(Word16)whosevaluefallsinthe45、46、range:0xffff8000<=var1<=0x00007fff.47、48、49、50、Outputs:51、52、53、54、none55、56、57、58、ReturnValue:59、60、61、62、var_out63、64、16bitshortsignedinteger(Word16)whosevaluefallsinthe65、66、range:0xffff8000<=var_out<=0x00007fff.67、68、___________________________________________
6、
7、
8、Fu
9、nctionName:mult_r
10、
11、
12、
13、Purpose:
14、
15、
16、
17、Sameasmultwithrounding,i.e.:
18、
19、mult_r(var1,var2)=shr(((var1*var2)+16384),15)and
20、
21、mult_r(-32768,-32768)=32767.
22、
23、
24、
25、Complexityweight:2
26、
27、
28、
29、Inputs:
30、
31、
32、
33、var1
34、
35、16bitshortsignedinteger(Word16)whosevaluefallsinthe
36、
37、range:0xffff8000<=var1<=0x00007fff.
38、
39、
40、
41、var2
42、
43、16bitsh
44、ortsignedinteger(Word16)whosevaluefallsinthe
45、
46、range:0xffff8000<=var1<=0x00007fff.
47、
48、
49、
50、Outputs:
51、
52、
53、
54、none
55、
56、
57、
58、ReturnValue:
59、
60、
61、
62、var_out
63、
64、16bitshortsignedinteger(Word16)whosevaluefallsinthe
65、
66、range:0xffff8000<=var_out<=0x00007fff.
67、
68、___________________________________________
此文档下载收益归作者所有