当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于DSP的通用语音编译码器设计与实现

摘要:实现了一种基于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转换器模块转换成模拟语音信号后送信号滤波和放大模块,从而实现语音信号的采集、编码、发送和接收、解码等功能。
[!--empirenews.page--]
2 软件设计
    软件设计包括DSP程序、控制器程序、CPLD程序和上位机程序四部分。DSP程序根据命令完成语音信号和计算机数据的处理等;控制器程序完成本地对编译码器的管理,并负责DSP与PC之间的通信;CPLD程序除完成系统需要的组合、时序工作外,还要提供与调制/解调器的数据接口;上位机程序完成对语音编译码器的管理。下面介绍部分程序的设计原理。
2.1 DSP程序设计
    DSP程序主要包括主程序、命令解析子程序、模拟信号采集与输出子程序、编译码子程序、数据信号接收与发送子程序等。DSP完成G.711规范的A-Law编译码程序流程图如图2所示。


    在DSP响应控制器程序中设置一个控制标志位CON_SEL,并分配在DSP数据空间内的0x1fffH地址,控制器根据用户从键盘输入的命令(或来自PC机的命令)向此地址写入相应的控制标志,DSP的底层程序响应该控制标志位完成相应的工作(MIC语音处理、线路语音处理和数据通信)。DSP响应控制器程序流程图如图3所示。从流程图中可以看到,对于语音处理,程序先打开中断。当A/D采集完语音数据后,即进入中断服务程序,在中断服务程序中关闭全局中断,并设置数据是否满的标志位为有效状态。主程序查询该标志位,如果有效则调语音处理子程序进行处理,处理完调用通信程序输出;而对于数据通信的处理过程是,DSP首先在内部开辟一个数据缓冲区,并打开HPI中断和全局中断,然后DSP主程序进入数据处理程序,这时接收来自单片机(或PC机)的数据通过数据口传输出去,传送完后可通过HINT去中断控制器,通知主机传送下一个数据。

[!--empirenews.page--]
2.2 控制器程序设计
    控制器工作有两个状态,即本地控制工作状态和通信传输工作状态。本地控制状态就是实现对编译码器的控制与管理,而通信工作状态仅仅完成DSP与PC机之间的信息传输,这里只说明DSP、控制器和PC机之间的程序设计。由于DSP的HINT引脚和单片机的INT0引脚相连接,HINT中断有效触发的是单片机的INT0中断,所以PC机的上位机软件要响应DSP的中断只能在控制器与PC机的控制协议中完成,DSP在发送完成一个数据后无法采用中断的方式告诉上位机。为解决这个问题,上位机采用查询的方式,即在控制器中设置一个标志位send_end,初始化为0,当DSP发送完一个字节数据后置该标志位为1,上位机每发送完一个数据,通过控制器触发一次DSPINT中断,并读回send_end的值判断,若为1则传送下一个字节,否则等待控制器将当前数据发送完成。
2.3 上位机软件设计
    上位机软件采用学生容易掌握的VB语言实现,其主界面如图4所示。


    主界面主要完成系统初始化,并显示系统需要检测和控制的内容。初始化正常后,上位机程序即可通过控制器向DSP的指令地址发送控制命令,DSP查询此地址的命令字,并根据命令字进入相应的服务程序(MIC语音、线路语音或数据通信。DSP在初始化中默认的是MIC语音处理),如果要进行线路语音处理则在控制界面上选择“线路输入语音”控制命令,这时控制子界面将用户选择的命令通过控制器送DSP,DSP查询到并判断是线路输入语音命令后即执行线路输入语音子程序,这时如果将数据输出端口与数据输入端口、对应的同步信号连接好的话,从耳机可听到经过语音编码和译码后的电脑播放的音乐,从听到的音乐比较编译码后的语音质量。如果在命令控制界面选择“计算机数据通信”控制命令,即可进行计算机数据通信实验。

