您的位置 首页 应用

G.726语音编解码在SoPC体系中

在对G.726语音编解码标准分析的基础上给出了基于FPGA的DSP设计流程,利用MATLAB/Simulink、DSP Builder和SOPC Builder工具设计了G.726语音编解码器,通过仿

G.726是ITU前身CCITT于1990年在G.721和G.723规范的基础上提出的关于把64kbps非线性PCM信号转化为40kbps、32kbps、24kbps、16kbps的ADPCM信号的规范。G.726规范算法简略,语音质量高,屡次转化后语音质量有确保,能够在低比特率上到达网络等级的话音质量,然后在语音存储和语音传输范畴得到广泛运用[2]。

  G.726语音紧缩算法现已能够在以DSP处理器为中心器材的DSP运用体系上完结。但开发以DSP处理器为中心的DSP运用体系所选用的开发办法是自底向上的规划流程,严重影响开发的功率和成功率。面临现代通讯技能的开展,DSP处理器已暴露出硬件结构的不行变性、处理速度比较慢等缺乏[1]。现代大容量、高速度的FPGA及其相关的开发技能,在可重装备的DSP运用范畴、DSP数据大吞吐量和数据的纯硬件处理方面,有共同的优势[1]。新的依据FPGA的DSP体系级开发东西以及完好的软件开发渠道,使得规划者能选用自顶向下的开发办法进行FPGA的DSP规划,规划功率大为进步。

  本文剖析了G.726规范,给出了依据FPGA的DSP规划开发流程,运用MATLAB/Simulink、Altera公司的DSP Builder和SOPC Builder东西规划了语音记载SoPC体系中的G.726语音编解码器,并完结了编解码器在该体系中的归纳。选用依据FPGA的G.726语音编解码器的语音记载嵌入式体系具有运转速度快、体积细巧、开发周期短等长处。

图1 ADPCM编码器框图

图2 依据FPGA的DSP规划体系级开发流程
  1、G.726语音编解码规范

  G.726编码器框图如图1所示。G.726语音编码器首要将输入的A律或μ律的log-PCM信号S(k)转化成线性的PCM码Sl(k),然后与猜测信号Se(k)相减发生差分信号d(k),再对差值信号进行自适应量化,发生2~5比特ADPCM码I(k)。一方面将I(k)送至解码器;另一方面逆自适应量化器运用I(k)发生量化差分信号dq(k)。猜测信号Se(k)和量化差分信号dq(k)相加发生本地重构信号Sr(k)。自适应猜测器是由二阶极点和六阶零点组成的滤波器,依据重构信号Sr(k)和量化差分信号dq(k)发生输入信号的猜测信号Se(k)。量化器份额因子自适应单元依据输入信号的特性核算量化器份额因子y(k),用来操控量化器和逆量化器,以取得自适应功用。量化器份额因子由快速因子和慢速因子两部分,以及速度操控因子al(k)对这两部分的加权组成。速度份额因子al(k)的核算由自适应速度操控单元与音谐和传送检测器单元完结。

  G.726语音解码器的解码进程实践上现已包含在编码器中,仅仅多了输出PCM格局转化单元和同步串行编码调整单元。输出PCM格局转化是将线性PCM码转化为A律或μ律PCM码;同步串行编码调整是为了避免多级传输、转化进程中的差错。

  2、依据FPGA的DSP规划开发流程

  运用传统的开发东西,依据FPGA的DSP开发者在算法确认后只能直接运用VHDL或VerilogHDL言语进行FPGA的DSP体系规划,开发需求较长的周期,且难度比较大。现在呈现的依据FPGA的DSP开发东西,如DSP Builder、SOPC Builder、System Generator等,使得规划者能遵从一条类似于软件规划流程的开发办法进行FPGA的DSP规划,规划功率大为进步。本文给出运用MATLAB/Simulink和Altear公司的开发东西进行依据FPGA的DSP规划的开发流程。DSP Builder是Altera公司推出的面向DSP开发的体系级东西。它作为MATLAB的一个Simulink东西箱(ToolBox)呈现。MathWorks的MATLAB和Simulink体系级的规划东西具有了算法开发、仿真、验证才能,DSP Builder将这些东西与Altera的开发东西组合在一起,为用户供给了一个完好的DSP开发渠道。

  依据FPGA的DSP规划体系级开发流程如图2所示。其进程:(1)在MATLAB/Simulink中对DSP体系进行建模,用图形方法调用Altera DSP Builder和其他Simulink库中的图形模块(Block),构成体系级和算法级规划框图,一起运用Simulink完结模型仿真。(2)运用DSP Builder将Simulink的模型文件(.mdl)转化成通用的硬件描绘言语VHDL文件(.vhd),转化取得的HDL文件是依据RTL级的VHDL描绘。(3)对转化进程中发生的VHDL的RTL代码和仿真文件进行归纳、编译适配以及仿真。所用东西可所以Altera的Quartus II软件,也可所以第三方软件东西。(4)在DSP Builder中直接下载到FPGA用户开发板上,也可经过Quartus II完结硬件的下载、测验。整个开发流程简直能够在同一环境中完结,真实完结了自顶向下的规划流程,极大地缩短了DSP规划周期。

  3、G.726语音编解码器在SoPC中的完结

  3.1 G.726规范算法的简化

  本文规划的编解码器是在语音记载体系中完结G.726主张的速率为32kbps的ADPCM算法,依据实践状况对算法进行了一些简化和改善。

  详细简化如下:(1)因为此体系中编解码器的输入信号是线性PCM码,因而PCM码转化模块能够省掉。(2)这个算法是用在单纯的语音存储中,可不进行单音/过渡音检测。(3)对量化器份额因子y(k)的更新进行简化。y(k)的更新核算为:

  y(k)=al(k)yu(k-1)+[1-al(k)]yl(k-1)    (1)

  一般状况下,只要语音信号时,al(k)是趋于1的;当输入为平稳信号时,al(k)的值则在0至1之间。对语音存储体系,在输入只要语音的状况下能够粗略地以为al(k)的值近似为1,然后将核算得到的快速份额因子yu(k)直接作为新的份额因子y(k),即y(k)=yu(k-1),降低了算法的复杂度。
