[05-04 22:21:32] 来源:http://www.592dz.com 电子制作 阅读:9967次
概要:z时钟。存储电路在控制电路的作用下,保存编码所得的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系列的EP1C6Q240C8器件,其内部有90kb的存储容量,6k个逻辑单元,2 个PLL。由于电路采用8kHz采样频率,编码后的ADPCM码为4位,设定录音时间为2s,所以需要64kb存储容量;同时,设计需要大约400个左右的逻辑单元。所以选用此低成本的FPGA即可满足设计要求,而且基本上充分利用了内部资源。此芯片的引脚有240 个,能满足外面的引脚连接,而且价格也易
ADPCM语音编解码电路设计及FPGA实现,http://www.592dz.com
图3 编码电路仿真波形
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系列的EP1C6Q240C8器件,其内部有90kb的存储容量,6k个逻辑单元,2 个PLL。由于电路采用8kHz采样频率,编码后的ADPCM码为4位,设定录音时间为2s,所以需要64kb存储容量;同时,设计需要大约400个左右的逻辑单元。所以选用此低成本的FPGA即可满足设计要求,而且基本上充分利用了内部资源。此芯片的引脚有240 个,能满足外面的引脚连接,而且价格也易于接受。
FPGA验证表明:电路的最大时钟延迟为26.903ns,最高工作频率可达37.17MHz,可以很好地再现被录入的语音,具有较高的保真度和很好的实时性。在电子地图、车载信息终端语音播报、治安报警系统,特别是便携式语音记录装置等方面具有较高的应用价值。同时,也指明了数字语音压缩处理高效设计方法的方向。
图4 编码电路仿真波形
图5 系统仿真波形