ADPCM语音编解码电路设计及FPGA实现

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8967

文章摘要: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

ADPCM语音编解码电路设计及FPGA实现,标签:电子小制作,http://www.88dzw.com
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_IN,re_rst ,en_encoder, CLK_8K ,code_in );
RAM       U2 (ADDRESS,WE,CS,CLK_8K,code_in,code_out);
decoder_new   U3 (pl_rst, CLK_8K ,code_out ,en_decoder,PCM_OUT); 
controllogic  U4 (CS,re_rst,pl_rst,en_encoder,en_decoder,WE,ADDRESS,RECORD,PLAY,CLK_8K);
endmodule

子模块电路设计及仿真

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

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


图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,可以很好地再现被录入的语音,具有较高的保真度和很好的实时性。在电子地图、车载信息终端语音播报、治安报警系统,特别是便携式语音记录装置等方面具有较高的应用价值。同时,也指明了数字语音压缩处理高效设计方法的方向。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《ADPCM语音编解码电路设计及FPGA实现》相关文章