3.2 G.726算法在Simulink中的建模

  在Simulink中运用Altera DSP Builder库模块树立用于FPGA定点完结的模型。这儿给出G.726编码器模型的规划。整个规划选用多层次结构,在顶层规划模型下包含多个子体系模块模型,如自适应量化器子体系模型、逆自适应量化器子体系模型、量化器份额因子自适应子体系模型等。下面要点剖析编码器体系中的顶层规划模型及自适应量化器子体系模型。

  3.2.1 编码器的顶层规划模型

  顶层模型供给了对外的PCM语音接口,一起也供给了对Avalon总线的接口,使得所规划的编码器模块可经过SOPC Builder集成为Nios II体系的一个外围设备。模型中的自适应量化器模块、逆自适应量化器模块、量化器份额因子自适应模块和自适应猜测器模块均为HDL SubSystem。编码器的顶层规划模型如图3所示。

图3 ADPCM编码器模型

图4 自适应量化器模型
  其间SignalCompiler模块是DSP Builder的心脏。其主要完结的功用包含:(1)将Simulink规划转变成可归纳的RTL级VHDL代码;(2)发生VHDL testbenches;(3)为LeonardoSpectrum、Synplify和Modelsim第三方EDA东西发生Tcl脚本文件;(4)为Quartus II的仿真发生仿真矢量文件(.vec);(5)发生PTF装备文件,用于将规划自动地输给SOPC Builder东西。SignalCompiler操控着规划体系的归纳、编译和仿真的流程。

  依据G.726语音算法的需求,体系需求两个时钟,分别为8kHz和120kHz,其间120kHz用于自适应猜测器子体系。因而需求在模型中运用锁相环模块PLL完结多时钟规划,发生所需的两个时钟,DSP Builder依据PLL输出时钟的上升沿作业。在Simulink规划图上不会显现时序模块的时钟引脚,而是当SignalCompiler将体系转化为VHDL文件时才自动地把时序模块的时钟引脚与相应时钟相连。

  3.2.2 编码器的自适应量化器子体系模型

  自适应量化器模型如图4所示。自适应量化在对数域内进行,在用量化份额因子对差分信号进行规格化处理后,经过查找量化器规格化输入/输出特性表,即得到ADPCM码。对数运算在Simulink中的完结是借助于查找表的方法,运用DSP Builder子库中的LUT模块;规格化输入/输出特性表的完结是选用ROM查表法的方法,用ROM EAB模块完结。

  因为ADPCM语音编解码算法终究要在FPGA上完结,Simulink的浮点值有必要转化成定点值并能在方针硬件完结。硬件中标明定点值的位数以及小数点的方位不但会影响构成硬件体系的资源运用率,还影响体系的特性。本规划中依据信号的运用规模断定小数点的方位,并依据实践需求改动小数点右侧的位数,以节约硬件资源,灵敏地运用总线操控库中的模块来对总线进行截位、增位、位提取或进行数据类型转化等操作,以到达所需求的精度。

  3.3 G.726算法模型的仿真进程

  运用MATLAB/Simulink和DSP Builder东西进行依据FPGA的DSP规划需求进行一系列的仿真。在Simulink中规划的模型首要要在Simulink中仿真,不仅是验证模型的正确性,并且因为用于ModelSim仿真的TestBench文件中的输入信号鼓励是由SignalCompiler依据Simulink的仿真成果发生,并且只要仿真后运用SignalCompiler转化发生的VEC文件才有用。在Simulink中完结仿真验证后,运用SignalCompiler将模型进行规划转化。

  关于规划转化后发生的VHDL文件,有必要进行RTL级仿真。因为Simulink中模型仿真是算法级的,而生成的VHDL描绘是RTL级的,两者描绘的状况或许不完全契合,因而需求对生成的RTL级VHDL代码进行功用仿真。仿真可经过在ModelSim中运转转化进程所生成的Tcl脚本文件。最终能够运用转化进程生成的VEC文件,在Quartus II软件中进行时序仿真。本规划对上述建模的语音编码器完结了仿真,Simulink的仿真成果与ModelSim的仿真成果根本共同,标明两者描绘相契合;Quartus II的时序仿真成果标明所规划的语音编码器到达了预期的成果。

  3.4 编解码器模块在SoPC体系中的归纳

  编码器模型在Quartus II归纳和编译后,能够运用SOPC Builder将其作为外围设备添加到Nios II体系中。SignalCompiler生成的PTF装备文件可用于将规划自动地输给SOPC Builder东西。所规划的编码器呈现在SOPC Builder的模块池中,将其添加到所创立的体系中即可。所建SoPC体系元件页如图5所示,图5中只列出了语音记载体系的一部分组件。运用SOPC Builder即可生成一个完好的体系,最终生成编程文件,进行硬件的下载,完结G.726语音编码器在SoPC中的规划。

