论文部分内容阅读
【摘 要】LPC(线性预测编码)是对语音信号编码调制的一种非常有效的分析方法。本文阐述了LPC的基本原理,选用了一种最为常用和有效的实现方法---自相关法进行了讨论。为了更加高效准确地对LPC原理实现,文中选用了TMS320C5402对LPC系统的设计进行了分析,并简要设计了相应的硬件和软件系统。在利用高速DSP芯片实时的实现LPC时,采用c语言对DSP芯片进行编程控制,这样提高了DSP芯片的运行速率;然后,对控制DSP芯片的c语言改编matlab程序进行了验证,得到了较为明显的结果。
【关键词】线性预测编码 自相关算法 DSP matlab仿真
一、引言
LPC(线性预测编码即线性预测)常用于语音编码,是语音分析的一种高效的技术,它工作在一个较低的比特率上,并且计算效率较高。线性预测使用对过往时域语音信号采样点的加权和来预测当前的语音信号。
基于通用DSP芯片的数字信号系统具有精度高,抗干扰能力强,易于编程实现的复杂算法,接口简单,集成方便等特点。这些特点都大大调高了线性编码的效率;再加上易于编程的特点,可以更加高效的对数字信号进行处理。
本文讨论的是利用DSP芯片实现语音信号的线性预测编码。运用C语言对DSP芯片进行控制,是很多复杂的步骤得到了简化,同时提高了运行速率。
二、语音信号的线性预测分析
(一) 线性预测编码总述
线性预测编码是语音信号编码技术中最有效,最流行的分析技术之一。对语音信号进行线性预测分的的基本思想是:一个语音信号的进行采样情况能够通过对之前若干个语音采样信号进行线性组合后逼近得到,通过线性预测的逼近可以求取一组唯一的预测系数。线性预测编码的解法有:自相关法、协方差法、斜格法和协方差斜格法等。从目前来讲,采用最多的是自相关法和协方差法。自相关法主要包含短时加窗处理、自相关计算和Levinson-Durbin算法这几个步骤。
(二)分帧处理及其作用
在经过A/D转换之后,还要对已经转化成的数字信号进行分帧处理。一帧语音信号一般的长度在20ms~30ms之间。每一帧的长度称之为帧长,每一帧和前一帧相差的部分称之为帧移。帧移与帧长的比值一般取为0~1/2。帧长与帧移的关系如图1-1所示。
这样做可以在语音短时平稳允许的时间间隔内,增加可处理的帧数,可减少语音分帧处理造成的不连续性。分帧是用可移动的有限长度窗口进行加权的方法实现的,就是用一定的窗函数w( n)乘以数字语音信号x(n),从而形成加窗语音信号。窗函数w( n)的选择(形状和长度),对短时分析参数的影响很大,为此应选择合适的窗,使其短时参数更好地反映语音信号的变化特性,一般在语音识别的前端处理中,都选用汉明窗来进行语音分帧处理。短时加窗处理起作用是:一方面,使原始的语音信号成帧,有利于处理和传输;另一方面,消除白噪声的影响。以后对语音处理的讨论将以帧为单位进行相应的处理工作。
(三)线性预测原理
[1]线性预测的基本原理如下:
将经过A/D转换的数字信号,即脉冲序列通过p阶线性预测器,线性预测器的传递函数为
这是一个由p个方程组组成的的p的未知数的线性方程组,通过对每个方程组求解的值即可得到p个线性预测系数。
对之前所得到的p*p的线性方程组式(1-8)用自相关法对其进行如下求解。
在对语音数据信号进行短时加窗处理,利用汉明窗,汉明窗的表达式如下
在此应用Levinson-Durbin算法对该方程组进行求解,得到p个预测系数。
三、DSP芯片简介及硬件系统总体设计
(一)DSP芯片及接口芯片简介
DSP指的是数字信号处理器,也叫DSP芯片。内部结构采用哈佛式改进结构,采用流水线操作,提供DSP专用指令。DSP系统具有精度高,抗干扰能力强,编程方便,接口简单等特点,本文应用TMS320C54x芯片。
采用TLC320AD50C音频接口芯片对模拟语音信号进行采集。TLC320AD50C集成了16位A/D和D/A转换器。
(二)整体系统框图
对LPC编码进行整体设计,设计框图如图2-1所示。
四、软件设计
(一)软件流程图及说明
DSP芯片要完成的任务是将输入的数字信号成帧后再进行线性预测编码的处理,总体的框图如图3-1所示。
其中每一数据帧都包含160个线性PCM编码,每个PCM编码都是一个16bit的数值。由语音信号的线性预测分析可知,经过处理后可以得到p个线性预测编码的预测系数。
(二)Levinson-Durbin算法应用
通过对DSP芯片的软件编程可以实现将一帧信号经过一个10阶线性预测器,即p=10。由[2]Levinson-Durbin算法可得:
使,若,则算法结束退出,否则重复(3-3)式到(3-6)式的递推运算过程。(3-3)式到(3-6)式中括号里边标注的是线性预测器的阶数。
采用上述算法的主要原因是该算法具有很好的可操作性。整体来讲,上述算法采用了递推的方法,当时,可以很容易地得到,在通过递推关系得到不同阶次是的预测系数,再将需要的第10阶时的预测系数提取出来便是所要的结果。另外,上述算法还避免了对矩阵方程的大量运算,进而减少了对芯片资源的利用,提高了运算效率。
[3]用C 语言直接编写的程序提高很多。首先,代码量减少;其次,代码执行时间仅为原来的5%。用c语言对上述算法进行编写:
用c语言对上述算法进行编写:
六、 运行结果及其分析
按照上述算法,进过matlab软件的仿真结果可以得到如图5-1所示的经过短时加窗处理后的一帧语音信号的时域波形,与图5-2所以的原始信号相比,明显消除了白噪声的影响,使语音信号的性能得到了很好的改善。
按照上述的原理和程序运行结果,得到如图5-3所示的线性预测系数。
七、结束语
线性预测编码调制大大降低了传输数据的比特数,并且可以通过对线性预测系数,可以还原出较好的语音信号。本文应用了线性预测编码调制算法中的自相关算法对语音信号进行处理,整个对A/D转换后的数字语音信号短时处理和线性预测编码将在DSP芯片中进行。对DSP芯片的控制采用了c语言,相对与汇编,可以提高运行的效率,降低了运行的时间。这样,可以结合自相关算法的优势和DSP芯片准确高效的特点,使调制的过程快速准确。经过编译和matlab仿真,验证了算法的可行性和较为良好的性能。
参考文献:
[1][2]韩纪庆,张磊,郑铁然,等.语音信号处理.北京:清华大学出版社,2005
[3]顾 , 赵 耿, 王晓花, 王招迎.语音信号的线性预测分析在DSP 上的优化实现.西安,北京:西安电子科技大学,北京电子科技学院,2006
【关键词】线性预测编码 自相关算法 DSP matlab仿真
一、引言
LPC(线性预测编码即线性预测)常用于语音编码,是语音分析的一种高效的技术,它工作在一个较低的比特率上,并且计算效率较高。线性预测使用对过往时域语音信号采样点的加权和来预测当前的语音信号。
基于通用DSP芯片的数字信号系统具有精度高,抗干扰能力强,易于编程实现的复杂算法,接口简单,集成方便等特点。这些特点都大大调高了线性编码的效率;再加上易于编程的特点,可以更加高效的对数字信号进行处理。
本文讨论的是利用DSP芯片实现语音信号的线性预测编码。运用C语言对DSP芯片进行控制,是很多复杂的步骤得到了简化,同时提高了运行速率。
二、语音信号的线性预测分析
(一) 线性预测编码总述
线性预测编码是语音信号编码技术中最有效,最流行的分析技术之一。对语音信号进行线性预测分的的基本思想是:一个语音信号的进行采样情况能够通过对之前若干个语音采样信号进行线性组合后逼近得到,通过线性预测的逼近可以求取一组唯一的预测系数。线性预测编码的解法有:自相关法、协方差法、斜格法和协方差斜格法等。从目前来讲,采用最多的是自相关法和协方差法。自相关法主要包含短时加窗处理、自相关计算和Levinson-Durbin算法这几个步骤。
(二)分帧处理及其作用
在经过A/D转换之后,还要对已经转化成的数字信号进行分帧处理。一帧语音信号一般的长度在20ms~30ms之间。每一帧的长度称之为帧长,每一帧和前一帧相差的部分称之为帧移。帧移与帧长的比值一般取为0~1/2。帧长与帧移的关系如图1-1所示。
这样做可以在语音短时平稳允许的时间间隔内,增加可处理的帧数,可减少语音分帧处理造成的不连续性。分帧是用可移动的有限长度窗口进行加权的方法实现的,就是用一定的窗函数w( n)乘以数字语音信号x(n),从而形成加窗语音信号。窗函数w( n)的选择(形状和长度),对短时分析参数的影响很大,为此应选择合适的窗,使其短时参数更好地反映语音信号的变化特性,一般在语音识别的前端处理中,都选用汉明窗来进行语音分帧处理。短时加窗处理起作用是:一方面,使原始的语音信号成帧,有利于处理和传输;另一方面,消除白噪声的影响。以后对语音处理的讨论将以帧为单位进行相应的处理工作。
(三)线性预测原理
[1]线性预测的基本原理如下:
将经过A/D转换的数字信号,即脉冲序列通过p阶线性预测器,线性预测器的传递函数为
这是一个由p个方程组组成的的p的未知数的线性方程组,通过对每个方程组求解的值即可得到p个线性预测系数。
对之前所得到的p*p的线性方程组式(1-8)用自相关法对其进行如下求解。
在对语音数据信号进行短时加窗处理,利用汉明窗,汉明窗的表达式如下
在此应用Levinson-Durbin算法对该方程组进行求解,得到p个预测系数。
三、DSP芯片简介及硬件系统总体设计
(一)DSP芯片及接口芯片简介
DSP指的是数字信号处理器,也叫DSP芯片。内部结构采用哈佛式改进结构,采用流水线操作,提供DSP专用指令。DSP系统具有精度高,抗干扰能力强,编程方便,接口简单等特点,本文应用TMS320C54x芯片。
采用TLC320AD50C音频接口芯片对模拟语音信号进行采集。TLC320AD50C集成了16位A/D和D/A转换器。
(二)整体系统框图
对LPC编码进行整体设计,设计框图如图2-1所示。
四、软件设计
(一)软件流程图及说明
DSP芯片要完成的任务是将输入的数字信号成帧后再进行线性预测编码的处理,总体的框图如图3-1所示。
其中每一数据帧都包含160个线性PCM编码,每个PCM编码都是一个16bit的数值。由语音信号的线性预测分析可知,经过处理后可以得到p个线性预测编码的预测系数。
(二)Levinson-Durbin算法应用
通过对DSP芯片的软件编程可以实现将一帧信号经过一个10阶线性预测器,即p=10。由[2]Levinson-Durbin算法可得:
使,若,则算法结束退出,否则重复(3-3)式到(3-6)式的递推运算过程。(3-3)式到(3-6)式中括号里边标注的是线性预测器的阶数。
采用上述算法的主要原因是该算法具有很好的可操作性。整体来讲,上述算法采用了递推的方法,当时,可以很容易地得到,在通过递推关系得到不同阶次是的预测系数,再将需要的第10阶时的预测系数提取出来便是所要的结果。另外,上述算法还避免了对矩阵方程的大量运算,进而减少了对芯片资源的利用,提高了运算效率。
[3]用C 语言直接编写的程序提高很多。首先,代码量减少;其次,代码执行时间仅为原来的5%。用c语言对上述算法进行编写:
用c语言对上述算法进行编写:
六、 运行结果及其分析
按照上述算法,进过matlab软件的仿真结果可以得到如图5-1所示的经过短时加窗处理后的一帧语音信号的时域波形,与图5-2所以的原始信号相比,明显消除了白噪声的影响,使语音信号的性能得到了很好的改善。
按照上述的原理和程序运行结果,得到如图5-3所示的线性预测系数。
七、结束语
线性预测编码调制大大降低了传输数据的比特数,并且可以通过对线性预测系数,可以还原出较好的语音信号。本文应用了线性预测编码调制算法中的自相关算法对语音信号进行处理,整个对A/D转换后的数字语音信号短时处理和线性预测编码将在DSP芯片中进行。对DSP芯片的控制采用了c语言,相对与汇编,可以提高运行的效率,降低了运行的时间。这样,可以结合自相关算法的优势和DSP芯片准确高效的特点,使调制的过程快速准确。经过编译和matlab仿真,验证了算法的可行性和较为良好的性能。
参考文献:
[1][2]韩纪庆,张磊,郑铁然,等.语音信号处理.北京:清华大学出版社,2005
[3]顾 , 赵 耿, 王晓花, 王招迎.语音信号的线性预测分析在DSP 上的优化实现.西安,北京:西安电子科技大学,北京电子科技学院,2006