热度 20
2013-4-20 11:33
1341 次阅读|
0 个评论
每一位工程师都具备制定标准的潜能,所需要的只是你对这项工作有兴趣并乐意把时间花在这项工作上。 纠错技术是设计现代数字通信系统的重要环节。也许,选择一种会大大降低设计速度并增加设计复杂度的纠错码并非难事,但结果往往却会令人失望。而选择合适的又是很高效的纠错码也很容易--但要使用合适的测试仪器来帮忙。 FEC(前向纠错)是许多现代数字通信系统的重要组成部分,它能将其他情况下无法使用的链路变成切实可用的系统。从DVD到移动电话,从电视到磁盘机,纠错技术都是一个数学奇迹,应用得当,能收到劣材成器的效果。图1是一个使用FEC编码和解码的通信信道的简化图。 图 1 在一个采用前向纠错的通信信道中,系统在发送前修改数据,以增加减小数据和未检测出的差错一起被接收的可能性。为了恢复原始数据,接收机需要完成与发送端相反的过程。 在数字通信期间纠正误码的方法各不相同,从简单的误码检测机制到非实时纠错、实时现场纠错,不一而足。从中选用哪种纠错方法,取决于系统需求以及预期误码的统计数据。而对纠正偶然随机单个误码的需求,你可以选择一种不适合于少而短的多位突发差错的纠错方法。一个个很长的突发差错事 件,可能需要一种不同的纠错方法,而这种方法需要大量缓存并且可能引入无法接受的等待时间。你在选定有效的纠错方法时必须进行权衡,这就要求你了解或者预期系统性能需求和应用性能需求。 在设计纠错方法之前,你必须完全了解系统中发生的典型误码类型。获得这些资讯的最好办法是收集不同典型情况下的误码统计数据。以前,误码统计数据只有平均误码率,使人无法深入了解纠错方法的设计情况。位误码率测试仪能捕获检测到的误码的确切的位的位置,为你选择纠正方法提供所需的精确统计数据。有助于你做出抉择的统计数据实例有: ● 分别测量位误码率和猝发脉冲误码率; ● 不同猝发脉冲长度的概率分布; ● 包含不同误码数量的数据块总数; ● 误码之间的无误码间隔分布。 如果你使用这些统计数据以及系统要求,则这些测量就可为你做出明智的设计抉择提供必要的数据。 例如,常用于存储器阵列的汉明码(Hamming),非常适合于纠正短码字中的高概率随机单位差错。将维特比栅格检测器作为子集的最大似然码,可以减少由白噪声引起的单位差错。磁带驱动器和软盘驱动器使用的法尔(Fire)码,能够对长度小于7位~15位的少量单猝发脉冲差错进行快速有效的纠正。从CD-ROM至深空通信系统等各种设备使用的乘积阵列RS (Reed-Solomon)码,能高效地纠正潜在的长突发脉冲差错,但却要使用大容量缓存器,并会延长处理等待时间。 采用先增加数据,然后删除的方法 纠错码的数学原理所依据的是这样一个概念,亦即在发送的消息上增加一些信息,使得接收到有误码消息的可能性比接收到正确消息的可能性更小。通常,你可以将增加了FEC信息的消息看作一个码字。有时,FEC信息只是添加在消息的末尾(例如CRC、奇偶校验以及校验和)。有时,FEC信息与消息卷积在一起形成一个全新的消息(例如维特比码和8位/10位码)。 由于所选用的纠错方法决定了FEC解码器的复杂性,因此对纠错类型的抉择错了,就会大大增加系统设计的复杂性,大大增加系统设计工作量。复杂性决定固有等待时间、处理需求、误检误纠正概率以及误码传播模式。例如,软盘驱动器可以使用固件以及简单的硬件CRC误码检测器来纠正单扇区小突发差错。当检测器发现CRC差错时,读取速度就降低,软件便接用CRC计算结果进行小量的纠错。这种方法很有效,因为误码很少,该系统又没有实时要求。另一方面,数字录像带播放机不能暂停重放来纠正误码,在这种情况下,播放机必须实时纠错。纠错方法的选择必须反映实际的误码统计数据。 识别并记录一个信道中检测到的误码的确切位的位置,就能使误码率测试仪轻而易举地模拟所提议的纠错方法。最简单的例子就是一种RS型信息组代码。RS信息组代码构成许多最常用的FEC系统的基础,其中包括卫星广播、水下光纤、数字磁带记录以及深空通信。这代码把2T个系统开销符号附加在长度为k个符号的消息上,生成总长度为kn=k+2T个符号的消息。这一代码有时被称为RS(n,k)码。无论出错符号位于消息中的什么位置,它都能纠正T个出错符号。 例如,DVB(数位视频B)卫星广播用的MPEG-2数据,使用一个30~90Mbps RS(204,188)码,足以纠正8个字节符号误码。检测器对接收到的每个由204字节组成的信息组进行实时解码。只要误码少于8个字节误码,检测器就能纠正所有误码并提供完美的视频信号。如果误码多于8个字节,则误码检测器无法纠正误码,从而出现图像问题。 对误码进行分类与计数 为了了解一个个码字中误码的数量,位误码测试仪的分析功能 将根据用户定义的纠错参数,对检测到误码位的确切位置进行分类和计数。例如在DVB MPEG-2数据中,误码可以在204字节边界上累计。凡在204字节信息组内的误码数量小于或等于八个字节时,你就可以根据进一步的误码分析和计数进行纠错,因为有一个纠错器原本会纠正这些误码。这类分析仅在误码率超过每204字节信息组8字节误码时才对误码进行计数,再计算出纠错后的误码率(表1)。 符号大小是使用误码率测试仪执行这类分析之前必须定义的第一个参数,通常为8~10位。这类分析的其他部分忽略个别误码,只关注符号差错。当一个符号中有一个或多个误码时,误码率测试仪就认为该符号出错。该测试仪知道数据流中所有码错的确切位置后,就能很容易地计算出符号差错的统计数字。 RS信息组码中的单个码字只能纠正较少数量的符号差错。符号差错数量增加,就会大大增加代码总开销,也会大大增加纠错所必需的处理能力和处理时间。如果差错往往以小突发或大突发形式出现,有一种替代方法可提高RS信息码的T值。你只要在存储器缓冲器中将这一数据交错开来就能实现这种替代方法,这将提高纠错能力,但却增加了等待时间。 交错存储试图将突发差错一分为二, 以使突发差错的符号差错进入多个码字中。一个RS(204,188)码遇到一个14个符号突发差错,将无法进行纠错。但是,只要每隔一个字节将字节一分为二,并把该字节传递给两个独立的RS(204,188)码,相同的T=8纠错逻辑就能纠正全部差错。由此付出的代价是接收器必须等到接收到两个完整的204字节码字后才能开始纠错。在有些系统中,这一等待时间是无关紧要的(例如,数字录像播放机以及深空卫星接收机等流式传输设备)。但是,在其他事务系统(例如联网分组)中,这一等待时间将严重限制RS(204,188)码的可用性。 交错与分类 位误码分析很容易对交错进行仿真,这只是一种简单的分类功能。你通常可通过指定同时填充的码字的数量来形成交错。例如,4个RS(204,188) 8位符号码的交错构成一张表,表中有4行,每行有204个字节(图2)。该表代表6528位。当出现一个位差时,位置信息确定该位差错出现在表中什么地方。一旦所有6528数据位都收到,就对表进行逐行检查,以确定任何一行是否含有八个以上的符号差错。在误码计数之前对具有八个或八个以下出错符号的所有行进行纠错,这实际上实现了本应进行的纠错,这样,其余的位误码率就表示纠错后的误码性能。 图 2 你可以将与一维RS(204,188) 代码的4行交错表示为一张表,表中有4行,每行204字节。 这种与1维纠错码的2维交错的其他实例有适用于光纤通信的ITU(国际电信联盟)标准G.709和G.975码。例如,G.709可用一个在16行上交错的T=8的RS (256,239)码调出8位符号,而G.975只用4行交错就调出一个相同的码。 你还可以使用多维信息组代码来使一个比较简单的RS信息组代码,如T值比较小的RS信息组代码,能纠正大突发差错。但是,因为这种方法需要两级纠错,而且整个表必须接收到后才能开始纠错,所以这种方法进一步增加数据接收和解码数据输出之间的等待时间。数字录像机之所以使用该技术,乃是因为等待时间不是一个问题,而且大突发差错很普遍。一旦表中填满了码字,这种体系结构将先对每行纠错,然后再对每列纠错。只要失败的行少于T行,列纠错器将纠正这些行中的所有差错。这种方法为既纠正随机差错又纠正突发错误提供一种很好的折衷方案。 在随机错误不成为问题的情况下,如果需要对长突发差错进行最佳纠错,可以使用另一种技术。RS编码用一个符号来发现错误,用另一个符号来纠正错误,所以它必须在消息末尾附加2T个符号,却只能纠正T个差错。然而,如果知道了误码位的位置,RS码就可使用所有符号来进行纠错,因此能使纠错效率提高一倍。例如,当使用一个2维乘积阵列码时,内码解码器能发现有误码的行。只要这些行的数量小于2T,则解码器就能标出这些行是有误码的行,并且允许外码解码器对每行进行盲纠错。这种方法将可纠正突发差错长度增加一倍,这要视填充交错表的方法而定。通信工程师常常将这种方法称为用内码失效来删除外码。 位误码率测试仪能容易地分析所有这些基于信息组代码的体系结构。交错表维数和填充/排出算法能适应这些方法中的任何一种。如果信道遭受模型未包含的现象,则纠错器总效率可能急剧降低,所以利用误码率测试仪仿真FEC算法的优点是使用一个数字信道的实际误码数据来进行分析,而不是依靠一个假设的模型来获得误码统计数据。 误码位置分析 有一个实例应能说明误码率测试仪在优化FEC编码中的作用。该实例始于一个未纠错的、总平均背景误码率为2.68×10-6的数据信道,在这一信道中,既有突发差错又有非突发差错。你利用各种误码位的位置分析技术获得的误码分布表 明误码突发是随机而又相关的。图3示出了该数字信道某一部分的误码图。误码图将数据分割成段,并且将各段一个挨一个放置以生成一个由误码信息组成的2维图像。2维图像突出显示了检测到的位差错的位置。由位误码现象和突发现象造成的差错标有不同的颜色,能使人更好了解误码原因。图4表明:既有位差错又有突发差错,并且有些错误与段长度(水平"波段")是高度相关的,段长度等于系统"固有的"数据信息包大小。 图 3 在未纠错的误码图中既有位差错又有突发差错,误码率为2.68×10-6。有些差错与段长度(水平"波段")是高度相关的,段长度等于系统"固有的"数据分组大小。 图 4 RS(204,196) 一维纠错实际上只能消除小错误,但是较大的突发差错仍然存在。 在深入讨论之前,说说关于突发差错的另一个观点是适宜的。单单突发长度的概率分布是不足以确定FEC码所需的纠错能力。你常常会在其他背景差错出现时发现突发差错。此外,突发差错之间可能高度相关,因此一个突发差错可能预示着将来会出现另一个突发差错。在这种情况下,单个FEC码字可能会遇到一个以上的突发差错。信息包差错统计数据、无差错间隔概率以 及差错自相关都能使人更好了解其余的差错问题。但是,归根结底,基于误码位置的实际FEC仿真是在制造硬件之前研究FEC效率的最精确的方法。 为了设计一个适用于这一数据的纠错器,你首先使用一个简单的8位符号长的一维信息包代码,即RS(204,196),它是一个T=4 的纠错器。当误码率小于每204字节信息包4字节差错时,该代码能纠正符号错误。为了在一个具有FEC仿真功能的误码率测试仪内部进行这种分析,你必须启用此类纠错器并设置表2中列出的参数。 这一分析显示,简单的FEC可将误码率减小到8.55×10-7。为了实现这种代码,你必须增加等待时间才能使用数据,以便为缓存204数据字节并对其进行纠错处理留出时间,这通常需要第 2 条传送数据的信道。此外,还需要增加4%的开销才能使误码率降到8.55×10-7。图5示出了纠错后的数据的误码图。与预期的一样,实际上小差错得到纠正,但是较大的突发差错仍然存在。 图 5 经过一维RS(204,196)纠错和五行交错后,纠错后的误码率降为2.64×10-8。 为了改进突发差错纠正,你可以增加一种五行交错方案。增加这种交错会提高缓存需求和资料使用的等待时间,因此交错深度要尽量小。为了增加这种交错,就要将FEC参数修改为表3中列出的FEC参数。 你可望利用这一代码纠正一个长度为20字节的孤立突发差错。第二个代码中的T=0这一设置表明适用这一分析的外码没有进行纠错。这些参数将对数据进行2维交错,但是却进行一维纠错。使用这些设置,纠错后的误码率就降至2.64×10-8。图5示出了这种交错纠错的误码图。请注意:这项增强功能仍然使用相同的基本T=4解码器技术,但是解码之前使用了交错技术,使得误码更均匀地分配给一小批FEC码字。 你可以通过使用更深的交错和更强的纠错能力来继续使用这一方法,以实现误码率的大大降低,而所付出的代价是要采用复杂的纠错解码器和增加等待时间。利用误码率测试仪中的误码位位置统计数据,你可以很容易地探索各种纠错方法,以便就处理需求、开销和等待时间做出明智的抉择,为未来的创新产品产生数字信道。