3 实际测试
3.1 语音信号编译码测试
    首先将PC机的线路输出用信号线连接到编译码器的LINE输入,启动编译码实验系统,然后由PC机播放MP3音乐,测试得到的8 kHz帧同步和64 kHz位同步时钟的波形如图5所示。


    图6是在64 kHz位同步时钟情况下编码后的音乐数据波形,在译码器输出端用耳机可以听到MOS分在4 dB以上的音乐。[!--empirenews.page--]
3.2 数据传输测试
   首先在上位机软件的控制界面中选择计算机数据通信命令,在弹出的数据通信对话框中输入测试数据1234,如图7所示。


    DSP结束当前语音通信过程后即进入数据通信子程序,这时可以从主界面的编辑对话框中输入要传输的数据(也可以选择PC机中的文件),点击“确认”按钮,编译码实验系统即可完成数据通信,图8给出以64 Kb/s的速率传输的数据,同时PC机从DSP端读回所发送的数据,可以看到数据完全正确。


    对于传输文件,先选择*.txt数据文件,然后点击“确认”,则*.txt文件中的数据将通过控制器发送到DSP中指定的发送缓冲区中,DSP将发送缓冲区中的数据以64 Kb/s的速率从数字接口McBSP2发送出去。如果将数据接口的发送和接收端用测试线连接起来,则DSP接收回到接收缓冲区中,软件从其接收缓冲区中读回数据,图9是写入DSP发送缓冲区的数据,在CCS中观察与所发送的数据完全一致。

4 结语
    本文设计并实现了一种基于DSP的通用语音编译码器实验平台。该平台硬件采用模块化设计,软件采用结构化设计,非常方便学生从不同层面参与实验,也非常适合以团队的方式完成实验项目,将比较复杂、内容比较多的实验项目分解成易于实现的小模块,同时模块和结构化的设计思想非常容易实现硬件和软件的扩展和升级,可以从硬件和软件等多方面培养学生的设计、综合以及创新等能力。从仿真和测试结果可以看到设计的正确性。

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

根据蓄电池分级恒流充电的要求,给出一种基于DSP、变参数积分分离PI 控制的新型蓄电池恒流充电电源的设计方案。介绍了电源的系统结构、工作原理、控制策略及软件设计。

关键字: 蓄电池 DSP 变参数积分

利用数控机床进行机测时可以通过机床本体与测头来完成。

关键字: DSP 数控机床

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

今天,小编将在这篇文章中为大家带来数字信号处理器DSP的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: DSP 数字信号处理器

DSP的国产替代不会是一件很容易的事情,但受到当前国际竞争态势的影响,本土开发者亟需拥有降本优势、供应链安全保证,以及能协助打造极高竞争力产品的DSP芯片。也就是说,发展国产DSP是不二选择。

关键字: DSP

将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。

关键字: 单片机 spi通信 DSP

随着科技的不断发展,计算机与嵌入式系统之间的通信已成为现代电子技术的重要组成部分。PC机与单片机之间的通信关系是其中的重要一环。本文将详细探讨PC机与单片机之间的通信关系,包括串口通信、并口通信、USB通信等,并分析它们...

关键字: 计算机 嵌入式系统 PC机

随着科技的不断发展,微控制器(MCU)和数字信号处理器(DSP)已经成为了电子行业中不可或缺的重要组成部分。它们在各种电子设备中发挥着关键作用,如智能手机、平板电脑、家用电器等。然而,尽管它们都是用于处理数字信号的集成电...

关键字: MCU DSP 数字信号处理器 微控制器

随着环境保护和能源可持续性的日益关注,电动汽车作为一种清洁、高效的交通工具逐渐成为全球汽车行业的热点。与传统的内燃机驱动汽车相比,电动汽车具有零排放、低噪音和高能量利用效率等显著优势。

关键字: DSP 芯片 混合动力汽车
关闭
关闭