按G.723标准设计的数字录音系统
摘要:介绍了一个按G.723标准设计的数字录音系统,该系统以ADSP-2181数字信号处理器为核心,采用大容量的闪速存储器(Flash RAM)作为数字语音数据存储器。试验表明,该系统具有良好的实用价值。
关键词:G.723标准 数字录音机 ADSP-2181 语音数字处理
随着数字化技术的迅速发展,语音信号数字处理技术的不断成熟[1],可编程器件和功能强大的数字信号处理器(DSP)的广泛应用,传统的模拟音像设备大量地被各种数字设备所代替。然而,便携式的录音设备仍以各种模拟媒质为主,如常用的磁带录音机。如果要将其录音以数字形式的数据保存,则应将其模拟录音信号变换成数字形式的数据,这就给原始数据的保存带来诸多不便。因此,笔者按G.723标准设计了一种数字录音机,它以ADSP-2181作为语音处理器和系统控制器,取消了普通录音机的机械部分和磁带,以大容量的闪速存储器(Flash RAM)作为数字语音数据存储器。该样机体积很小,录音时间长,没有机械噪声及机械故障,很有实用价值。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 G.723标准简介和系统结构框图
1.1 G.723标准简介
G.723是ITU-T在1996年制订成型的一种多媒体语音编解码标准。其典型应用包括IP电话服务、H.324视频电话、无线电话、数字卫星系统、数电倍增设备(DCME)、公共交换电话网(PSTN)、ISDN及各种多媒体语音信息产品。G.723标准传输码率有5.3kb/s和6.3kb/s两种,在编程过程中可随时切换。该标准主要包含了编码算法和解码算法。原理是:从采集的语音信号中解析出声道模型参数,构造一个合成滤波器,采用合适的激励源激励,编码传输的参数主要是激励源与合成滤波器的参数。5.3kb/s的编码器采用代数码线预测激励(ACELP);6.3kb/s的编码器则采用多脉冲最大似然量化(MP-MLQ)激励。根据传输编码参数,可重构激励源与合成滤波器进行解码,还原出来的数字语音信号经D/A转换器转换成模拟语音信号。关于G.723的编码和解码的详细说明见参考文献[2]。
javascript:window.open(this.src);" style="cursor:pointer;"/>
G.723算法对语音信号有很好的编解码效果,同时也可处理音乐和其它声音信号,典型输入是64kb/s(8k×8)或128kb/s(8k×16)的A律或μ律的PCM采样语音信号。每次处理一帧语音信号,每帧240个采样点(30ms)。在5.3kb/s的码率下,每帧语音被压缩成20个字节传输;在6.3kb/s的码率下,每帧语音被压缩成24个字节传输。
1.2 数字录音系统的结构框图
系统框图主要由图1所示的五部分组成。javascript:window.open(this.src);" style="cursor:pointer;"/>AD73311用来进行A/D和D/A转换,它集成了模/数和数/模转换功能,而且可编程控制,使用极其方便;ADSP-2181为系统的核心数字处理器[3],时钟频率为33MHz,其功能强大;KM29N32000为闪速存储器(Flash RAM),用来存储已压缩的语音数据;AT27C010(EPROM)用来存放控制ADSP-2181工作的程序;LCD用来显示系统当前的工作状态。
系统的工作流程是:模拟语音信号经AD73311采样并经A律或μ律压缩后转换成PCM数据,通过ADSP-2181的串行口送到ADSP-2181,ADSP-2181再将数据进行编码和压缩后送到闪速存储器KM29N32000中存储起来;录音回放时,从KM29N32000读取压缩数据,送回ADSP-2181进行解码,再送到AD73311进行D/A转换,输出模拟语音信号。整个过程都是由存放在AT27C010中的DSP程序控制,有条不絮地工作。LCD显示系统当前的工作状态。
2 系统各主要部分的原理与接口
2.1 AD73311与ADSP-2181的接口电路及编程控制
2.1.1 AD73311与ADSP-2181的接口电路
AD73311具有A/D和D/A转换功能,采样频率为8kHz~64kHz,可以编程控制,采样字长为16位。AD73311具有大信噪比、输入输出增益可编程控制、低工作电压(2.7~5.5V),并且一片两用的特点,是一种很受欢迎的芯片。AD73311与ADSP-2181的接口电路如图2所示。
AD73311完成模拟语音信号的采集和数字语音信号的回放工作。从图2中看出,信号从VIN处输入,在VOUT处输出回放语音信号。VIN处接麦克风,VOUT处接扬声器。与ADSP-2181的通信通过串口进行,从SDO引脚向ADSP-2181输出数据,从SDI引脚接收ADSP-2181数据,发送和接收可同时进行。时钟信号由ADSP-2181的SLCK引脚接入。
编程时必须先初始化AD73311的工作状态,依次设定采样率、输入输出增益、提前时间等,再让其工作在数据传输模式下就可正常工作。AD73311进入数据传输模式后一直进行A/D或D/A转换。在编程控制中,应让ADSP-2181的串口一直工作在接收中断方式,这样可使数据发送与接收的速率保持一致。要改变工作模式可将其RESET引脚置低,再置高,这样就可重新设定了。
2.1.2 AD73311的编程javascript:window.open(this.src);" style="cursor:pointer;"/>
AD73311是一种可编程的数据转换器,内含五个8位控制寄存器CRA~CRE,用于设定工作状态,控制输入输出。AD73311通过串行口与处理器接口,传送的是16位数据,有五种工作模式,分别为:程序模式、数据模式、混合模式、模拟环路模式、数字环路模式。其中前三种是正常的工作模式,后两种是调试模式,仅在调试时使用。五种工作模式由内部的控制寄存器A中的四位(CRA0~3)控制。
程序模式:AD73311启动或重置后即工作于程序模式,此时AD73311串行口输入的数据将作为命令字以初始化内部控制寄存器组,之后AD73311根据初始化命令字进入相应的工作模式,在此之前AD73311串行口输出的码字是无效的。
数据模式:此时AD73311串行口输出的是A/D转换的16位数据,输入的是D/A转换的16位数据。AD73311一旦进入数据模式,就不能再得到控制信息,所以就永远处于这一模式,除非重启动。这时硬件上可采用发送接收帧同步信号同步方式。
混合模式:此时16位码字可能是控制字,也可能是数据。码字的最高位MSB用来标识这个码字是控制命令字(MSB=1)还是数据(MSB=0,低15位是有效数据)。在混合模式下,ADSP-2181可以根据系统的运行状况适时改变AD73311的工作参数,如放大器的放大倍数等。这时硬件上可采用发送接收帧同步信号异步方式,便于ADSP-2181的自主控制。
AD73311控制采样率由时钟分频电路完成。时钟分频电路将从DMCLK引脚输入的外部时钟频率MCLK通过主频时钟因子分频为内部时钟频率DMCLK,MCLK有五种频率选择,由内部控制寄存器B中的CRB4~6三位控制。DMCLK决定了AD73311的采样频率,它也是AD73311串行口的帧同步频率。DMCLK再经串行时钟分频因子分频为串行时钟频率SCLK,DMCLK有四种选择,由内部控制寄存器B中的GRG2~3两位控制。
javascript:window.open(this.src);" style="cursor:pointer;"/>