图5 SoPC体系元件页
  因为DSP Builder中的DSP根本模块以算法级的描绘呈现,并且选用Simulink图形化界面,因而规划十分直观,完结了自顶向下的开发流程。与传统DSP开发比较,大大缩短了创立DSP规划的硬件的开发周期。规划的编解码器可作为Nios II体系的外围设备,经过SOPC Builder很方便地归纳到SoPC体系中。一起,因为规划是在依据FPGA的SoPC上完结,因而能够依据实践需求更改规划,对体系进行重装备,具有很高的灵敏性。本G.726语音编解码器的功能根本上到达了规划要求。

参考文献
1 潘 松,黄继业,王国栋.现代DSP技能[M].西安:西安电子科技大学出版社,2003
2 王海平,刘 琚.定点DSP完结ITU-T G.726语音编解码规范[J].电子技能,2003;(12):33~35
3 任爱锋,初秀琴.依据FPGA的嵌入式体系规划[M].西安:西安电子科技大学出版社,2004
4 Shorten DSP Design Cycle Using Complex IP in MATLAB/Simulink to Quartus II Flow[J].
Altera Corporation News Views,Third Quarter 2002
5 Altera Corporation. DSP Builder User Guide,2004
6 Altera Corporation. DSP Builder Reference Manual,2004

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/192921.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部