当前位置:首页 > EDA > 电子设计自动化
[导读]近年来,多媒体技术逐渐深入到人们的生活中。MP3播放器已经成为流行的便携式音频播放设备,由于MP3编码算法非常复杂,目前,一部分MP3播放器的录音功能主要基于ADPCM算法和DSP来实现。本文阐述了ADPCM语音编解码VLSI芯片的设计方法以及利用FPGA的硬件实现。

近年来,多媒体技术逐渐深入到人们的生活中。MP3播放器已经成为流行的便携式音频播放设备,由于MP3编码算法非常复杂,目前,一部分MP3播放器的录音功能主要基于ADPCM算法和DSP来实现。本文阐述了ADPCM语音编解码VLSI芯片的设计方法以及利用FPGA的硬件实现。

 

ADPCM算法及其编解码器原理

 

      ADPCM(Adaptive DifferentialPulse Code Modulation,自适应差分脉冲编码调制)综合了APCM的自适应特性和DPCM系统的差分特性,是一种性能较好的波形编码。它的核心思想是:利用自适应改变量化阶的大小,即使用小的量化阶去编码小的差值,使用大的量化阶去编码大的差值,使用过去的样本值估算下一个输入样本的预测值,使实际样本值和预测值之间的差值总是最小。ADPCM记录的量化值不是每个采样点的幅值,而是该点的幅值与前一个采样点幅值之差。


ADPCM是利用样本与样本之间的高度相关性和量化阶自适应来压缩数据的一种波形编码技术。ADPCM标准是一个代码转换系统,它使用ADPCM转换技术实现64Kb/s A律或u律PCM(脉冲编码调制)速率和32Kb/s速率之间的相互转换。ADPCM的简化框图如图1所示。


ADPCM编解码器的输入信号是G.711 PCM代码,采样率是8kHz,每个代码用8位表示,因此它的数据率为64Kb/s。而ADPCM的输出代码是“自适应量化器”的输出,该输出是用4位表示的差分信号,它的采样率仍然是8kHz,它的数据率为32Kb/s,这样就获得了2:1的数据压缩。
 

电路的整体结构

 

      基于ADPCM算法,可将语音编解码VLSI芯片分成编码、解码、存储、控制和时钟几个模块。编码模块实现数据压缩功能,将输入的PCM信号转换成ADPCM码,存储模块在控制模块的作用下,保存编码所得的ADPCM码,解码模块实现解压缩功能,将ADPCM码转换得到PCM码;控制模块的作用是控制其他模块的协调工作;时钟模块主要实现对外部晶振的原始时钟信号进行分频,以得到电路系统实际所需的时钟信号。

 

      电路整体结构如图2所示,其中En_en、En_de分别是编码和解码的使能信号,RST则为复位信号。当WE为“1”时,RAM写有效,而当WE为“0”时,RAM读有效,CS为“1”时,RAM可进行写或者读操作。 

 

电路设计过程

 

      本文采用Top-down方法进行电路设计。主要设计流程如下:首先基于Verilog HDL运用Active-HDL进行电路的RTL级描述和功能仿真,将经过功能仿真正确的程序在QuartusⅡ开发系统中进行综合和适配,接下来将得到的网表文件(.vo)和具有时延信息的反标文件(.sdo)调入ModelSim SE中,并加入所选器件相应的器件库进行时序仿真,时序仿真通过后,将Quartus II得到的“*.sof”文件通过JTAG配置模式下载到FPGA中进行不可掉电的实际测试,也可将“*.pof”文件通过AS配置模式下载到FPGA中进行可掉电的实际测试。电路系统的顶层程序如下。


module ADPCM_TOP(PCM_OUT,PCM_IN,RECORD,PLAY,CLK,CLK8K):
parameter ADDR_WIDTH=14;
parameter PCM_WIDTH=8;
input [PCM_WIDTH-1:0]PCM_IN;
wire [PCM_WIDTH-1:0]PCM_IN;
output [PCM_WIDTH-1;0]PCM_OUT;
wire [PCM_WIDTH-1:0]PCM_OUT;
input CLK,RECORD,PLAY;
output CLK8K;
wire [3:0]code_in,code_out;
wire en_encoder,en_decoder,re_rst,pl_rst,WE,CS,CLK_8K;
wire [ADDR_WIDTH-1:0]ADDRESS;
assign CLK8K=CLK_8K,
CLOCK—GE U0 (ClK,RECORD,CLK_8K);
encoder_new U1(PCM_INre_rst,en_encoder,CLK_8Kcode_in);
RAM U2(ADDRESS,WECS,CLK_8K,code_in,code_out);
decoder_new U3(pl_rstCLK_8K,code_out,en_decoderPCM_OUT);
controllogic U4(CS,re_rstpl_rst,en_encoder,en_decoder,WEADDRESS,RECORD,PLAYCLK_8K);
endmodule

予模块电路设计及仿真

 

      整个语音编解码VLSI芯片包括编码电路、解码电路、存储电路、控制电路和时钟电路几个部分。下面分别具体描述关键电路的设计。

 

1 编码电路 


      编码电路实现数据压缩功能,将输入的PCM信号转换成均匀的PCM码,然后与预测信号进行差分,得到的差分信号经过“自适应量化器”进行压缩编码得到ADPCM码,ADPCM码被返回经过“逆自适应量化器”以及“自适应预测器”用来构建下一个预测信号。编码电路仿真波形如图3所示,其中PCM_IN为编码器输入信号(PCM码),CODE为编码后得到的输出信号(ADPCM码)。
 

