水声OFDM系统中卷积码译码设计及其DSP实现
据,r0、r1为接收到的数据, metric[ ]为分支度量。软判决的分支度量值为欧氏距离,即metric[A B]=,如果直接计算,将大大增加计算复杂度。从DSP实现角度考虑,用另一个软判决量度来代替欧氏距离。此量度必须满足两个要求:(1)其大小要体现欧氏距离的大小;(2)计算简单,易于DSP实现。可以用欧氏距离平方代替欧氏距离,即metric[A B]=(A+B)2=A2+B2+2AB。由于i0、i1的值为1或-1,可以证明,对于给定的r0、r1,不同的i0、i1,计算bm[i0 i1]=metric[i0 r0]+metric[i1 r1],其分解后的平方项都是相等的,区别仅在于2r0、2r1项前符号的正负。因此可以将软判决距离度量公式修改为bm[i0 i1]=i0×r0+i1×r1。
优化后的程序流程如图4所示。先对译码器的各种参数初始化,然后读入输入字节,每次取两位计算分支度量, 进行加_比较_选择,从当前度量old_pm[ ]计算后得到下一状态度量new_pm[ ],再读取两位计算分支度量,调用蝶形运算2,从new_pm[ ]计算后得到old_pm[ ]。循环进行上述数组更新运算,直到所有输入字节处理结束。中间加入一些判断语句以控制程序进行回溯,将得到的译码输出位存储到输出字节[5]。
比较Viterbi译码DSP优化前后所需时钟周期数,以发送1个OFDM符号为参考,如表1所示。由表中数据可知,优化后发送接收一个OFDM符号节省了1 027 692个时钟周期。TMS320DM642主频600 MHz,可以计算出所节省的时延为1.7 ms。
3 海洋实验
该DSP系统在厦门五缘湾海域进行点对点通信实验,通信距离为800 m,收发换能器距海面2.5 m。海洋实验发送的总数据量为32 640 bit,选取了3组典型数据,将DSP译码结果与Matlab译码结果进行对比,如表2所示。
由表2可以看出,原始误码个数在2 800~3 100范围内时,DSP硬译码纠错个数为2 200左右,软译码纠错个数为2 400左右,并且DSP译码与Matlab译码性能相当。
本文将卷积交织、卷积编码和Viterbi译码引入了水声OFDM系统,根据水声信道特点和多次水池实验确定其参数。在TMS320DM642上实现时,对于卷积交织采用查表法,对于Viterbi译码采用蝶形运算宏定义和双数组循环更新以减小时延,保证了译码实时性。通过海洋实验验证了DSP实现软硬译码的性能。
参考文献
[1] 王新梅,肖国镇.纠错码--原理与方法[M].西安:西安电子科技大学出版社,2001.
[2] 吴沫,杨华,卢伟.几种信道编码方式的编码增益比较分析[J].通信技术,2007,40(11).
[3] 王德清.OFDM高速水声通信系统的DSP实现及同步技术研究[D].厦门大学学报,2005(6).
[4] 吴子彧,余松煜,管云峰,等.基于卷积交织的SDRAM控制器的设计[J].Circuits and their applications,2006(12).
[5] 张海勇.一种卷积码维特比译码算法的软件实现[J].计算机与数字工程,2005,33(6).
- 一种基于Turbo 码的MIMO-OFDM检测系统的设计(05-15)
- 基于OFDM调制技术的配电自动化通信系统研究(11-30)
- PF-503数字移动微波在马拉松直播中的应用(10-12)
- 一种应用于OFDM系统中的符号精确定时算法的FPGA实现(09-07)
- OFDM系统的频域同步估计技术介绍(05-02)
- 一种基于DSP+FPGA的软件无线电平台的设计及应用(07-05)