ICCSZ訊 糾錯技術是設計現(xiàn)代數(shù)字通信系統(tǒng)的重要環(huán)節(jié)。也許,選擇一種會大大降低設計速度并增加設計復雜度的糾錯碼并非難事,但結果往往卻會令人失望。而選擇合適的又是很高效的糾錯碼也很容易--但要使用合適的測試儀器來幫忙。
FEC(前向糾錯)是許多現(xiàn)代數(shù)字通信系統(tǒng)的重要組成部分,它能將其他情況下無法使用的鏈路變成切實可用的系統(tǒng)。從DVD到移動電話,從電視到磁盤機,糾錯技術都是一個數(shù)學奇跡,應用得當,能收到劣材成器的效果。圖1是一個使用FEC編碼和解碼的通信信道的簡化圖。
圖1:使用FEC編碼和解碼的通信信道的簡化圖
圖1 在一個采用前向糾錯的通信信道中,系統(tǒng)在發(fā)送前修改數(shù)據(jù),以增加減小數(shù)據(jù)和未檢測出的差錯一起被接收的可能性。為了恢復原始數(shù)據(jù),接收機需要完成與發(fā)送端相反的過程。
在數(shù)字通信期間糾正誤碼的方法各不相同,從簡單的誤碼檢測機制到非實時糾錯、實時現(xiàn)場糾錯,不一而足。從中選用哪種糾錯方法,取決于系統(tǒng)需求以及預期誤碼的統(tǒng)計數(shù)據(jù)。而對糾正偶然隨機單個誤碼的需求,你可以選擇一種不適合于少而短的多位突發(fā)差錯的糾錯方法。一個個很長的突發(fā)差錯事件,可能需要一種不同的糾錯方法,而這種方法需要大量緩存并且可能引入無法接受的等待時間。你在選定有效的糾錯方法時必須進行權衡,這就要求你了解或者預期系統(tǒng)性能需求和應用性能需求。
在設計糾錯方法之前,你必須完全了解系統(tǒng)中發(fā)生的典型誤碼類型。獲得這些資訊的最好辦法是收集不同典型情況下的誤碼統(tǒng)計數(shù)據(jù)。以前,誤碼統(tǒng)計數(shù)據(jù)只有平均誤碼率,使人無法深入了解糾錯方法的設計情況。位誤碼率測試儀能捕獲檢測到的誤碼的確切的位的位置,為你選擇糾正方法提供所需的精確統(tǒng)計數(shù)據(jù)。有助于你做出抉擇的統(tǒng)計數(shù)據(jù)實例有:
● 分別測量位誤碼率和猝發(fā)脈沖誤碼率;
● 不同猝發(fā)脈沖長度的概率分布;
● 包含不同誤碼數(shù)量的數(shù)據(jù)塊總數(shù);
● 誤碼之間的無誤碼間隔分布。
如果你使用這些統(tǒng)計數(shù)據(jù)以及系統(tǒng)要求,則這些測量就可為你做出明智的設計抉擇提供必要的數(shù)據(jù)。
例如,常用于存儲器陣列的漢明碼(Hamming),非常適合于糾正短碼字中的高概率隨機單位差錯。將維特比柵格檢測器作為子集的最大似然碼,可以減少由白噪聲引起的單位差錯。磁帶驅動器和軟盤驅動器使用的法爾(Fire)碼,能夠對長度小于7位~15位的少量單猝發(fā)脈沖差錯進行快速有效的糾正。從CD-ROM至深空通信系統(tǒng)等各種設備使用的乘積陣列RS (Reed-Solomon)碼,能高效地糾正潛在的長突發(fā)脈沖差錯,但卻要使用大容量緩存器,并會延長處理等待時間。
采用先增加數(shù)據(jù),然后刪除的方法
糾錯碼的數(shù)學原理所依據(jù)的是這樣一個概念,亦即在發(fā)送的消息上增加一些信息,使得接收到有誤碼消息的可能性比接收到正確消息的可能性更小。通常,你可以將增加了FEC信息的消息看作一個碼字。有時,F(xiàn)EC信息只是添加在消息的末尾(例如CRC、奇偶校驗以及校驗和)。有時,F(xiàn)EC信息與消息卷積在一起形成一個全新的消息(例如維特比碼和8位/10位碼)。
由于所選用的糾錯方法決定了FEC解碼器的復雜性,因此對糾錯類型的抉擇錯了,就會大大增加系統(tǒng)設計的復雜性,大大增加系統(tǒng)設計工作量。復雜性決定固有等待時間、處理需求、誤檢誤糾正概率以及誤碼傳播模式。例如,軟盤驅動器可以使用固件以及簡單的硬件CRC誤碼檢測器來糾正單扇區(qū)小突發(fā)差錯。當檢測器發(fā)現(xiàn)CRC差錯時,讀取速度就降低,軟件便接用CRC計算結果進行小量的糾錯。這種方法很有效,因為誤碼很少,該系統(tǒng)又沒有實時要求。另一方面,數(shù)字錄像帶播放機不能暫停重放來糾正誤碼,在這種情況下,播放機必須實時糾錯。糾錯方法的選擇必須反映實際的誤碼統(tǒng)計數(shù)據(jù)。
識別并記錄一個信道中檢測到的誤碼的確切位的位置,就能使誤碼率測試儀輕而易舉地模擬所提議的糾錯方法。最簡單的例子就是一種RS型信息組代碼。RS信息組代碼構成許多最常用的FEC系統(tǒng)的基礎,其中包括衛(wèi)星廣播、水下光纖、數(shù)字磁帶記錄以及深空通信。這代碼把2T個系統(tǒng)開銷符號附加在長度為k個符號的消息上,生成總長度為kn=k+2T個符號的消息。這一代碼有時被稱為RS(n,k)碼。無論出錯符號位于消息中的什么位置,它都能糾正T個出錯符號。
例如,DVB(數(shù)位視頻B)衛(wèi)星廣播用的MPEG-2數(shù)據(jù),使用一個30~90Mbps RS(204,188)碼,足以糾正8個字節(jié)符號誤碼。檢測器對接收到的每個由204字節(jié)組成的信息組進行實時解碼。只要誤碼少于8個字節(jié)誤碼,檢測器就能糾正所有誤碼并提供完美的視頻信號。如果誤碼多于8個字節(jié),則誤碼檢測器無法糾正誤碼,從而出現(xiàn)圖像問題。
對誤碼進行分類與計數(shù)
為了了解一個個碼字中誤碼的數(shù)量,位誤碼測試儀的分析功能
將根據(jù)用戶定義的糾錯參數(shù),對檢測到誤碼位的確切位置進行分類和計數(shù)。例如在DVB MPEG-2數(shù)據(jù)中,誤碼可以在204字節(jié)邊界上累計。凡在204字節(jié)信息組內的誤碼數(shù)量小于或等于八個字節(jié)時,你就可以根據(jù)進一步的誤碼分析和計數(shù)進行糾錯,因為有一個糾錯器原本會糾正這些誤碼。這類分析僅在誤碼率超過每204字節(jié)信息組8字節(jié)誤碼時才對誤碼進行計數(shù),再計算出糾錯后的誤碼率(表1)。
表1:用誤碼率測儀進行的FEC前和后的分析
僅在誤碼率超過每204字節(jié)信息組8字節(jié)誤碼時才對誤碼進行計數(shù)
符號大小是使用誤碼率測試儀執(zhí)行這類分析之前必須定義的第一個參數(shù),通常為8~10位。這類分析的其他部分忽略個別誤碼,只關注符號差錯。當一個符號中有一個或多個誤碼時,誤碼率測試儀就認為該符號出錯。該測試儀知道數(shù)據(jù)流中所有碼錯的確切位置后,就能很容易地計算出符號差錯的統(tǒng)計數(shù)字。
RS信息組碼中的單個碼字只能糾正較少數(shù)量的符號差錯。符號差錯數(shù)量增加,就會大大增加代碼總開銷,也會大大增加糾錯所必需的處理能力和處理時間。如果差錯往往以小突發(fā)或大突發(fā)形式出現(xiàn),有一種替代方法可提高RS信息碼的T值。你只要在存儲器緩沖器中將這一數(shù)據(jù)交錯開來就能實現(xiàn)這種替代方法,這將提高糾錯能力,但卻增加了等待時間。
交錯存儲試圖將突發(fā)差錯一分為二,以使突發(fā)差錯的符號差錯進入多個碼字中。一個RS(204,188)碼遇到一個14個符號突發(fā)差錯,將無法進行糾錯。但是,只要每隔一個字節(jié)將字節(jié)一分為二,并把該字節(jié)傳遞給兩個獨立的RS(204,188)碼,相同的T=8糾錯邏輯就能糾正全部差錯。由此付出的代價是接收器必須等到接收到兩個完整的204字節(jié)碼字后才能開始糾錯。在有些系統(tǒng)中,這一等待時間是無關緊要的(例如,數(shù)字錄像播放機以及深空衛(wèi)星接收機等流式傳輸設備)。但是,在其他事務系統(tǒng)(例如聯(lián)網(wǎng)分組)中,這一等待時間將嚴重限制RS(204,188)碼的可用性。
交錯與分類
位誤碼分析很容易對交錯進行仿真,這只是一種簡單的分類功能。你通??赏ㄟ^指定同時填充的碼字的數(shù)量來形成交錯。例如,4個RS(204,188) 8位符號碼的交錯構成一張表,表中有4行,每行有204個字節(jié)(圖2)。該表代表6528位。當出現(xiàn)一個位差時,位置信息確定該位差錯出現(xiàn)在表中什么地方。一旦所有6528數(shù)據(jù)位都收到,就對表進行逐行檢查,以確定任何一行是否含有八個以上的符號差錯。在誤碼計數(shù)之前對具有八個或八個以下出錯符號的所有行進行糾錯,這實際上實現(xiàn)了本應進行的糾錯,這樣,其余的位誤碼率就表示糾錯后的誤碼性能。
你可以將與一維RS(204,188) 代碼的4行交錯表示為一張表,表中有4行,每行204字節(jié)
圖2 你可以將與一維RS(204,188) 代碼的4行交錯表示為一張表,表中有4行,每行204字節(jié)。
這種與1維糾錯碼的2維交錯的其他實例有適用于光纖通信的ITU(國際電信聯(lián)盟)標準G.709和G.975碼。例如,G.709可用一個在16行上交錯的T=8的RS (256,239)碼調出8位符號,而G.975只用4行交錯就調出一個相同的碼。
你還可以使用多維信息組代碼來使一個比較簡單的RS信息組代碼,如T值比較小的RS信息組代碼,能糾正大突發(fā)差錯。但是,因為這種方法需要兩級糾錯,而且整個表必須接收到后才能開始糾錯,所以這種方法進一步增加數(shù)據(jù)接收和解碼數(shù)據(jù)輸出之間的等待時間。數(shù)字錄像機之所以使用該技術,乃是因為等待時間不是一個問題,而且大突發(fā)差錯很普遍。一旦表中填滿了碼字,這種體系結構將先對每行糾錯,然后再對每列糾錯。只要失敗的行少于T行,列糾錯器將糾正這些行中的所有差錯。這種方法為既糾正隨機差錯又糾正突發(fā)錯誤提供一種很好的折衷方案。
在隨機錯誤不成為問題的情況下,如果需要對長突發(fā)差錯進行最佳糾錯,可以使用另一種技術。RS編碼用一個符號來發(fā)現(xiàn)錯誤,用另一個符號來糾正錯誤,所以它必須在消息末尾附加2T個符號,卻只能糾正T個差錯。然而,如果知道了誤碼位的位置,RS碼就可使用所有符號來進行糾錯,因此能使糾錯效率提高一倍。例如,當使用一個2維乘積陣列碼時,內碼解碼器能發(fā)現(xiàn)有誤碼的行。只要這些行的數(shù)量小于2T,則解碼器就能標出這些行是有誤碼的行,并且允許外碼解碼器對每行進行盲糾錯。這種方法將可糾正突發(fā)差錯長度增加一倍,這要視填充交錯表的方法而定。通信工程師常常將這種方法稱為用內碼失效來刪除外碼。
位誤碼率測試儀能容易地分析所有這些基于信息組代碼的體系結構。交錯表維數(shù)和填充/排出算法能適應這些方法中的任何一種。如果信道遭受模型未包含的現(xiàn)象,則糾錯器總效率可能急劇降低,所以利用誤碼率測試儀仿真FEC算法的優(yōu)點是使用一個數(shù)字信道的實際誤碼數(shù)據(jù)來進行分析,而不是依靠一個假設的模型來獲得誤碼統(tǒng)計數(shù)據(jù)。
誤碼位置分析
有一個實例應能說明誤碼率測試儀在優(yōu)化FEC編碼中的作用。該實例始于一個未糾錯的、總平均背景誤碼率為2.68×10-6的數(shù)據(jù)信道,在這一信道中,既有突發(fā)差錯又有非突發(fā)差錯。你利用各種誤碼位的位置分析技術獲得的誤碼分布表
明誤碼突發(fā)是隨機而又相關的。圖3示出了該數(shù)字信道某一部分的誤碼圖。誤碼圖將數(shù)據(jù)分割成段,并且將各段一個挨一個放置以生成一個由誤碼信息組成的2維圖像。2維圖像突出顯示了檢測到的位差錯的位置。由位誤碼現(xiàn)象和突發(fā)現(xiàn)象造成的差錯標有不同的顏色,能使人更好了解誤碼原因。圖4表明:既有位差錯又有突發(fā)差錯,并且有些錯誤與段長度(水平"波段")是高度相關的,段長度等于系統(tǒng)"固有的"數(shù)據(jù)信息包大小。
圖3:在未糾錯的誤碼圖中既有位差錯又有突發(fā)差錯
圖3 在未糾錯的誤碼圖中既有位差錯又有突發(fā)差錯,誤碼率為2.68×10-6。有些差錯與段長度(水平"波段")是高度相關的,段長度等于系統(tǒng)"固有的"數(shù)據(jù)分組大小。
圖4:RS(204,196) 一維糾錯實際上只能消除小錯誤,但是較大的突發(fā)差錯仍然存在
在深入討論之前,說說關于突發(fā)差錯的另一個觀點是適宜的。單單突發(fā)長度的概率分布是不足以確定FEC碼所需的糾錯能力。你常常會在其他背景差錯出現(xiàn)時發(fā)現(xiàn)突發(fā)差錯。此外,突發(fā)差錯之間可能高度相關,因此一個突發(fā)差錯可能預示著將來會出現(xiàn)另一個突發(fā)差錯。在這種情況下,單個FEC碼字可能會遇到一個以上的突發(fā)差錯。信息包差錯統(tǒng)計數(shù)據(jù)、無差錯間隔概率以
及差錯自相關都能使人更好了解其余的差錯問題。但是,歸根結底,基于誤碼位置的實際FEC仿真是在制造硬件之前研究FEC效率的最精確的方法。
為了設計一個適用于這一數(shù)據(jù)的糾錯器,你首先使用一個簡單的8位符號長的一維信息包代碼,即RS(204,196),它是一個T=4 的糾錯器。當誤碼率小于每204字節(jié)信息包4字節(jié)差錯時,該代碼能糾正符號錯誤。為了在一個具有FEC仿真功能的誤碼率測試儀內部進行這種分析,你必須啟用此類糾錯器并設置表2中列出的參數(shù)。
這一分析顯示,簡單的FEC可將誤碼率減小到8.55×10-7。為了實現(xiàn)這種代碼,你必須增加等待時間才能使用數(shù)據(jù),以便為緩存204數(shù)據(jù)字節(jié)并對其進行糾錯處理留出時間,這通常需要第 2 條傳送數(shù)據(jù)的信道。此外,還需要增加4%的開銷才能使誤碼率降到8.55×10-7。圖5示出了糾錯后的數(shù)據(jù)的誤碼圖。與預期的一樣,實際上小差錯得到糾正,但是較大的突發(fā)差錯仍然存在。
經(jīng)過一維RS
圖5 經(jīng)過一維RS(204,196)糾錯和五行交錯后,糾錯后的誤碼率降為2.64×10-8。
為了改進突發(fā)差錯糾正,你可以增加一種五行交錯方案。增加這種交錯會提高緩存需求和資料使用的等待時間,因此交錯深度要盡量小。為了增加這種交錯,就要將FEC參數(shù)修改為表3中列出的FEC參數(shù)。
采用交錯的FEC參數(shù)
你可望利用這一代碼糾正一個長度為20字節(jié)的孤立突發(fā)差錯。第二個代碼中的T=0這一設置表明適用這一分析的外碼沒有進行糾錯。這些參數(shù)將對數(shù)據(jù)進行2維交錯,但是卻進行一維糾錯。使用這些設置,糾錯后的誤碼率就降至2.64×10-8。圖5示出了這種交錯糾錯的誤碼圖。請注意:這項增強功能仍然使用相同的基本T=4解碼器技術,但是解碼之前使用了交錯技術,使得誤碼更均勻地分配給一小批FEC碼字。
你可以通過使用更深的交錯和更強的糾錯能力來繼續(xù)使用這一方法,以實現(xiàn)誤碼率的大大降低,而所付出的代價是要采用復雜的糾錯解碼器和增加等待時間。利用誤碼率測試儀中的誤碼位位置統(tǒng)計數(shù)據(jù),你可以很容易地探索各種糾錯方法,以便就處理需求、開銷和等待時間做出明智的抉擇,為未來的創(chuàng)新產(chǎn)品產(chǎn)生數(shù)字信道。