• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 水声OFDM系统中卷积码译码设计及其DSP实现

水声OFDM系统中卷积码译码设计及其DSP实现

录入:edatop.com     点击:

通过宏定义,大量的蝶形运算在编译时间里进行宏展开代入表达式,这样运算速度会比子程序设计快, 而且不需要大量的寄存器变量。程序中还定义了两个记录度量长度的数组,循环进行数组更新,不需要再定义中间变量或指针进行数组的更新,可以提升DSP运算速度。

2.2.2 软判决量度

计算接收到的比特与理论输出比特的距离度量公式为:bm[i0 i1]=metric[i0 r0]+metric[i1 r1]。其中i0、i1为理论输出数据,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).

来源:电子技术应用

上一篇:基于线程局部存储技术的多通道数控系统仿真
下一篇:基于ARM和Linux交叉开发环境的搭建

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图