公共广播技术网 >> 公共广播技术纵横 >> 公共广播新技术 >> 数据传输的差错控制技术在多媒体公共广播系统中的应用
数据传输的差错控制技术在多媒体公共广播系统中的应用 1970/01/01 19:07 点击:770 / 回复:0

 

 

田备 薛伟
【摘要】本文介绍了多媒体公共广播系统中上位计算机和下位计算机之间数据通讯的差错控制技术,由于采用择多判决和循环码纠错软件技术,大大增强了系统的抗干扰能力。
关键字误码:编码:解码:矩阵
AbstractThis paper introduces an error control technique of data transmission between upset and down-set in the computer-multimedia public broadcasting system by using the multiplex judge and the software technique of error-correcting cyclic code,the interference immunity of this system is greatly enhanced.
Key Wordserror code;encode;decryption;matrix judge
— 引言
我们在研制多媒体公共广播计算机控制系统时,采用如下图构成方案:
其中下位机由8031单片计算机组成,上位机为80586计算机,数据的通信为双向。其提高数据传输的可靠性是我们研究的重点。除了对电缆的电气特性、地理环境加以认真分析、选择以外,我们在数据传输过程中,一方面采用重发择多判决,以降低传输的误码率,另一方面又采用了纠错编码技术。这双重的差错控制技术就大大地提高了数据传输的可靠性。
由于循环码具有编、译码方便,且纠错功能较好[1][2][3][4],因而本题中采用(15,8)循环码。又因为本系统的运算能力有足够的冗余度,因而采用软件方案来编、译码。
二、循环码概述与(15,8)码构成
设集合F2={0,1},则它对模2加法为有限群。又设F2[x]为F2上的多项式集合,首一非零多项式g(x)∈F2(x),对以f(x)∈F 2(x)为模的多项式代数中的每个理想I,都存在唯一的g(x),使{g(x)}∈I。反之,每个能整除f(x)的首一非零多项式g(x)得生成一个理想,使g(x)在I中是最低次的首一非零多项式[1]。
设f(x)=Xn+l,且An为以f(x)为模的多项式一个代数,则An的子空间C为循环子空间的充要条件为:C是An的一个理想。
由上可知,循环码可由能F2上整除f(x)=xn+1的首一非零多项式g(x)生成,即g(x)∣f(x)。由于g(x)是使{g(x)}属于某一理想的最低次首一多项式,故g(x)称为此理想的生成多项式。这样,在An中,循环码的每个码字多项式都可表为g(x)的倍式:反之,g(x)的所有倍式都是循环码字多项式。
上述结果可具体化为:设(n,k)循环码的码字C=(C0,C1,…,Cn-k-1,Cn-k,…,Cn-1,其中Cn-k,…,Cn -1为信息位,则码字多项式C(x)可表为:
C(x)=C0+ClX+…CKXK+…+C n -1Xn-1=g(x)m(x)
其中g(x)为生成多项式,m(x)为信息码多项式。a°g(x)=n-k,n=2m-l。由此可推出循环码的生成矩阵和校验矩阵。因为循环子空间C的一组基底为:
{g(x)},{xg(x)},{x2g(x)},…,{XK-1g(x) }
则C的nxk维生成矩阵G为:
    其中g(x)=g0+glX+…+gn-kxn-k。通常,系统码在实用中更为方便,而由上得到的G却不一定满足要求。方法之一是对G施以初等变换,使之可表为下述矩阵形式:
    G=[R,∣Ik]               (2.1)
    其中R为kx(n-k)阶,Ik为k阶单位。校验阵H也可视为C的对偶码C-的生成矩阵,它可由   
    f(x)=g(x)h(x)
    再取h(x)的互反多项式h*(x)生成校验阵H。而对于系统码,则直接有:
    H=[In-k ∣RT            (2.2)
    在本题中,我们采用(15,8)码,生成多项式g(x)取为:
g(X)二l+x+x3+x7
则形式为(2.1)的系统码生成矩阵G为:
 
设接收码字多项式为R(x),错误图样多项式为E(x),伴随多项式为S(x),则:
S(x)=[R(x)]mod g(x)
   =[C(x)+E(x)]mod g(x)
=[E(x)]mod g(x)
显见,最高位错误图样为(1010001)。
循环码不是唯一的,例如利用有限扩域GF(2m)上的非零元对应的极小多项式的公倍式得到的BCH码等的纠错能力更强,但译码算法也较复杂。由于前面已采用了重发及择多判决,本文循环码的纠错性能已能满足要求。
 
三、编、译码器的算法实现
 
编、译码器可由G和H而得以实现,也可用更为方便的算法得到。
将(n,k)循环码的码字C重记为C=(1011…1n-km0m1…,mk-1),其中m0,m1,…,mk-1为信息码,则信息码字多项式m(x)为:
m(x)=m0+mlx+…+mk-1xk-1
又因
C(x)=l(x)+xn-kM(x)=m(x)g(x)
[C(x)] mod g(x)=l(x)+ [xn-km(x)] mod g(x)=0
这是有限域GF(2)上的除法运算,l(x)是xn-km(x)对g(x)的余式。己知消息位m0,m1,…,mk-l,需确定校验位10,l1,…,ln-k,则系统循环码的编码器可用下述除法电路予以实现:
实现过程为:
1.门1,2打开,接通A,信息码m0ml…mk-1输入;此时Dn-k-1,…,D0中即形成校验码;
2.门1,2关闭,接通B,移出校验码。
我们的(15,8)码的生成多项式g(x)为:g(x)=1+ x+x3+x7
 
即:g0=gl=g3=g7=l,由此即可方便地形成编码器。
由前己知:S(x)=[E(x)]mod g(x)
可见译码纠错电路也是除法电路。鉴于用g(x)除以xiS(x)得到的余式S(i)(x)就是R(x)经i次循环移位后的R(i) (x)的伴随式,因此梅吉特通用译码器始终只要将伴随式寄存器结果与最高位错误图样相比较即可方便地纠错,故而我们采用梅吉特通用译码器:
实现过程为:
(1)门1,2,3打开,接收码字输入(其中门2在输入k位信息位后即关闭;n位输入后门l也关);
(2)当伴随寄存器的结果与最高位错误图样一致时,说明最高位有错,检测器电路输出1;否则输出零。接着,门4和门5开,同时,自缓冲寄存器中读出第一个接收符号,并进行二个操作:(a)如门4输出l,则第一个接收符号由加法器与“1”相加而经门5得到纠错输出;如门4输出0,则第一个接收符号按原值经门5输出;(b)如门4输出1,则伴随寄存器得最高位修正后的S(i) (x):如门4输出0,则伴随式寄存器中为原输入码字的S(1) (X);
(3)重复第2步,直到k位信息数字全部输出为止:
(4)伴随式寄存器复位:
(5)重复第1步,接收下一组码字。
由前可知,对g(x)=1+x+x3+x7的(15,8)循环码,最高位错误图样为(1010001)。
 
四、软件实现
 
#Include“dos.h”
int prcode(char *prt,int nu);
union crccode
{unsigned char crch,crcl;
unsigned short crc:
}
prcode(char*prt,int nu)
{union crccode c;
char ch:int i,j;
c.crc=oxffff:
for(i=0;i
{ch=*(prt+i);
c.crcl=c.crcl ˆ ch:
for(j=0;j<8; j++)
{if((c.crct & 0x0)!=0)
{c.crc=c.crc >>l;
c.crc=c.crc ˆ 0x4b;
}
else{c.crc=c.crc>>l;
}
}
}
return(c.crc);
}
 
五、结论
 
检、纠错技术是数据通信的关键问题之一,如对误码率不严加控制,有时会带来无法估量的损失。我们采用了双重保险后,运行实践表明效果是理想的。
循环码仅能纠正随机差错。我们还在努力寻找简单的纠正突发差错的编、译码方法,使系统得以更为完善。
 
文章:youk [1970/01/01 19:07]
评论

粤ICP备05077917号