CDMA系统多速率判决技术
发布时间:2006-10-14 8:00:26   收集提供:gaoqian
苏勇1,张剑峰1,何加铭2

(1.解放军理工大学通信工程学院;2.宁波大学通信研究所)


  摘 要:在CDMA移动通信系统中,由于采用了可变速率声码器,所以在接收端需要用多速率判定算法来获取速率信息,从而正确地接收数据。本文介绍了多速率判定算法,分析了信道误码计数度量(SER)、山本度量YQM(Yamamoto QualityMetric)和CRC校验度量3种判定度量的产生原理和软件无线电实现方法,同时使用DSP+FPGA的结构对多速率判定进行了优化实现。

  关键词:CDMA;多速率判决;SER;山本度量

  在IS-95,IS-2000系统中,语音的数据传输速率主要有4种:9 600 b/s,4 800 b/s,2 400 b/s,1 200 b/s,分别称其为全速率、1/2速率、1/4速率和1/8速率。当数据以低于全速率的速率编码时,数据比特要重复发送以“填满”整个帧。为了节省带宽,系统并不发送每帧的速率信息,因此接收机无法知道发送数据速率,只能通过提取信道质量信息,判定发送端可能发送的速率。同时,变速率也为随路信令的传输提供了方便,有些信令信息可以插入到降速帧中。

  接收机进行速率判定主要依据3种度量值,信道误码计数(SER)、可靠性信息——YQM(Yamamoto Quality Metric)[1]和CRC校验。其中SER度量对4种速率有效;YQM度量对较低两速率有效;而CRC度量对较高两速率有效。接收机根据8个度量值进行多速率判决算法,从而得到正确的速率信息,最终得到正确的语音数据输出。图1为整个多速率判定的示意框图。



  本文将对多速率判决进行分析,分析了3种判决度量产生原理,同时引入了一种软件无线电(DSP+FPGA)结构来实现度量值产生和多速率判决算法,采用串行实现方法和存储器分裂法,使得占用资源和处理时延大大减少。

  

1 度量值计算

  接收机在对4种假设速率数据进行信道Viterbi译码[2]后,将进行多速率判定。此时,需要得到假定速率的正确性度量。在CDMA系统中,他包括3种度量,分别是SER,YQM和CRC度量。

  (1)SER是信道误码计数度量,反映的是Viterbi译码器的纠错能力和信道恶劣程度。他是指对译码后的数据再在本地进行卷积编码,然后以数据帧为单位和接收到的数据做硬判决后的结果比较。如果在信道不是很恶劣的条件下,当假设速率不正确时,SER度量将会很高,也反映了假设速率的真实程度。他对4种速率帧都有效。

  (2)CRC是帧质量指示度量。CRC编码是一种使用非常广泛的循环分组码。在IS95和IS2000基带处理中,他只起检错和多速率判决作用,而没有纠错功能。在多速率判决中,CRC度量只对全速率和1/2速率数据帧起作用。在移动台调制过程中,全速率和1/2速率的帧质量指示比特的生成多项式如下:



  通过对循环分组编码的分析,很容易得到译码电路就是一个伴随式计算电路[3],也就是一个生成多项式除接收符号的除法电路,使用移位寄存器和反馈电路可以实现。

  

  (3)山本度量是低速率帧的帧质量指示度量。1/4,1/8两种低速帧没有CRC比特,这时的帧质量指示度量要使用山本度量。Viterbi卷积译码是一种最大似然译码算法,也就是要在Trellis图中找到一个序列C,使得在已知接收序列R情况下,发送C的概率最大。这等价于找一个与发送序列距离最小的序列。但是如果在Trellis图中的次优序列同最优序列之间的距离较小,那么判定译码输出序列为最优序列的可信度较小。山本量度就是用于度量这一可信度的。具体的算法如下:

  参照图2,设i-1时刻,所有状态均为“好”,以Ω表示,“坏”状态以X表示,路径度量(距离)以m[]()表示,A为阈值。





  则选择路径bfs,则S0仍标为Ω;若选择路径dhf,则S0标为X,因为其路径中已有不可靠状态。此过程持续到译码结束,若2m个状态均标为X,则山本度量为“差”,否则为“好”。

  在设计中,设置了2个山本度量存储器,一个存放旧的山本度量值,一个存放新的。在译码的路径度量更新时,对每一状态同时更新山本度量值。对2个度量存储器的操作采用存储器分裂法,充分利用了FPGA的速度优势,提高了并发程度,减少了处理时延。

