位置:51电子网 » 技术资料 » 通信网络

基于FPGA的32Kbit/s CVSD语音编解码器的实现

发布时间:2008/5/29 0:00:00 访问次数:980

  64 kbit/s的a律或μ律的对数压扩pcm编码在大容量的光纤通信系统和数字微波系统中已得到广泛应用,但由于占用较大的传输带宽和具有复杂的成帧结构,pcm编码不适合无线语音系统的应用。连续可变斜率增量(continuously variable slope delta,cvsd)调制以其较低的应用难度、成本和编码速率,较好的语音质量广泛应用于战术通信网、卫星通信、蓝牙等无线语音传输领域。近年来fpga不断发展演化,并在构架方面针对dsp应用有了显著增强。这些增强使得fpga能够支持各领域的众多复杂dsp应用,如电信(基站信号处理、雷达信号处理等)、多媒体处理(视频处理、音频信号处理等)及其他应用领域,笔者结合fpga的灵活性、强大的数字信号处理能力、较短的开发周期,提出了基于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)

  

  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。

  升余弦窗具有较好的旁瓣抑制和阻带衰减,数字低通滤波器设计成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所示。比较判决

  64 kbit/s的a律或μ律的对数压扩pcm编码在大容量的光纤通信系统和数字微波系统中已得到广泛应用,但由于占用较大的传输带宽和具有复杂的成帧结构,pcm编码不适合无线语音系统的应用。连续可变斜率增量(continuously variable slope delta,cvsd)调制以其较低的应用难度、成本和编码速率,较好的语音质量广泛应用于战术通信网、卫星通信、蓝牙等无线语音传输领域。近年来fpga不断发展演化,并在构架方面针对dsp应用有了显著增强。这些增强使得fpga能够支持各领域的众多复杂dsp应用,如电信(基站信号处理、雷达信号处理等)、多媒体处理(视频处理、音频信号处理等)及其他应用领域,笔者结合fpga的灵活性、强大的数字信号处理能力、较短的开发周期,提出了基于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)

  

  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。

  升余弦窗具有较好的旁瓣抑制和阻带衰减,数字低通滤波器设计成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所示。比较判决

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!