线性预测及其Matlab实现
曾 华,李伟,谭艳梅
(广西机电职业技术学院广西南宁 530007)
摘要:介绍线性预测编码(LPC)及其基本原理,由语音信号常用的全极点模型的传递函数推导出线性预测方程,然后
简要讲述了G.729中线性预测分析的基本原理。重点是使用Matlab实现G.729中LPC算法,首先阐述了加窗和自相关函
数计算,并附上了Matlab的程序说明以及加窗前后运行结果图;最后,列出了求解线性预测滤波器系数经典的‘Levinson—
Durbin算法,同时给出了该算法的Matlab程序描述。利用Matlab程序进行线性预测,可以很直观地知道分析结果,为下一
步将算法在DSP上的实现奠定基础。
关键词:线性预测;Matlab;Levinson—Durbin算法;G.729
中图分类号:TN91
文献标识码:B
文章编号:1004—373X(2009)07—133一03
Linear Predicti蚰Coding and Its Implementati佃Based on Matlab
CAO Hua,LI Wei,TAN Yanmei
(Gu锄gxi Tech∞logicaI Colkge of Machi扯ry¨d Electricity,Nanning·530007,China)
Abstract:The principle of LPC and its encoding algorithm are mainly discussed.It is deduced the linear prediction equation
from the aU—pole model which is commonly used in the speech sigml.And then it gives a description of the linear prediction
analysis in G.729.Above all,it explains the implementation of Linear Prediction Coding(LPC)algorithm based on Matlab.At
first,it tells the window and the computation of auto—correlation,then gives the program of lvlatlab and the picture of win—
dowed result.At last,it lists the classic Levinson—Durbin algorithm for linear prediction coefficients,at the same time it gives
the program too.The allal”icalresult can be gained by Matlab linear prediction,and make a foundation for DSP.
KeywOrds:linear prediction;Matlab;Levinson—Durbin algorithm;G.729
线性预测分析是现代语音信号处理中最核心的技
术之一,为现代语音信号处理的飞速发展立下了赫赫功
劳,在语音分析、合成、编码、识别等方面都有着广泛的
应用,至今仍是最有效的语音分析技术之一。如VoIP
和H.323网上多媒体通信系统中所使用的G.729 CS—
ACELP语音编码算法就是一种以共轭代数码本激励
线性预测为基础的高质量的语音编码标准u]。
l线性预测的基本原理
在语音信号处理中最常用的模型是全极点模型[2]。
线性预测所包含的基本概念是,通过使实际语音抽样和
线性预测抽样之间差值的平方和达到最小值,即进行最
小均方误差的逼近,能够决定惟一的一组预测器系数。
如果一个随机过程用一个夕阶全极点系统受白噪声激
励产生的输出来模拟,设这个系统的传递函数为:
收稿日期:2008一09—04
基金项目:广西省教育厅项目《嵌入式VoIP语音罔关)
(200608LX232)
万方数据
H(力一滁2去一忐(1)
其中:户是预测器阶数;G是声道滤波器增益。由此,语
音抽样s(疗)和激励信号P(,1)之间的关系可用下列差分
方程来表示:
s(,2)=Q(,1)+∑口芦(,z—i)
p
(2)
即语音样点间有相关性,可以用过去的样点值预测
未来样点值。对于浊音,激励e(,z)是以基音周期重复
的单位冲激;对于清音P(挖)是平稳白噪声。
在模型参数估计过程中,把如下系统称为线性预
测器:
一
;(咒)一∑口岱(行一i)
i—l
(3)
式中:口。称为线性预测系数。从而,夕阶线性预测器的系
统函数具有如下形式:
p
P(z)=∑蟛一‘
(4)
在式(1)中的A(z)称作逆滤波器,基传输函数为:
133
盹,一·一妻唯一一搿
预测误差e(咒)为:
’
e(,1)=s(咒)一∑口f5(行一f)一&(以)
f11
(5)
(6)
而线性预测方程可以按如下方法得到:把某一帧内
的短时平均预测误差定义为:
图1所利。
匕]二工=[]琵冱Z瑟互区盈§篷§[卫子帧
T1518680-95/∞5
图1
LP分析中的加窗过程
加窗语音57(,2)为:
s7(珂)=∞LP(挖)s(雄), 咒一0,1,…,239
(12)
E{e2(,1))=E{[s(,1)一∑口≯(,2一f)]2)
(7)
i—l
户
对应的自相关函数,.(愚)为:
239
为使E{e2(,1))最小,对劬求偏导,并令其为零,有:
户
E{[s(咒)一∑口岱(咒一i)]s(咒一_f))一o,
f11
歹=1,2,…,夕
(8)
由此可计算出预测系数。
由于语音信号的短时平稳性,要分帧处理(10~
30 n塔),对于一帧从咒时刻开窗选取的N个样点的语音
段s(疗),记为瓯(.f,1)‘引:
r(五)=1乏:s 7(咒)s7(靠一是), 忌=o,1,…,lo(13)
”=^
其Matlab描述如下:
%=一一加窗(混合窗)=一一
for n一((k一1)*240+1):((k一1)*240+200)
m—n一(k一1)*240;
w(n)一O.54一O.46*cos(2*pi*(m一1)/399)’
%1/2 hamming窗
s(n)=sn(n)*w(n)I
end
for n=((k一1)*240+201):(k*240)
m=n一(k一1)*240;
w(n)=cos(2‘pi*(m一201)/159), %1/4余弦窗
s(n)=sn(n)*w(n);
蛾(J,i)一E{s。(m一_『)如(仇一i)}
(9)
end
end
2
G.729中线性预测分析的基本原理
得到加窗如图2所示。
用10阶线性预测(LP)作短时分析,LP合成滤波
器定义为: 南2高 .q∞
1+>:口fz一‘
这里的三。(i一1,2,…,10)是量化线性预测系数。用
30 ms非对称窗加权5(,1),求80个样点(10 ms)自相关
系数,用Levinson算法求LP系数,然后转化为LSP系
数,在LSP域量化和内插。
3在Matlab上实现线性预测
。
3.1加窗和自相关函数计算
G.729语音编码算法大多是用C语言编程实现
的,程序显得格外冗长,有一定的局限性。由于MatIab
在数据分析、自动控制、数字信号处理、绘图等方面具有
强大的功能,为了直观的表述,就运用Matlab来实现线
性预测分析这一部分的算法。
图1给出了混合窗的示意图,它由两部分构成,前
半部分是1/2个哈明窗;后半部分是1/4余弦函数:
图2 加窗前后语膏比较图
3.2
LP系数的求取
求解线性预测滤波器系数口。,将使用到最经典的
Levinson—Durbin算法。该算法的步骤为:
(1)E一民(O);
卜1
(2)五;=[R。(i)一∑口f1R。(i一歹)]/砑1;
j;l
(3)n;一是i;
。
f0.54圳.46叫嚣)讲_o,1’…’199
吣一{瞄丛笔某业’,行二200'201'…'239
I cos————.;了弓■——一,行=二uu'二u上'…'二6了
【
∞了
q”
(4)口;一口f1一是一舄,1≤歹
骤(1)~(4)可对J=1,2,…,P进行递推求解,其中:E
z一一缸(order,:)l
为最小均方预测误差;R为自相关系数;足表示反射系
数,取值范围为[一1,1];口;表示i阶预测器的第歹个系
数。通过运算发现,其实在计算过程中,虽然目标是计算
一个户阶线性预测器的全部系数,但实际上在递推过程
中仅算出了所有除数低于p阶线性预测器的全部系数,
同时计算出了最小预测误差能量(递推式中反射系数的
取值范围是保证系统H(z)稳定性的充分必要条件,即
多项式A(z)的全部根都落在单位圆内)。
4结 语
线性预测在语音处理方面的应用很广泛,而用
Matlab来实现可以很直观地知道分析结果,为下一步
将算法在DSP上的实现奠定基础。目前,语音处理最
普遍的就是使用到网络上,而基于现代网络VoIP使用
到的语音编码中G.729正是其中一种。它的出现,使
用户能借助两台PC传输语音,也可以把PC上的语音
从推导中得知,蛾(歹,i)的物理意义可以理解为晶
转到手机上,交互式游戏爱好者们相互之间还可以借助
的短时自相关函数。因此,它反映了语音波形的实际情
高科技控制器进行交流。
况,即波形不同,值也不同。然而口;的取值由①。(_『,f)决
定,并随蛾(_『,i)的改变而改变,因此也可以说口。反映
参考文献
了语音波形的实际情况[3]。
其Matlab描述如下:
function z—durbinl(y,order)
R=zeros(1,order+1);
aa—zeros(order,order);
parcor=zeros(1,order),
%autocorrelation
N—size(y,1);
for h—l:order+1
R(h)=Ol
for f=h:N
R(h)一R(h)+y(f)。y(f—h+1);
end
end
parcor(1)一R(2)/R(1),
aa(1,1)=parcor(1);
E=(1一parcor(1)‘2)*R(1);
for h=2:order
temp=O;
for f一1:h一1
temp=t咖p+aa(h一1,f)*R(h—f+1);
end
parcor(h)一(R(h+1)一temp)/E;
%反射系数
aa(h,h)一parcor(h);
for f一1:h一1
aa(h,f)一aa(h一1,f)一parcor(h)*8a(h一1,h—f),
end
E=E*(1一parcor(h)‘2)l
end
[1]吴家安.现代语音编码技术[M].北京:科学出版社,2008.
[2]柏静,韦岗.一种基于线性预测与自相关函数法的语音基音
周期检测新算法[J].电声技术,2005(8):43—46.
[3]王涌,何剑春,刘盛.新型的神经网络线性预测语音编码算
法[J].浙江工业大学学报,2007,35(2):65—68.
[4]薛年喜.Matlab在数字信号处理中的应用[M].2版.北京:
清华大学出版社,2008.
[5]朱蓉。黄冰.EVRC语音编码算法研究及仿真口].现代电子
技术,2006,29(2):47—50.
[6]范晶,和应民,王桂梅.2.4 Kb/s混合激励线性预测语音编
码的研究口].牡丹江师范学院学报,2007(4);13—14.
[7]丛键,张知易.一种600 b/s极低速率语音编码算法[J].电
子与信息学报,2007,29(2):429—433.
[8]论:VoIP语音技术与传统网络的融合发展[EB/oL].
http://voip.microvoip.com/market/m1/200803/61433.ht—
ml,2008.
:
[9]语音技术在Internet上的新应用[EB/0L].http z//nc.mof-
com.gov.cn/news/1056746.html,2006.
[10]Rapidshare Advances in Audio and speech signal Process—
ing:Technologies and Applications[DB/OL].http://rap—
idsllare.com/fiIes/31791068/IGI.rar.html,2007.
07》,÷,口,》,j707》)_》,>,一≯)^≯,》,÷,j,070,÷7々,》’_≯卜≯}≯卜,=卜≯—≯卜》,6≯070767÷707》70,o,o,3,o,37,,076,,7÷,o,÷70,070,o’●7
(上接第125页)
参考文献
[1]吴仲城.多维力传感器设计及信号分析方法研究[D].北京:
中国科学院等离子体物理研究所,2001.
Organic Optics and 0ptoelectronics[A].IEEE/LEOs sum—
mer Topical Meetings[C].1998.
[4]熊幸果,陆德仁.微力微位移的天平测试方法[J].传感技术
学报,1997,10(2):47—52.
[2]Te靴s Instruments.Mscl210 user’s Guide[z].2002.
[5]洪跃,金士良.新型微位移电容式传感器的研制[J].上海大
[3] Sawada R,Higurashi E.Integrated Micr0一displacement
Sensor that can be Incorporated into Mini 3一dimensional
Actuator Stage.Broadband Optical Networks and Technolo—
gies:An Emerging Reality/0ptical MEMs/Sr∞rt PixeIs/
学学报,1995,1(6):652—657.
[6]胡永建,王晓梅.基于MScl210的多路高精度温度采集系
统模块[J].电子技术应用,2003,29(7):36—38.
[7]Te期s Intruments.Mscl210 Data sheet[z].
作者简介沈春山 项士研究生。主要研究方向为机器人传感器。
135
万方数据
线性预测及其Matlab实现
作者:
曹华, 李伟, 谭艳梅, CAO Hua, LI Wei, TAN Yanmei
作者单位:
刊名:
广西机电职业技术学院,广西,南宁,530007
现代电子技术
英文刊名:
MODERN ELECTRONICS TECHNIQUE
年,卷(期):
2009,32(7)
1次
被引用次数:
参考文献(10条)
1.吴家安 现代语音编码技术 2008
2.柏静.韦岗 一种基于线性预测与自相关函数法的语音基音周期检测新算法[期刊论文]-电声技术 2005(08)
3.王涌.何剑春.刘盛 新型的神经网络线性预测语音编码算法[期刊论文]-浙江工业大学学报 2007(02)
4.薛年喜 Matlab在数字信号处理中的应用 2008
5.朱蓉.黄冰 EVRC语音编码算法研究及仿真[期刊论文]-现代电子技术 2006(02)
6.范晶.和应民.王桂梅 2.4 Kb/s混合激励线性预测语音编码的研究 2007(04)
7.丛键.张知易 一种600 b/s极低速率语音编码算法[期刊论文]-电子与信息学报 2007(02)
8.论:VoIP语音技术与传统网络的融合发展 2008
9.语音技术在Internet上的新应用 2006
10.Rapidshare Advances in Audio and Speech Signal Processing:Technologies and Applications 2007
相似文献(10条)
1.学位论文 鄂慧颖 G.729语音编码算法的研究 2007
语音压缩编码技术是数字通信技术中非常重要的部分。随着通信、计算机网络等技术的飞速发展,语音压缩编码技术得到了快速发展和广泛应用。
CELP编码是上世纪八十年代发展起来的一种有效的语音压缩编码方案,现已广泛地应用于集群通信、多媒体通信以及IP电话通信中。
G.729协议是CELP编码方案的一个特例,它是ITU-T推荐的语音压缩编码中最复杂的一种,它使用了当前语音压缩编码的各种先进技术,计算量较大
,但是其编码合成语音质量较高,具有很高的研究价值。
本文首先对G729协议的编解码方案及协议中应用的关键语音编码技术进行了剖析,在对G.729协议编码方案进行深入研究的基础上,对矢量量化算
法进行了优化,减少了矢量码本搜索的复杂度,加快了矢量码本搜索速度;对固定码本搜索算法进行了改进,提出了一种自适应子矢量共轭结构代数码
本激励算法,该算法保持了G.729共轭结构代数码本的优点,使编码传输速率从原来的8kbps降低倒7.2kbps,压缩了传输带宽,更重要的是,它的算法
复杂度仅为原G.729固定码本搜索算法复杂度的1/2左右;最后,本文用MATLAB搭建了编码器仿真平台,对改进算法进行了验证,仿真结果表明,改进后
的编码器在降低算法复杂度和传输速率的前提下,译码合成语音质量仍然较高,具有较好的可懂度、清晰度和自然度。
2.期刊论文 汤婕 多脉冲激励线性预测声码器的仿真实验分析 -科技与生活2010,""(3)
本文主要介绍了用MATLAB工具实现多脉冲激励线性预测(MPLPC)声码器.首先概述了多脉冲激励线性预测声器的编码方法,并用MATLAB做了仿真实现先
对语音信号进行线性预测分析,然后利用分析合成法对语音信号进行重构,并用到了量化编码.
3.学位论文 范晶 混合激励线性预测语音编码的算法研究 2008
随着通信技术以及互联网语音实时传输技术的迅速发展,对语音的传输速率和存储容量都提出了很高的要求,解决这些问题的主要途径之一就是语
音编码。因此,语音编码的研究,特别是低速率语音编码的研究,具有十分重要的实用意义。
在现有的语音编码研究中,混合激励线性预测语音编码(MELP)是一种比较好的方法,它结合了二元激励、码激励和多带激励的优点,将短时语音段
划分为若干子带,在每个子带中分别进行清浊音判别;在合成端,采用周期性脉冲序列和随机噪声的混合序列去激励语音合成滤波器,能在较低的码率
下得到较好的再生语音。2.4kbps混合激励线性预测语音编码已经被确立为美国新的联邦语音编码标准。
本论文通过研究MELP的语音编解码算法的原理,对它的编解码过程做了比较深入的研究,我们发现在基音周期及线性预测系数量化这方面还可以进
行一定的改进。在标准MELP的算法中,对于那些包含有不规则周期的语音信号段,计算得到的互相关值较小,把它误认为是清音,因此会引入噪音。在
这里采用了一种改变基音周期的算法,使基音周期的计算更加精确。此外,在对LSF进行量化的过程中,其码本的存储量与计算的复杂度都很大。针对于
这一问题,我们提出了三级矢量量化的方法,从而可以把MELP的码率降到2.1kbps左右,仍有较好的合成语音质量。
本文最后在MATLAB编程环境下对MELP算法及其改进后的MELP算法进行了仿真,仿真结果表明经过解码后的语音信号及其改进后语音信号的输出波形
与原始语音信号的波形很相似,只是在能量较大的浊音段合成语音波形有相对较大的幅度以及有一定的时延,从而验证了该算法的可行性。
4.期刊论文 修其丽.XIU Qi-li 多脉冲激励线性预测声码器设计与Matlab仿真 -烟台职业学院学报2006,12(3)
由于在多脉冲激励线性预测声码器中要一次得到所有脉冲的位置和幅度是非常困难的,因此次优的序贯搜索方法被采用,即一次得到一个脉冲.用
Matlab仿真观察合成语音效果是可以接受的.
5.学位论文 杜志鑫 基于MELP低速率语音编码 2008
作为低速率语音编码的一种重要算法,MELP(mixed excitation linear prediction)算法是其中一种非常优秀的编码方法,它在原有的LPC(linear
prediction coder)编码的基础上,结合混合激励、多带激励、线性预测、矢量量化以及原型波形内插等编码方法的诸多优点,采用了一种新的更为符合
人发音机制的语音生成模型来合成语音,并运用自适应频谱增强等技术,提高合成语音与原始语音的匹配度,从而较好的实现了低码率的语音编码。
本论文通过研究MELP的语音编解码算法的原理,对它的编解码过程作了比较深入的研究,对其中的一些公式进行了理论推导,并作了仿真分析,最
后研究了该算法的MATLAB语言实现。
在对混合激励(MELP)算法进行了深入研究后,在本文最后选取一种800bit/s的语音编码方案。
6.期刊论文 龙银东.刘宇红.敬岚.乔卫民.LONG YINDONG.LIU YUHONG.JING LAN.QIAO WEIMIN 在MATLAB环境下实现
的语音识别 -微计算机信息2007,23(34)
介绍了一种基于MATLAB的多个特定人连接词语音识别的方法,并提出了在进行端点检测时,引入平均的概念能进一步提高识别率.此设计是以LPCC系数
、DTW算法为核心的基于图形界面的设计.通过大量的实验测试,表明该方法基本达到屏蔽外界环境的影响,具有非常高的精度识别.
7.学位论文 赖长庆 混合激励线性预测声码器算法的研究 2003
该文以美国联邦标准2.4kbps—MELP算法为基础,在MATLAB上建立起了分析MELP算法的软件平台,对其性能进行了分析并提出了一些改进的建议;另外
还针对MELP算法的特点对其软硬件实现进行了探讨. 该文的第二章介绍了MELP声码器模型的原理,对其特征进行了详细的阐述,重点分析了各个特征的本
质及其能够对提高合成语音质量起到的作用.第三章详细介绍了MELP声码器的基本算法,对其中采用的一些先进的技术手段如多级矢量量化(MSVQ)、高分
辨率基音检测方法(SRPDA)等进行了重点的讲述.另外还对MELP声码器中使用的一些技术进行了实验分析,检验其效能.第四章利用在MATLAB上搭建的分析
平台上对语音信号进行了编解码的试验,分析了MELP声码器的各种特征在语音编码中起到的作用.最后针对MELP声码器的特点,对其软硬件实现提出了建议
.
8.学位论文 刘斌 HYBRID-MELP/CELP语音压缩编码算法的研究 2005
语音压缩编码技术是信号处理技术的一个重要的组成部分,它使用了信号处理领域大量从基础性到前沿性的思想、理论和实践方法.作为信号处理的
主流学科之一,它的发展也一直是信号处理技术发展的重要促进力量.当今语音压缩编码算法主要分为侧重于对谱参数编码和侧重于对时间波形编码的两
个大的算法类型.混合激励线性预测MELP编码算法和码激励线性预测CELP编码算法是这两大类算法的主要代表.MELP算法的主要特点是使用了多带清浊音
判决,并且根据各频带清浊音的相对强度将清音成分和浊音成分按比例混合起来产生线性预测激励,其中的浊音激励成分采用傅立叶谱幅度的方法来表示
.CELP算法的主要特点是不区分语音信号的清浊音类型,而是统一使用基于AbS原理的时域波形匹配方法来产生线性预测激励,且该激励信号通过矢量码本
来表示.本文讨论了MELP和CELP算法的原理和具体实现方法,并且基于Matlab,主要是基于其Simulink工具对两种算法进行了仿真实现.针对MELP算法中基
音提取相对繁琐的特点,本文提出了一种简化的MELP基音提取算法.
9.期刊论文 纪友芳.刘桂斌.JI You-fang.LIU Gui-bin 一种改进的线性预测语音编码技术及实现 -计算机工程与
应用2009,45(15)
线性预测编码是实现语音编码的一项重要技术,介绍了线性预测编码技术的实现,提出一种改进型的声激励线性预测语音编码方法.最后,将简单LPC语
音编码与声激励LPC语音编码进行比较.实验结果表明,该方法能够很好地实现语音编码,声音效果也比简单LPC更理想.
10.学位论文 巫洪伟 4kb/s代数码本激励线性预测语音编码的算法研究 2007
随着通信技术以及互联网语音实时传输技术的迅速发展,对语音的传输速率和存储容量都提出了很高的要求,解决这些问题的主要途径之一就是语
音编码。
码本激励线性预测(CELP)是国际公认的中速率下最成功语音编码算法,CELP算法能够提供中速率高质量的合成语音,但是当编码速率降至4kb/s以下
时语音质量明显下降。为了提高量化效率,必须增加激励矢量的长度,这时还用很少的符号脉冲来描述激励信号就会导致语音质量的急剧下降,这也就
是传统的CELP算法在4kb/s编码速率以下质量难以提高的根本原因。
为此本文主要致力于研究在较少比特情况下优化代数码本激励,在G729算法的基础上,以20ms为一语音帧进行编解码,使传输速率降为G729语音编
码算法的一半,从而提出了一种具有较短延时和较低运算量的4kb/s脉冲散布代数码本激励线性预测算法。首先,根据G729算法的固定码本代数结构,设
计了一种新的固定码书的代数结构,以降低算法的复杂度。然后,引进脉冲散布技术,对固定码本矢量进行散布处理,设计截止频率为3400Hz的有限冲
击响应(FIR)低通滤波器实现脉冲散布技术。
本文最后在MATLAB编程环境下仿真算法的性能,仿真结果表明经过解码后的语音信号输出的波形与原始语音信号的输入波形很相似,只是在能量较
小的清音段合成语音波形有相对较大的幅度以及有一定的时延,从而验证了算法的技术性能。
引证文献(1条)
1.雷翔霄.徐立娟 智能软化击穿仪温控系统的设计与实现[期刊论文]-现代电子技术 2010(1)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xddzjs200907041.aspx
授权使用:国防科技大学(gfkjdx),授权号:0e40ddb5-a6ff-4c0d-b444-9dec012765bf
下载时间:2010年9月9日