2 多速率判决

  在获得了度量值后,系统将通过8个量度S1(全速率SER)、S2(半速率SER)、S4(1/4速率SER)、S8(1/8速率SER)、Q1(全速率CRC校验)、Q2(半速率CRC校验)、Q4(1/4速率山本量度)、Q8(1/8速率山本量度)来判决数据速率。由于较高的2个速率有更准确的CRC校验,所以没有必要再用山本量度。速率判定后,处理器发给FPGA中的缓冲器相应信号,输出相应速率的译码数据。



  图3是速率判决算法的流程图。其中符号含义如下:

  

  1X表示全速率;2X表示1/2速率;4X表示1/4速率;8X表示1/8速率;1XL表示可能是全速率,但有误比特;E表示删除坏帧。T1~T10为判决门限,他们是通过用实际的语音数据经过大量的仿真得到的经验门限值,必须保证这些门限值是完全适用于CDMA移动通信环境。

  速率判决算法包括以下几个准则:

  (1)SER是最重要的判决变量。

  (2)Viterbi译码的山本量度和CRC校验可以作为辅助判决变量。

  (3)着重保证全速率的判决,因为全速率占所有帧的60%,而且全速率帧用于传输随路信令。

  (4)根据变速率声码器编码选择速率的规则,数据速率每帧只允许下降一个级别。例如,如果前一帧的速率为全速率,而当前帧根据算法为1/4和1/8,编码器仍旧选择速率1/2。

3 优化实现

3.1 DSP+FPGA实现结构

  在我们的设计中,多速率判决模块采用DSP+FPGA软件无线电结构。其中速率判定属于控制部分,放在C54DSP中完成。由于多速率判定算法实现代码相对简单,而且对时延要求不是非常严格,所以在实现中采用C代码编写。而3种度量值的产生实时性要求较高,而且和多路Viterbi译码结合紧密,因此使用Altera公司的APEXFPGA实现。FPGA和DSP的数据通过FIFO交互,控制信息通过寄存器交互。

  在度量值产生中,如果采用全并行处理,即同时并行处理四路假设速率帧,则占用FPGA逻辑资源太大,因此采用串行实现方式。在CDMA2000中,由于要求在一帧20 ms中完成4种速率帧的形成,所以模块基本时钟由原先的28.8 kb/s增加至57.6 kb/s。另外,为使共享的山本度量存储模块有充分的时间进行内部RAM复位,所以4种速率帧之间加入4个时钟周期的空闲段。

  实验表明,此种结构实时性好,而且由于判决算法在DSP中完成以及串行度量处理,减少了对硬件逻辑单元的占用。

3.2 存储器分裂法

  为了提高并发程度,充分利用FPGA的速度优势,对于山本度量的读写控制采用存储分裂方法,即逻辑RAM和物理RAM分开。这样可以在4个基本时钟内完成一次山本度量的更新运算。基本思想就是在一个时钟能同时取出i和i+128的度量,进行运算后存入相应的存储单元,完成山本度量的更新。在物理上,存在2个独立的存储器RAM1和RAM2,各自有数据线和地址线,但在逻辑上将其均匀地分为2个子存储块,分别作为I时刻和I+1时刻的存储单元。依据这个思想,地址产生器产生正确的地址逻辑,处理时延也将大大减少。

4 结语

  变速率声码器技术在移动通信中的应用非常普遍,具有降低功率、增加信道利用率等优点。在信道接收机中需要对数据速率进行检测判决。本文引入了一种多速率判决技术,他由度量值计算和判决算法两部分组成。在具体实现中,采用了DSP+FPGA结构,在时延和资源配置上达到较好的性能。同时,采用了串行实现和存储器分裂等优化手段,减少了处理时延和资源占用。

  参考文献

[1]Omura JK.On the Viterbidecoding algorithm[J] .IEEE Trans .Information Theory,1969,(15):117-179.

[2]ViterbiA J.The orthogonal-random Waveformdichotomy for digital mobile personalcommunication[J].IEEE Personal Communication,1994,1.1(1):18-24.

[3]Mobile station base station compatibility standardfor dual-mode wideband spread spectrum cellularsystem[S].TIA/EIAInterimStandard TIA/EIA/IS-95.1995.


摘自 现代电子技术
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50