线性预测分析是现代语音信号处理中最核心的技术之一,为现代语音信号处理的飞速发展立下了赫赫功劳,在语音分析、合成、编码、识别等方面都有着广泛的应用,至今仍是最有效的语音分析技术之一。如voip和h.323网上多媒体通信系统中所使用的g.729 cs-acelp语音编码算法就是一种以共轭代数码本激励线性预测为基础的高质量的语音编码标准。
1线性预测的基本原理
在语音信号处理中最常用的模型是全极点模型。线性预测所包含的基本概念是,通过使实际语音抽样和线性预测抽样之间差值的平方和达到最小值,即进行最小均方误差的逼近,能够决定惟一的一组预测器系数。如果一个随机过程用一个p阶全极点系统受白噪声激励产生的输出来模拟,设这个系统的传递函数为:
其中:p是预测器阶数;g是声道滤波器增益。由此,语音抽样s(n)和激励信号e(n)之间的关系可用下列差分方程来表示:
即语音样点间有相关性,可以用过去的样点值预测未来样点值。对于浊音,激励e(n)是以基音周期重复的单位冲激;对于清音e(n)是平稳白噪声。
在模型参数估计过程中,把如下系统称为线性预测器:
式中:ai称为线性预测系数。从而,p阶线性预测器的系统函数具有如下形式:
在式(1)中的a(z)称作逆滤波器,基传输函数为:
而线性预测方程可以按如下方法得到:把某一帧内的短时平均预测误差定义为:
由此可计算出预测系数。
由于语音信号的短时平稳性,要分帧处理(10~30 ms),对于一帧从n时刻开窗选取的n个样点的语音段s(n),记为φn(j,i):
2 g.729中线性预测分析的基本原理
用10阶线性预测(lp)作短时分析,lp合成滤波器定义为:
3在matlab上实现线性预测
3.1加窗和自相关函数计算
g.729语音编码算法大多是用c语言编程实现的,程序显得格外冗长,有一定的局限性。由于matlab在数据分析、自动控制、数字信号处理、绘图等方面具有强大的功能,为了直观的表述,就运用matlab来实现线性预测分析这一部分的算法。
图1给出了混合窗的示意图,它由两部分构成,前半部分是1/2个哈明窗;后半部分是1/4余弦函数:
式中:有5 ms(40个样点)来自下一帧,15 ms(120个样点)来自上一帧,当前帧10 ms(80个样点)加窗过程如图1所示。
得到加窗如图2所示。
3.2lp系数的求取
求解线性预测滤波器系数ai,将使用到最经典的levinson-durbin算法。该算法的步骤为:
上面各式中括号内的上标表示预测器的除数。步骤(1)~(4)可对i=1,2,…,p进行递推求解,其中:e为最小均方预测误差;r为自相关系数;k表示反射系数,取值范围为[-1,1];aij表示i阶预测器的第j个系数。通过运算发现,其实在计算过程中,虽然目标是计算一个p阶线性预测器的全部系数,但实际上在递推过程中仅算出了所有除数低于p阶线性预测器的全部系数,同时计算出了最小预测误差能量(递推式中反射系数的取值范围是保证系统h(z)稳定性的充分必要条件,即多项式a(z)的全部根都落在单位圆内)。
从推导中得知,φn(j,i)的物理意义可以理解为sn的短时自相关函数。因此,它反映了语音波形的实际情况,即波形不同,值也不同。然而ai的取值由φn(j,i)决定,并随φn(j,i)的改变而改变,因此也可以说ai反映了语音波形的实际情况。
其matlab描述如下:
4结语
线性预测在语音处理方面的应用很广泛,而用matlab来实现可以很直观地知道分析结果,为下一步将算法在dsp上的实现奠定基础。
韩国为了应对高龄化社会带来的影响 推出了预防痴呆症的机器人
AI技术助力石油人乘风破浪,驶向数字智能的瀚海
“贸易战”将如何影响3D打印增材制造,听听行业人士怎么说
Transformers研究方向
WCDMA R4核心网组网方案
线性预测及其Matlab实现
浅谈中央空调系统维护和保养技巧 浅谈中央空调系统常见故障维修方法
一文看懂高频和射频
LED封装龙头国星光电2021全球人才招募计划宣讲会顺利举行
如何对平板电脑进行气密性检测设置
OTA成未来汽车标配 OTA升级在汽车的布署上有哪些难题
韩国超越日本成为第二大半导体强国
9W高功率因素LED驱动器评估板NCL32073LED1GEVB主要特性和指标介绍
微型混合动力汽车铅酸电池能效管理
挪威购第一架电动飞机或政府支持
AI对数据的要求为什么越来越高
霍尔效应传感器的5个重要应用
可为AirPods充电的iPhone
联发科计划在明年开始向荣耀出售5G处理器
深入理解MOSFET的夹断效应