微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的通用语音编译码器设计与实现

基于DSP的通用语音编译码器设计与实现

时间:03-13 来源:互联网 点击:

摘要:实现了一种基于DSP的通用语音编译码器实验平台。在该平台上通过软件重构可以实现常用语音信号的编译码。详细介绍了应用DSP实现通用语音编译码中的关键技术,包括硬件平台设计、软件结构和接口扩展等。由于硬件和软件采用模块和结构化设计,通过开放的模块接口和子程序使得该设计具有扩展和升级容易、学生参与度高等优点。最后通过实际测试验证了设计的正确性。
关键词:语音信号处理;DSP;编码器;解码器;实验系统

0 引言
语音信号处理在通信系统中占有重要地位,也是通信工程专业的重要课程。由于课程内容比较抽象,如果只是停留在理论教学,会使学生不易理解并且感到枯燥乏味,同时也不容易体现它的实现原理以及在实际通信系统的位置和作用。语音编译码器的实现主要有三种方法:专用芯片、基于DSP和混合方法。其中,DSP5000系列以其内含硬件乘法器、硬件加法器和FFT运算器特别适合用于语音信号处理。文献提出一种基于DSP的多制式语音编解码器,文献给出一种可变速率的通用语音编解码实现技术,但都不适合实验教学。本文在文献的基础上,结合实验教学特点设计一种语音编译码器实验平台,其设计思想是采用通用的DSP,CPLD,控制器和PC机将语音信号处理过程在硬件、软件、接口和PC机管理几个方面实现模块化和开放接口设计。通过PC机或控制器,可以设置编码方式、调用不同的子程序实现不同的编码算法,同时也设置了计算机数据接口来实现编解码器的通用性,方便直观地了解语音信号的处理过程,易于不同层次、不同目的的学生参与,具有方便实现设计性、系统性、综合性和创新性实验等优点。该平台可以实现G.711,G.721,G.729和△M四种符合国际标准的编解码。为了观察信号的处理过程,在硬件电路的关键点都设置有测试点;其次,在软件设计上也尽量将程序分解成子程序由主程序调用,如初始化子程序、命令解
析子程序、信号采集与输出子程序、编译码子程序、数据接收与发送子程序等。每个子程序的人口都有相应的函数名、要传递的参数和返回的结果,这样便于学生参与各个算法子程序的设计。文中给出了详细的硬件电路设计和软件流程图,最后对实验平台进行了测试,结果正确且工作稳定可靠。

1 系统结构与硬件电路设计
在硬件设计上根据功能分了6个模块,包括滤波器与放大模块、A/D与D/A转换器模块、DSP处理器模块、FPGA与数据接口模块、MCU控制器与PC机接口模块、键盘/显示器模块。为了防止干扰和方便学生观察信号,各模块之间的控制线通过通用底板相连,而信号通过各个模块的信号线相连。系统结构如图1所示。

图1中,抗混叠滤波器采用二阶有源低通滤波器;音频接口芯片选择TI公司性价比较高的A/D转换芯片TLV320AIC23,它可以在8~96 kHz的采样频率范围内提供16 b,20 b,24 b和32 b的采样数据,其DSP Mode是TI公司特有的与DSP连接模式,使音频接口设计非常简单,如对于PCM编码则根据AIC23的数据手册只需在其时钟输入端MCLK引脚外接一个12.288 MHz的有源晶振,配置AIC23的采样率控制寄存器的SR3~SR0= 0011,即可得到AIC23的A/D和D/A的采样率为8 kHz;DSP选择TI公司的TMS320VC5416,它采用增强的多总线和优化的CPU设计结构,内含三个多通道缓冲串口McBSP和8/16 b的增强型HPI口,不但可以满足语音编译码算法处理的需求,也方便实现主机访问;SRAM和FLASH分别采用常用的芯片CY7C1041CV33和SST39VF400(两者存储空间均为256K×16 b),外扩存储器的控制时序通过CPLD(EPM3128ATC100)实现;控制器采用AT89C52,它通过DSP的HPI口与DSP相连,其优点是可以通过DSP内部的双口RAM访问DSP内部的各种资源,而不会影响DSP的运行。同时,控制器扩展了键盘/显示和RS 232接口(预留了USB接口),不但方便用户使用,也实现了上位机软件与编译码器的通信。
系统工作原理如下:首先来自用户的语音信号先经过抗混叠滤波器模块完成信号的滤波和放大,然后送A/D、D/A模块将模拟语音信号转换成相应标准速率(如8 kHz)和采样精度(如16 b)的数字信号,数字化的语音信号通过多通道缓冲串口McBSP0送给DSP信号处理板,信号处理板将语音数据信号送到DSP内部缓冲区,在缓冲区内按用户选择的方法调用编码算法编成特定码率的码流,再将得到的标准数字码流送数据接口模块输出;另一方面,来自数据接口的码流送数据处理模块,数据处理模块由其多通道缓冲串口McBSP2接收至DSP的内部接收缓冲区,然后由DSP对其进行解码处理,解码后的数字化语音通过多通道缓冲串口McBSP0传送给D/A转换器模块转换成模拟语音信号后送信号滤波和放大模块,从而实现语音信号的采集、编码、发送和接收、解码等功能。

2 软件设计
软件设计包括DSP程序、控制器程序、CPLD程序和上位机程序四部分。DSP程序根据命令完成语音信号和计算机数据的处理等;控制器程序完成本地对编译码器的管理,并负责DSP与PC之间的通信;CPLD程序除完成系统需要的组合、时序工作外,还要提供与调制/解调器的数据接口;上位机程序完成对语音编译码器的管理。下面介绍部分程序的设计原理。
2.1 DSP程序设计
DSP程序主要包括主程序、命令解析子程序、模拟信号采集与输出子程序、编译码子程序、数据信号接收与发送子程序等。DSP完成G.711规范的A-Law编译码程序流程图如图2所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top