2 解码电路 


      解码电路实现解压缩功能,将ADPCM码经过“逆自适应量化器”得到量化差分信号,量化差分信号与预测值相加得到重构信号,然后转换成PCM码。解码电路仿真波形如图4所示,其中CODE为解码器输入信号(ADPCM码),PCM_OUT为解码后得到的输出信号(PCM码)。与图3中编解码前的PCM_IN对比,可以看出解码误差很小。

3 其他模块 


      控制电路控制其他电路模块的协调工作,在编码的同时使能存储器写入信号,使编码电路输出数据可以及时存入存储器,在解码的同时使能存储器读出信号,编码和解码不能同时进行。时钟电路主要实现对外部晶振的原始时钟信号进行分频,以得到电路系统实际所需的时钟信号。本系统采用的外部晶振固有频率为14.318MHz,经过分频后可以获得8kHz时钟。存储电路在控制电路的作用下,保存编码所得的ADPCM码(32Kb/s),由于只需验证电路的功能,所以只设定了2s的录音存储空间,即64Kb存储容量。

整体电路仿真

 

      在子模块电路仿真正确后,对系统整体进行仿真,可以得到图5所示波形。此次仿真输入信号PCM_IN激励采用Testbench产生。在编码使能信号RECORD为“0”时,开始编码,RECORD跳变到“1”时,编码被屏蔽,此时解码使能信号PLAY为“0”,开始解码,PLAY跳变到“1”时,解码被屏蔽。从图中可以看出编码前输入信号PCM—IN的激励和解码后输出PCM—OUT的响应基本符合。由于ADPCM算法本身是有损压缩,可以确定本电路系统的设计是正确可靠的。 

FPGA验证及结论

 

      本文基于FPGA验证所设计的电路。这里选用Altera公司Cyclone系列的EPIC6Q240C8器件,其内部有90Kb的存储容量,6k个逻辑单元,2个PLL。由于电路采用8kHz采样频率,编码后的ADPCM码为4位,设定录音时间为2s,所以需要64Kb存储容量:同时,设计需要大约400个左右的逻辑单元。所以选用此低成本的FPGAIlp可满足设计要求,而且基本上充分利用了内部资源。此芯片的引脚有240个,能满足外面的引脚连接,而且价格也易于接受。

 

      FPGA验证表明:电路的最大时钟延迟为26.903ns,最高工作频率可达37.17MHz,可以很好地再现被录入的语音,具有较高的保真度和很好的实时性。在电子地图、车载信息终端语音播报、治安报警系统,特别是便携式语音记录装置等方面具有较高的应用价值。同时,也指明了数字语音压缩处理高效设计方法的方向。

 
 
 
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

构建可靠的硬件要求我们在设计阶段考虑所有公差。许多参考文献讨论了参数偏差导致的有源元件误差——展示了如何计算运算放大器失调电压、输入电流和类似参数的影响——但很少有人考虑无源元件容差。确实考虑了组件容差的参考文献是从科学...

关键字: 元件公差 电路设计

对于非比例电路,我们必须假设完整的电阻容差,因为容差不会分开。我们可以将输出电压计算为 V OUT =IR,其中 I 是理想的 1mA 电流源,R 是 5% 的电阻器(图 1a)。V OUT =1 mA (1±0.05±...

关键字: 电路设计 非比例电路

我们是否设计了一个电源,后来才发现我们的布局效率低下?按照这些关键提示创建电源布局并避免调试压力。什么是电源设计的布局?你知道吗?一个完美的电路设计,电源布局显得尤为重要。由于不同的设计方案的出发点不同,而有所差异,但是...

关键字: 电源布局 电路设计

摘要:基于摄像机远程操作技术,利用单片机控制步进电机,建立摄像镜头的电力驱动系统。此系统节约了经济成本,通过人机交互闭环系统、模块化等方法,进一步提高了系统的通用性,使其可以应用于工程。

关键字: 步进电机 单片机 电路设计

一直以来,智能硬件都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来智能功率模块的相关介绍,详细内容请看下文。

关键字: 智能功率模块 IPM 电路设计

与传统聚合物电容器相比,多层陶瓷电容器 (MLCC) 在电力电子设计中很受欢迎,原因有很多: MLCC 提供: · 具有相对较高电容的小轮廓。 · 非常低的等效串联电阻 (ESR)。 · 非常低的等效串联电感 (...

关键字: MLCC电容 电路设计

许多同步降压转换器设计人员面临一个共同的问题:如何最好地连接开漏电源良好标志,也称为电源良好 (PGOOD) 引脚。在这篇文章中,我将探讨电源良好与各种不同的上拉源相关联时的预期行为。有一些错误信息四处流传,希望这篇文章...

关键字: 降压转换器 电路设计

语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后...

关键字: 语音编码器 PCM 语言

嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,经过多轮修改设计、制作,最终完成整个系统的开发。

关键字: 嵌入式开发 电路设计 结构设计

DSP子系统能使移动电话机信号处理软件有效执行及具灵活性。DSP核有许多种。例如;OAK,ADSP-218X等。以下以OAK为例做简单介绍。OAK核包括一个16-bit(数据和程序)带4个36位累加器的定点DSP,还带强...

关键字: DSP 语音编解码 无线接口

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