II.相关领域的描述
现代通信系统的复杂性以及对市场因素苛刻的时间要求对通信系统的
设计产生了巨大的压力。复杂性是因为大量的信号处理、大量的硬件块、复
杂的数据协议以及众多的操作模式所产生的。通常要求微处理机能够协调和
控制多种任务的混合。
系统的复杂性使得设计和任务的调试变得困难起来。负荷特别重的是
软件的开发,这是因为这一阶段必须将整个系统组合起来,并且经常是在高
度时间进度的压力之下的。为了缓和系统的复杂性,并减轻时间进度压力,
某些现代的通信系统被设计成具有在系统开发以后接受可在空中下载的软件
或微代码的能力。这些系统一开始具有不完全的软件功能,计划在加进新性
能或者在发现并去除了缺点故障后升级到新的软件。
文件转发系统的设计必须针对大量远端站正确接收的问题。在典型的
通信系统中,中央站和远端站之间的数据传输受到传输信道的影响特别是传
输带宽内附加噪声和寄生信号的妨碍。信号还可以因其他的现象如到达远端
站之前的多径而失真。为了克服这些影响,并提高远端站的正确检测,在传
输前对数据进行编码。
采用两种类型的编码即分组编码和卷积编码来提高正确接收。卷积编
码具有良好的纠错能力,但通常输出相关的突发差错。当分组编码与恰当层
次的交错结合时,分组码包括具有内建的突发差错处理能力。事实上,
Reed-Solomon分组码可以处理码元内所有的突发差错。当卷积编码自己不
能产生所需的编码增益时,可以采用含有分组码和卷积码的串接码。
可能需要将大量的数据转发到许许多多的远端站的这样一种系统是码
分多址(CDMA)通信系统,它符合“宽带扩展谱数字蜂窝系统的TIA/EIA/IS-
99数据服务选择标准(TIA/EIA/IS-99 Data Service Option Standard for
Wide-band Spread Spectrum Digital Cellular System)”,该标准在此引
述供参考。按照IS-99标准,将数据分隔成数据帧,并按分组进行编码,
以产生帧质量指示,或循环冗余校验(CRC)位。数据位和CRC位经卷积编码,
并在空中传送出去。远端站接收并解调信号,对数据进行卷积译码,并用CRC
位确定所接收的数据是否有差错。CRC位能够在传输过程中检错,但不具备
纠错能力。
按照IS-99标准,对数据帧进行编码,形成20毫秒宽的编码信道帧。
在从中央站到远端站的前向链路上,每一编码信道的码元速率是19.2Ksps。
即每一编码信道帧为384个码元。采用速率1/2卷积编码器对数据进行编码,
数据速率可以达到9.6Kbps。在9.6Kbps数据速率下,每一编码信道帧有
192位。按照IS-99标准,192位由172个信息位、12个CRC位和8个编
码尾位(tail bit)组成。采用其他的编码率,可以得到更高的数据速率。例
如,可以用1/2的卷积编码器并在每8个码元中删除两个码元,可以实现14.4
Kbps的数据速率,以获得截断速率3/4的卷积编码器。这时,每一编码信
道帧含有576个码元或288位。
CDMA通信系统是一个全双工的通信系统。远端站在独立的反向链路上
与中央站通信。在检测到不可纠正的帧差错时,远端站向中央站提出重发接
收有差错的数据帧。如果中央站试图将一个大的软件文件下载到大量的远端
站,不恰当的编码会产生许多接收不正确的数据帧。中央站会经历一个来自
许多远端站请求的瓶颈,每一个请求均请求重发不同的数据帧。在这种情况
下,向许多远端站传送大的软件文件会大大受到IS-99标准提供的不合适
的编码增益的影响。
符合IS-99标准的CDMA中央站的卷积编码器具有约束长度为9(K=9)
而码率为1/2(N=2)。卷积编码器按照N个生成多项式组将每一个输入位编
码成称为编码分支的N个编码位。每一个生成多项式G(x)计算一个编码位。
N个编码位组合成N-位编码分支。编码器的约束长度K是编码过程中使用
的数据位数,并决定编码的纠错能力。长的约束长度K产生更好的性能,但
其代价是增加了软件的费用和计算的复杂性。由于每一输入位被编码成N个
编码位,所以卷积编码器的编码率是1/N。可以通过使编码位截断从1/N个
编码中得到其他的编码率。截断编码的处理见J.Cain、G.Clark和J.Geist
在“码率为(n-1)/n的截断卷积码和简化的最大似然译码(Punctured
Convolutional Codes of Rate(n-1)/n and Simplified Maximun Likelihood
Decoding)”(IEEE Transaction on Information Theory,IT-25,pgs.97-100,
Jan 1979)。事实上,对于CDMA系统来说,码率为1/2和3/4的卷积编码用
于中央站与远端站之间的前向链路上的,速率的选择取决于中央站运行的方
式。
维特比算法用来在接收机处对发送的编码位进行译码。有关维特比译
码器的理论和运行的讨论见A.Viterbi在IEEE Transaction on
Communication Technology(Vol.COM19,no.5,Oct.1971,pgs.821-835)
上标题为“通信系统中的卷积编码和它们的性能(Convolutional Code and
Their Performance in Communication System)”的论文。维特比算法执行
发送数据路径的最大似然译码。对于每一接收的编码分支,计算所有进入每
一状态的分支的分支度量,并将其加到相应的先前路径度量中。选择进入每
一状态的最佳路径,并存储起来,作为新的路径度量。将选择的路径存储在
路径存储器中。1983年9月在Phoenix,AZ,Y.Ysuda等人在“第六届数字
卫星通信的国际会议”上的论文“可变率维特比译码器的开发及其性能特征
(Development of Varialble Rate Viterbi Decoder and its Performance
Characteristics)”中,指出,具有最低路径度量的存活路径(survivor path)
都在某一回溯跟踪深度以后均收敛到相同的路径。所以,通过在路径存储器
中回溯跟踪具有回溯跟踪距离的路径,得到有关维特比译码的位。
按照IS-99标准在CDMA通信系统中使用的CRC分组码是循环线性系
统分组码。CRC分组编码在本领域中是众所周知的,并且在许多文献中都作
了很好的描述。在系统分组码中,k个数据位形成码字的开头k个编码位。
按照生成多项式g(x),通过k个数据位的线性组合,形成n-k个一致校验
位。由于CRC分组码的线性、系统和循环的特性,可以用简单的移位寄存器
和“异或”门来实现编码过程。由于对k个数据位要发送n个编码位,所以,
编码率或数据速率的减小是k/n。
在符合IS-99标准的CDMA系统中,数据是用CRC分组码和卷积码来
编码的。CRC分组码仅具有检错能力,而不具备纠错能力。提供所有的纠错
的担子被压在卷积码身上。当将一个大软件文件下载到大量的远端站时,对
无差错接收的需要是特别重要的。如果卷积码自身的性能还不合适,则必须
采用附加的纠错分组码或卷积码,以确保远端站对软件文件的无差错接收。
较佳实施例的详细描述
参照附图,图1是本发明的数字传输系统的方框图。一种这样的系统
是码分多址(CDMA)通信系统。本典型实施例中,中央站2含有大量的信息,
例如,大量的软件文件,这些文件被下载到大量的远端站4。中央站2对数
据进行编码,并在前向信道10上发送信号。远端站4接收信号、对数据进
行译码,并在反向信道12上发送请求,用于错误接收的数据帧的重发。前
向和反向信道10和12可以是卫星传输信道或地面传输信道。
中央站2中编码器的典型方框图如图2所示。数据源20中含有大量的
数据,如软件文件。数据被分隔成数据帧(见图4),并发送到Reed-Solomon
编码器22。Reed-Solomon编码器22用Reed-Solomon分组编码对数据帧进
行编码,并将经Reed-Solomon编码的数据提供到缓冲器24。控制处理器26
连接到数据源20、Reed-Solomon编码器22和缓冲器30。控制处理器26控
制从数据源20提供的数据的方式、Reed-Solomon编码器22的操作以及将
经Reed-Solomon译码的数据提供到缓冲器24的方式。为了进行数据帧的在
传输,控制处理器26指挥数据源20提供请求的数据帧。控制处理器26可
以是以微控制器、微处理器、数字信号处理(DSP)芯片或ASIC编程以执行所
描述的功能的方式来实现的。
中央站2中IS-99调制器(IS-99 MOD)30和信号处理的典型方框图如
图3所示。在IS-99中,调制器30、CRC分组编码器32从缓冲器24接收
以数据帧形式的经Reed-Solomon编码的数据,并且对数据帧进行CRC分组
编码以获得CRC位。数据帧和CRC位存储在缓冲器34内。卷积编码器36从
缓冲器34接收经CRC编码的数据、对经CRC编码的数据进行卷积编码,并
将经卷积编码的数据提供到分组交错器38。分组交错器38对位重新排序,
并将经交错的数据提供到调制器(MOD)40。调制器40用长伪随机噪声码、沃
尔什码和短PNI和PNQ码对交错数据进行扩展。将扩展数据提供到发射器
(TMTR)42,对数据进行上变频、滤波和放大。合成的RF信号选择通过双工
器44的路由,并由天线50发射出去。
按照IS-99标准进行CRC分组编码和卷积编码。这样,对给定的操作
方式,预先规定CRC分组码和卷积码。IS-99标准还规定了数据由卷积编
码器36写入分组交错器38以及由调制器40从分组交错器38读出的准确的
顺序。
数据源20内容的典型图示如图4所示。数据源20内的数据被分隔成
数据帧。例如,数据帧1包含数据位m11、m12、m13等,而数据帧2包含数
据位m21、m22、m23等。对于给定的操作方式,数据帧的大小由IS-99标
准预先确定。例如,在9.6Kbps的数据速率下,每一数据帧有172个数据位。
为简化起见,图4中每一数据帧仅由9个数据位来代表。在不满足IS-99
标准的通信系统中,产生最大性能和最小硬件复杂程度的任何大小的数据帧
都在本发明的范围内。
Reed-Solomon分组码是对由一比特以上的码元进行运算的非二进制
码。所以,来自数据源20的数据位组成q个位的码元。在典型的实施例,
同一数据帧中的数据位组合形成q个位的码元。例如,来自数据帧1的数据
位m11、m12、m13等组合形成第一数据码元。类似地,来自数据帧2的数据
位m21、m22、m23等组合形成第二数据码元。
Reed-Solomon编码器22的编码率(n,k)决定输出码字的长度。码率(n,
k)Reed-Solomon编码器22将k个数据码元编码成n个编码码元的码字。编
码率决定分组码的纠错能力和存储要求。本发明可以适用于采用任何一种编
码率(n,k)。
Reed-Solomon是一种系统分组码。在系统分组码中,k个数据码元形
成码字的开头k个编码码元。其余的n-k个编码码元称为一致检验码元,是
由k个数据码元的线性组合形成的。
在典型的实施例中,Reed-Solomon编码器22对来自数据源20的数据
帧按列编码,并按列将输出码字存储在缓冲器24内。按列处理数据源20中
的数据以及按列写到缓冲器24使得含有位m11、m21、m31等的数据码元(见
图4)与含有位R11、R12等的一致检验码元(见图5)一起被编码成含有位
m11、m21、m31等的编码码元。在典型的实施例中,k个数据码元来自k个
数据帧,并且码字的n个编码码元被写在n个帧上。这种处理顺序保留了原
始的数据帧,并产生附在数据帧后的Reed-Solomon一致检验码元(见图4和
图5)。通过保留原始的数据帧,Reed-Solomon编码步骤对后续的信号处理
是透明的,并使得Reed-Solomon编码数据能够按照IS-99标准进行处理,
而无需进行硬件修改。
另外,数据码元还可以通过其他的排序方法形成,或由其他的顺序进
行编码。例如,可以将来自不同数据帧的数据位组合形成q个位的码元。所
以,数据位m11、m21、m31等可以组合形成第一数据码元,而数据位m12、
m22、m32等可以组合形成第二数据码元。Reed-Solomon编码随后可以按行
进行。按行进行的处理产生含有待编码的含有数据位m11、m12、m13等的数
据码元。Reed-Solomon一致检验码元可以随后写到相同的行中作为数据码
元,也可以写到缓冲器24中的另一个区域内,例如附在最后的数据帧后面。
最好保留原始的数据帧,这是因为后续的编码能够符合IS-99标准。本发
明也可以应用于任何一种排序方法,用以形成数据码元并对其进行编码。
远端站4中IS-99解调器(IS-99DEMOD)80和信号处理的典型方框图如
图6所示。远端站4中译码器典型的方框图如图7所示。远端站4中的译码
器执行与中央站2中的编码器相反的操作。参见图6,发射的信号由天线62
接收、选择通过双工器64的路由,并提供到接收器(RCVR)66。接收器66对
信号进行下变频、滤波、放大和量化,以获得数字化的基带信号。解调器
(DEMOD)82接收数字化基带信号并用短PN码、沃尔什码和长PN码执行去扩
展功能。将经解调的数据提供到分组解交错器84。分组解交错器84以相反
的顺序对位重新排序,这是由中央站2进行的。将经解交错的数据提供到维
特比译码器86,并进行卷积译码。经卷积译码的数据存储在缓冲器88内。
CRC校验元件90接收经卷积译码的数据,并进行CRC校验,以确定帧差错。
上述解调和译码符合IS-99标准。
后续信号处理由图7中所示的方框图描述。将来自IS-99解调器80、
特别是CRC校验元件90的经CRC校验的数据提供到缓冲器102。缓冲器102
的内容可以如图5中所示,减去右边一侧的CRC位。Reed-Solomon译码器104
从缓冲器102接收经CRC校验的数据,并且能够与Reed-Solomon编码器22
使用的处理顺序一致,对CRC校验的数据进行Reed-Solomon译码。将
Reed-Solomon译码的数据提供到数据接收器106。
通常,在接收到码字的所有编码码元之前,Reed-Solomon译码器104
是不能够对码字进行译码的。对于不允许附加译码延迟以及无需Reed-
Solomon译码器104提供的附加纠错能力的通信(例如话音通信)来说,可以
将CRC校验的数据直接提供到数据接收器106。对于允许附加译码延迟并且
需要附加纠错能力的通信来说,Reed-Solomon译码器104用来对经CRC校
验的数据进行译码。
控制器70与缓冲器102、Reed-Solomon译码器104以及数据接收器106
相连。控制器70判断是否需要根据来自CRC校验元件90的检测的帧差错执
行Reed-Solomon译码步骤,并控制Reed-Solomon译码。具体说来,控制器
70控制从缓冲器102读取CRC校验的数据的方式、Reed-Solomon译码器104
的运行以及将经Reed-Solomon译码的数据提供到数据接收器106的方式。
控制器70可以是以微控制器、微处理器、数字信号处理(DSP)芯片或ASIC
编程以执行上述功能来实现的。
在符合IS-99标准的CDMA通信系统中,CRC位仅用来检测帧差错,并
且没有纠正帧中的差错的能力。本发明中,附加的Reed-Solomon译码步骤
提供纠错能力,并消除大多数的差错。偶尔在某些Reed-Solomon译码器104
不能够纠错的情况下,可以产生重发的请求。该请求由发射器(TMTR)68处
理、选择通过双工器64的路由,并由天线62传送出去(见图6)。在中央站
2处(见图3),信号由天线50接收、选择通过双工器44的路由,并由接收
器(RCVR)子系统46处理。接收器子系统46将请求提供到处理器26。控制
处理器26可以命令重发有接收差错的某些或全部数据帧(见图2)。
本发明中,控制器70可以根据CRC校验元件90的结果执行几个功能。
下面的讨论假设在中央站2处使用码率(n,k)Reed-Solomon编码。讨论中还
假设这样的典型实施例,即,数据帧中包含行中的位,并且Reed-Solomon
码字包含列中的码元。
在第一种情况下,如果没有帧差错,由于没有要纠正的差错,所以控
制器70可以省去Reed-Solomon译码步骤。另外,控制器70还可以命令将
消息发送到中央站2,确认接收到k个数据帧没有差错。由于这些数据帧无
需Reed-Solomon一致检验码元,因此传送Reed-Solomon一致检验码元是多
余的。所以,中央站2可以消除远端站4正确接收的码字的不必要的Reed-
Solomon一致检验码元的传送。
在第二种情况下,如果帧差错数大于零但小于或等于(n-k),控制器70
可以指挥Reed-Solomon译码器104,用许多实施例中的一个实施例对CRC
校验的数据进行Reed-Solomon译码。本领域中的技术人员都知道,具有n-
k个一致检验码元的Reed-Solomon编码当(2t+f)≤(n-k)时可以纠正t个码
元差错,并且可同时纠正在码字中填充的f个擦除(或丢失的)码元。控制器
70可以用下述三个实施例中的一个实施例,指挥对CRC校验的数据的Reed-
Solomon译码。这三个实施例还可以组合起来,产生其他的Reed-Solomon
译码处理过程。其他的实施例或下述这些实施例的组合也包括在本发明的范
围内。
在第一个实施例中,对于由CRC校验元件90检测的每一个帧差错,控
制器70用擦除取代整个数据帧。随后,由于控制器70知道可以由Reed-
Solomon译码器104计算擦除的正确值,因而指挥数据码元和擦除的Reed-
Solomon译码。
在第二个实施例中,控制器70指挥对码字的Reed-Solomon译码,而
不对差错的数据帧进行任何修改。如果数据帧中的差错事件持续期较短,那
么该实施例作用良好。在Reed-Solomon译码中,如果码字中码元差错数小
于或等于(n-k)/2,则差错定位符的顺序表示码字中码元差错数,并且
Reed-Solomon译码器104能够纠正码字中的所有码元差错。具有大于(n-k)/2
个码元差错的码字可以使差错定位符置于故障方式,并产生指向错误位置的
差错定位。例如,故障方式可以使差错定位符指向CRC校验元件90指示的
数据帧中的码元。另外,故障方式可以使差错定位符指向不存在或某一位置
上有多个根的一个位置。可以以下述某一种方式来处理具有大于(n-k)/2个
差错的码字。
在第三个实施例中,控制器70可以估计帧差错的严重性,以改进
Reed-Solomon译码处理过程。如上所述,如果(2t+f)≤(n-k),Reed-Solomon
译码器104可以纠正t个码元差错,并且可同时纠正码字中填充的f个擦除
的码元。含有许多差错位的数据帧可以整个被擦除取代,而只具有几个差错
位的数据帧可以不经修改而使用。控制器70不能够使用CRC校验判断帧差
错具有的严重性,这是因为如果数据帧中有一个或多个差错位,CRC校验元
件90提供帧差错的硬指示。然而,控制器70可以采用任何一种软度量,如
累计的维特比度量或再编码的CRC码元差错率,来判断数据帧差错的严重
性。如果软度量超过预定的阈值,则控制器70用擦除取代整个数据帧。否
则,该数据帧使用时是不经修改的。随后,控制器70指挥含有擦除和/或可
能有码元差错的码字的Reed-Solomon译码。
在第三种情况下,如果帧差错数大于(n-k),则控制器70可以启动或
延迟Reed-Solomon译码步骤,这是因为可以会有更多的码元差错是Reed-
Solomon译码器104不能纠正的。如果接收到的数据帧中一个或多个位是有
差错的,则CRC校验元件90指示一个帧差错。一个帧差错不表示接收到的
该数据帧中所有的位都是有差错的。事实上,已经接收到的差错数据帧中的
大多数位是正确的。
即使如上述第二种情况那样采用第二个实施例或第三个实施例或第二
与第三个实施例的组合,帧差错数大于(n-k),控制器70也可以启动码字的
Reed-Solomon译码。所以,控制器70可以指挥码字的Reed-Solomon译码,
而无需对差错数据帧作任何修改。另外,控制器70可以如上所述根据软度
量,用擦除取代某些差错帧,并指挥含有擦除和/或可能码元差错的码字的
Reed-Solomon译码。
控制器70擦除不超过(n-k)的擦除数据帧数。整个被擦除取代的每一
数据帧减小了Reed-Solomon纠正码字中其他码元差错的能力。事实上,码
字中的f个擦除将码字中的冗余码元减小到(n-k-f),并限制Reed-Solomon
译码器104仅纠正码字中的(n-k-f)/2个码元差错。
此外,在第三种情况下,如果帧差错数大于(n-k)或者如果码元差错数
大于(n-k)/2,则控制器70可以使Reed-Solomon译码延迟。控制器70可以
用几个实施例中的一种实施例请求重发。在第一个实施例中,控制器70可
以请求重发接收到的有差错的所有数据帧,或者重发接收到的有差错的足够
的数据帧,以执行对其余数据帧的Reed-Solomon译码。例如,如果控制器
70判断接收到的出错数据帧数为(n-k)+3,则控制器70可以请求重发3个
或更多个数据帧。在正确接收到三个或更多个先前接收到的出错数据帧以
后,Reed-Solomon译码器104能够对所有接收到的出错数据帧进行译码(或
纠正)。在连续接收到足够的先前接收的出错数据帧以后,从而帧差错数小
于(n-k),则控制器70可以启动Reed-Solomon译码。在第二个实施例中,
控制器70可以请求重发接收到的出错码字,而不管数据帧差错。这一实施
例比第一个实施例更有效,这是因为可能会有许多的帧差错,但只有几个码
字差错。事实上,控制器70可以在判断哪一个实施例产生较少的重发以后,
决定采用第一个实施例还是第二个实施例。
作为第三种情况的一个例子,假设采用码率(15,11)Reed-Solomon码,
并且中央站2向一个远端站4进行发送。接着假设远端站4接收到的数据帧
1、3、4、7和9有差错。Reed-Solomon译码器104能够纠正两个或更少的
帧,或计算码字中四个擦除的值。
即使帧差错数大于(n-k),控制器70也能够启动Reed-Solomon译码步
骤。控制器70能够指挥码字的Reed-Solomon译码,而无需对接收到的出错
数据帧进行任何的修改。可能性较大的是,即使有5个帧差错,每一个码字
也包含两个或更少的码元差错。如果这是真,则Reed-Solomon译码器104
能够纠正所有的码元差错,尽管帧差错数大于(n-k)。
控制器70还可以根据软度量用擦除取代接收的某些出错数据帧。例如,
控制器70可以用擦除取代数据帧3和7,并指挥对给定的Reed-Solomon码
字中含有两个擦除甚至可能还有一个附加码元差错的码字进行Reed-
Solomon译码。两个擦除使冗余的码元数从4减小到2。所以,Reed-Solomon
译码器104仅能够纠正每一码字中的一个码元差错。
另外,远端站4可以向中央站2发送一条消息,指示接收到的数据帧
有错。中央站2中的控制处理器26可以指挥一个或多个数据帧的重发,这
是因为远端站4只接收到一个数据帧就能使Reed-Solomon译码器104成功
地对接收到的其他的4个出错数据帧进行译码。
采用上述例子,接着假设中央站2还向第二远端站4进行发送,并且
第二远端站4接收到有差错的数据帧1、3、5、7和9。第一和第二远端站4
可以向中央站2发送消息,表示接收到的数据帧有差错。控制处理器26可
以指挥仅重发一个数据帧1,这是因为第一和第二远端站4接收到该数据帧
使得两个远端站4中的每一个中的Reed-Solomon译码器104能够成功地对
接收到的有差错的其他4个数据帧进行译码。所以,正确接收到重发的数据
帧1使得第一远端站4能够纠正接收到的有差错的数据帧3、4、7和9。类
似地,正确接收到重发的数据帧1使得第二远端站4能够纠正接收到的有差
错的数据帧3、5、7和9。另外,控制处理器26能够指挥由两个远端站4
接收到的所有出错数据帧的重发。这时,数据帧1、3、4、5、7和9由中央
站2重发。最后,远端站4中的控制器70能够启动Reed-Solomon译码步骤,
即使每一个远端站4接收到了5个帧差错。
本发明中,附加Reed-Solomon编码步骤提供的附加编码增益确保了由
许多远端站4正确的数据接收,并使重发的请求数为最小。作为说明,假设
采用具有k/n=1/1.35的Reed-Solomon分组码,并且传送含有1000个数据
码元的1350个编码码元。再假设擦除(例如,码字中至少n-k个码元是错误
接收的)的几率是百分之20。可以看到,含有1000个数据码元的1350个编
码码元可以由1000个远端站4中的999个正确接收。所以,Reed-Solomon
编码步骤使码字差错率从20%提高到近似0.1%。错误接收编码码元的远端
站4可以通知中央站2重发与错误接收的编码码元相应的数据帧或码字。重
发一直进行下去,直到接收到编码码元无差错。
Reed-Solomon分组编码的理论和操作在本领域中是众所周知的,其描
述见上述引用的文献。下面简述Reed-Solomon编码器和译码器的操作,以
帮助理解本发明。
在Reed-Solomon分组码中,将q个数据位组合,形成一个q位的码元。
Reed-Solomon码对于任何一个具有相同输入(k)和输出(n)块长度的线性
码,实现了最大可能的码字最小距离(dmin)。最小距离取决于编码的纠错能
力。(n,k)Reed-Solomon码能够在n个编码码元块中纠正达(n-k)/2个码元
差错。
对于在GF(2)上定义的码率(7,3),典型的Reed-Solomon编码器如图
8所示,这里,q=3,n=7,k=3,并且编码码元是由集合{0,1,αα2α3α
4α5α6}定义的。生成多项式是g(x)=x4+g3·x3+g2·x2+g1·x1+g0=x4
+α3·x3+x2+α·x1+α3。开始时,n-k个寄存器136被复位至0,并且
选择MUX1 130和MUX 138为‘1’位置,使得可以让k个数据码元传送到MUX
输出。在k个数据码元已移位进入以后,MUX1 130和MUX2 138锁定在‘0’
位置上,使得能够从寄存器136中读出n-k个一致检验码元。生成多项式g(x)
的系数在GF乘法器132中给出。GF加法器134是Galois域加法器。
对Reed-Solomon编码进行译码的第一个步骤包含计算从接收的n个编
码码元得到的一组校验子(syndrome)。这些校验子指示码字中是否出现了码
元差错。用这些校验子计算误差定位多项式(error location polynomial)
的误差系数σ(x),并由此计算误差定位符(error locator)Xi及误差值Yi。
有了误差定位符和误差值,就可以确定和纠正误差码元了。
CRC分组码也是系统、循环并且线性的。所以,以与Reed-Solomon码
相同的方式实现CRC位的产生。事实上,因为CRC分组码是二进制的,可以
用简单的异或们来代替Galois域加法器,并去掉Galois域乘法器。用于一
种由IS-99标准支持的操作方式的码率(88,80)CRC分组编码器的图见图9
所示。码率(88,80)CRC分组编码器的生成多项式是g(x)=x8+x7+x4+x3+
x+1。开始时,使8个寄存器152复位至0,并选择MUX1 150和MUX2 156
为‘1’位置,使得数据位能通向MUX的输出。在80个数据位已经移位进入
以后,MUX1 150和MUX2 156锁定在‘0’位置上,使得能够从寄存器152
中读出8个一致校验位。加法器154是模2加法器,可以用异或门来实现。
对于某些操作方式,IS-99标准还规定采用码率(184,172)CRC分组编
码器。码率(184,172)CRC分组编码器的生成多项式是g(x)=x12+x11+x10+
x9+x8+x4+x+1。
卷积编码在本领域中是众所周知的,卷积编码和维特比译码的操作可
以参见上述现有技术的参考文献。为便于理解本发明,下面简述卷积编码和
维特比译码的实施。
按照IS-99标准的码率1/2、K=9卷积编码器36如图10所示。输入
数据位是按照生成多项式G(x)编码的,这里G0=1EB(十六进制),并且G1
=171(十六进制)。9个寄存器180是由约束长度K=9决定的。加法器184、
184是模2加法器。每一输入数据产生两个码位C0和C1。码位对形成一个
编码分支。对于一个码率1/2卷积编码器,传送两个码位。对于从码率1/2
卷积编码器截断的速率3/4卷积编码器,将三个数据位编码成6个码位,并
且仅传送4个码位。截断或删除其他两个码位。速率3/4截断状态如图11
所示。
卷积译码在本领域中是众所周知的,并且任何一种网格译码器(trellis
decoder)都可以执行卷积编码数据的译码。在本较佳实施例中,维特比译码
器86用作卷积译码。维特比译码是通过计算一组分支度量、用该分支度量
更新路径度量、用最小路径度量确定路径,并将每一状态的存活路径存储到
路径存储器内来进行的。约束长度K决定状态的数目,并影响返回跟踪深度
(traceback depth)的选择。这两个参数定义了路径存储器的存储要求。返
回跟踪深度还确定了维特比译码处理过程的执行时间(latency)。截断码,
如不是由IS-99标准规定的速率3/4,增加了返回跟踪深度和执行时间。
在本发明的第二个实施例中,Reed-Solomon编码器22可以由第一种卷
积编码器取而代之。第一种卷积编码器按照行或列对从数据源20得到的数
据进行编码,并按照行或列将码位写到缓冲器24中。数据可以以4种可能
的排序方式中的一种顺序来处理,并且最佳顺序是由系统设计决定的。第一
种卷积编码器的码率和约束长度K是系统设计参数。不同的码率使数据源20
中的数据分隔成不同的数据帧大小,这是因为缓冲器34的CRC编码帧大小(见
图5)是由IS-99标准固定的。本发明可以采用第一种卷积编码器的任何一
种码率和约束长度的组合。
在用第一种卷积编码器取代Reed-Solomon编码器22的第二种实施例
中,在第一种卷积编码器的设计中考虑了几个设计参数。长的约束长度导致
更复杂的译码电路,并使执行时间增加。第一种卷积编码器和卷积编码器36
的码率减小了有效的数据通过速率。例如,带有码率1/2卷积编码器36的
码率1/2第一种卷积编码器产生1/4的整体数据通过速率。传送的编码数据
是原始文件规模的4倍,还不包括其它开销位。其他的截断码率如码率3/4,
提高了数据通过速率,但编码增益较小。应当折衷考虑设计要求。作为一种
附加考虑,维特比译码器86趋向于输出相关的突发误差串(correlated burst
of error)。所以,要求第一种卷积编码器和卷积编码器36之间有某些交错。
图3和图4中所示中央站2中编码器的方框图包含两个分开的缓冲器24
和34。两个缓冲器24和34仅是图示。实践中,可以用图5中所示的一组(block)
存储器来实现缓冲器24和34。来自数据源20的数据可以写到存储器的一
角。进行Reed-Solomon编码和CRC分组编码,并将来自这些编码步骤的一
致校验位写到同一存储器的分开的区域内。
分组交错器38执行来自卷积编码器36的码位的交错。这样,将数据
写入和读出分组交错器38的顺序是特别由IS-99标准规定的。交错使信道
破坏所引起的突发误差的影响‘白化’。在信道特征特别‘白’的卫星链路
中,可以去掉分组交错器38,而不会使性能劣化。
上述较佳实施例的描述使得本领域中的技术人员能够制造和使用本发
明。很明显,本领域中的技术人员还可以对这些实施例作各种修正,无需发
明人的帮助,还可以将所描述的基本原理应用于其他的实施例。所以,本发
明并非仅限于这些实施例,应当从最宽的范围来理解所揭示的原理和新特
征。