64 Kbit/s的A律或μ律的对数压扩PCM编码在大容量的光纤通讯体系和数字微波体系中已得到广泛使用,但由于占用较大的传输带宽和具有杂乱的成帧结构,PCM编码不合适无线语音体系的使用。接连可变斜率增量(Continuously Variable Slope Delta,CVSD)调制以其较低的使用难度、本钱和编码速率,较好的语音质量广泛使用于战术通讯网、卫星通讯、蓝牙等无线语音传输范畴。近年来FPGA不断发展演化,并在构架方面针对DSP使用有了明显增强。这些增强使得FPGA可以支撑各范畴的很多杂乱DSP使用,如电信(基站信号处理、雷达信号处理等)、多媒体处理(视频处理、音频信号处理等)及其他使用范畴,笔者结合FPCA的灵活性、强壮的数字信号处理才干、较短的开发周期,提出了依据FPGA的32 Kbit/s CVSD语音编解码器。
1、 CVSD原理
增量调制(Delta ModulaTIon,DM)用一位编码表明相邻样值的相对巨细,然后反映出抽样时刻波形的改变趋势,它分为线性增量调制(Linear Delta ModulaTIon,LDM)和自适应增量调制(AdapTIve Delta ModulaTIon,ADM)。LDM中选用固定的量化台阶△,在量化编码的进程中会引起两类失真,一类是斜率过载失真,它是由于量化台阶△过小,跟不上信号波形中斜率峻峭部分形成的,另一类是颗粒失真,它是由于量化台阶△过大,在信号波形斜率较小部分形成的。CVSD是一种自适应增量ADM算法,动态调整量化台阶△的巨细随输入信号改变,当输入信号起伏改变率增大时,量化台阶相应增大,当输入信号起伏改变率减小时,量化台阶相应减小。
2、 CVSD编解码算法
2.1 编码算法
编码算法流程如图1所示,x(n)为输入语音采样信号,采样频率fs=32 kHz,xp(n)为一阶猜测值,d(n)为输入采样信号x(n)和一阶猜测值xp(n)的差值,β为量阶衰减因子,△0为初始量阶。模块L完成电平转化,输入c(n)=1时输出为+1,输入c(n)=0时输出为-1,因而模块L的输出值为2c(n)-1。
当x(n)≥xp(n)时,d(n)≥0,编码输出c(n)=1,当x(n)《xp(n)时,编码输出c(n)=0。CVSD编码进程中,动态地调整量化台阶△(n),当检测到接连3个编码“1”或许接连3个编码“0”时,阐明信号斜率峻峭,这时量阶增大△0。
2.2 译码算法
译码算法流程如图2所示,它是编码的逆进程,由于积分器输出的xQD(n)是阶梯波,有较高的谐波重量,这儿经过一个数字低通滤波器滑润积分器的输出。当c(n)=1时,xQD(n)=xQD(n-1)+△(n);当c(n)=0时,xQD(n)=xQD(n-1)-△(n)。其间量阶△(n)的取值同编码算法。
3、 FPGA的规划和完成
3.1 参数规划
CVSD编译码算法中涉及到量阶衰减因子β、初始量阶△0和低通滤波器系数的规划。量阶衰减因子满意:β=1-T/τ,T表明语音信号的周期,语音信号频率f=300~3 400 Hz,所以周期T=0.29~3.30 ms,τ为音节时刻常数,一般情况下τ=5~10ms。△0的选取很重要,假如△0选取过小,会导致初始的一段时刻量化的数字信号与输入信号之间存在较大的失真,需求经过较长的时刻才干盯梢上输入信号,为削减颗粒失真和过载失真,依据欧洲通讯安排规范,结合屡次的MATLAB仿真测验,取β=0.855,△0=0.043,如图3所示。
升余弦窗具有较好的旁瓣按捺和阻带衰减,数字低通滤波器规划成14阶升余弦窗有限脉冲响应(Finite Impulse Response,FIR)滤波器,其参数采样率fs=32 kHz由于语音信号频谱会集在300~3 400 Hz,数字低通滤波器通带截止频率规划为fc=4 kHz/32 kHz=0.125,FIR滤波器系数向量B=[0.0029 0.0086 0.02600.058 0 0.1000 0.1400 0.1645 0.1645 0.1400 0.1000 0.058 0 0.0260 0.008 6 0.002 9]。如图4所示,由于信号经过14阶FIR低通滤波器,输出信号与原采样信号比较存在必定的延时,经低通滤波后原信号得到了较好的康复。
3.2 CVSD编解码器
硬件设计时选用自顶向下的规划办法,将编解码器分红各种功能模块。CVSD编码器负责处理采样频率32 kHz采样的16 bit语音信号,由比较判定模块、三连码检测模块、量阶调整模块和猜测值发生模块组成,硬件结构如图5所示。比较判定模块将猜测值发生模块发生的猜测值与语音信号值进行比较,假如输入语音信号值≥猜测值,则编码输出“1”,不然编码输出“0”。编码输入三连码检测模块进行三连电平的判定,经过量阶调整模块和猜测值发生模块发生动态的量阶和猜测值。其间猜测值发生模块需求留意避免数据溢出。
CVSD解码器负责处理32 kHz的单比特符号,依据图2,编码进程中猜测值的发生模块就现已完成了译码进程,后边数字低通FIR滤波器选用分布式算法(Distributed Arithmetic,DA)进行规划,极大地提高了乘累加运算的效能且节省了FPGA的硬件资源。解码器还需求规划一个时钟发生模块,由于选用分布式算法的14阶的低通滤波器的时钟频率是数据时钟的16倍。
4 、仿真测验
选用Quartus Ⅱ6.0进行开发仿真,verilog言语编程。为了便于软件仿真,规划了DDS信号源,CVSD编码器的输入由正弦信号源DDS模块供给。仿真成果如图6所示。
最终在Altera DE2开发板进步行了硬件测验,芯片为Cyclone II EP2C35,编解码器硬件资源耗费见表1。A/D输入模仿的语音信号,采样频率32 kHz,采样信号经编码器、解码器、低通滤波再经过D/A转化输出解码的语音信号,如图7所示。测验成果表明输出语音信号抱负,阐明规划是可行的。
5、 结束语
CVSD是一种自适应增量脉冲编码调制,对误码有很强的鲁棒性,拿手处理丢失和被损坏的语音采样,编码器是单比特编码,和PCM比较不需求杂乱的成帧设备,而且解码器中集成了数字低通滤波器,使得编解码设备简略,归纳这些优越性,CVSD特别合适使用于无线语音通讯体系,具有很宽广的使用远景。
责任编辑:gt