羅雨薇,景文芳
(四川工商學院電子信息工程學院,四川 成都 611745)
隨著現代通信技術和計算機技術的快速發展,新的通信服務和信息服務每天都在不斷出現,用戶對通信質量和數據傳輸速率的要求也在不斷提高。在現代社會中,信道編碼廣泛用于衛星通信,無人駕駛車輛的測量和控制,深空通信,移動通信,水聲通信和其他數字通信系統,甚至用于某些無線通信標準,如GSM,IS-95 和CDMA2000 等。隨著信道編碼理論和數字通信技術的不斷發展,信道編碼技術將越來越多地應用于通信技術領域。提高信息傳輸的有效性和可靠性一直是通信技術所追求的目標,而信道編碼能夠顯著的提升信息傳輸的可靠性。
1948年,信息論的奠基人C.E.Shannon 在他的開創性的“通信的數學理論”中,提出了著名的有噪信道編碼定理。他指出:對任何信道,只要信息傳輸速率R 不大于信道容量C,就一定存在這樣的編碼方法:在采用最大似然譯碼時,其誤碼率可以任意小。該定理在理論上給出了對給定信道通過編碼所能達到的編碼增益的上限,并指出了為達到理論極限應采用的譯碼方法[4]。在數字通信系統中,利用糾錯碼或檢錯碼進行差錯控制的方式有三種:檢錯重發、前向糾錯和混合糾錯。在(n,k)分組碼中,若每一個監督元都是碼組中某些信息元按模2 和得到的,即監督元是信息元按線性關系相加而得到的,則稱為線性分組碼[6]。線性分組碼是一類重要的糾錯碼,應用很廣泛,比如Hamming 碼、循環碼、BCH 碼和RS 碼都可以看作線性分組碼的特例。
本設計主要實現線性編碼中的Hamming 碼仿真,利用MATLAB 中的Simulink 模塊來實創建仿真模型,該系統模型圖是由信源Tx 模塊、噪音模塊、負責調制的Rx 模塊、糾錯模塊組成。加入高斯白噪音模塊是因為在通信系統中常見的熱噪音近似為白噪音,而白噪音的取值分布又正好滿足高斯分布;加入糾錯模塊是為了檢測在傳輸中是否存在差錯。Hamming 碼系統模型框圖如圖1 所示。

圖1 Hamming 碼系統模型框圖
圖1 中Tx 和Rx 是兩個子系統,Tx 模塊是由信號發生器、漢明碼編譯器、緩沖儲存器、QPSK 基帶調制解調器以及輸出信號組成。數據經過信號發生器輸入,分三路輸出,一路是直接輸出msg;一路是經過漢明碼編碼器、緩沖器、QPSK 調制輸出Code;一路是經過QPSK 解調輸出Uncode。信號發生器和漢明碼編譯模塊主要是完成信號的漢明碼編譯,緩沖器用以提高系統穩定性,防止數據產生劇烈變化。Tx 子系統模型框圖如圖2 所示。

圖2 Tx 子系統模型框圖
該部分是漢明碼仿真的第二個子模塊Rx 模塊。編碼模塊是由編碼數據Code 經過QPSK 調制器、解除緩沖器、延時器、緩沖器1、漢明碼編碼器,輸出Code1 組成;另外一路是未編碼數據直接輸入QPSK解調器解調,得到未編碼信號。QPSK Demodulator Baseband 模塊參數設置與Tx 模塊中一致,因為經過Hamming 編碼后,一幀數據由原來的4 個變為7 個。而QPSK 調制時,是以兩個比特為一組進行調制的,所以,進行譯碼時要重新恢復7 個比特為一幀數據。這個功能是通過Unbuffer、Delay、和Buffer 三個模塊完成的。Unbuffer 模塊的功能是把QPSK 模塊的輸出數據由幀形式轉換為抽樣數據形式。由于程序需要運行多次才能夠得到信噪比與誤比特率之間的關系,因此如果要繪制信噪比與誤比特率曲線關系圖,需要多次運行Hamming 碼仿真模型。
這部分主要設計線性編碼中的RS 編碼,利用MATLAB 中的Simulink 模塊來實創建仿真模型,RS 碼系統模型框圖如圖3 所示。

圖3 RS 碼系統模型框圖
RS 碼系統模型包括Tx 和Rx 子系統,RS 碼系統模型圖是由信源Tx 模塊、無記憶二進制對稱信道模塊、負責調制的Rx 模塊、誤碼率計數器模塊組成。加入無記憶二進制對稱信道模塊是因為在通信系統中此信道的輸入誤碼率和輸出誤碼率都是相同的,具有較好的穩定性。Tx 模型的運行主要是:數據經過隨機整數發生器輸入,分兩路輸出;一路是經過MATLAB Fcn5、MATLAB Fcn3、To Frame 輸出bit;一路是經過RS 編碼變為樣本,再進入MATLAB Fcn 輸出Code。Tx 和Rx 子系統模型通過Simulink 模塊完成創建。
CRC 校驗的基本思想是利用線性編碼理論,在發送端根據要傳送一個n 比特的幀或報文,發送器生成一個r 比特的序列,稱為幀檢驗序列(FCS)。這樣形成的幀將由(n+r)比特組成[14]。這個幀剛好能被某個預先規定的數整除。接收器用相同的數去除外來的幀,結果無余數,則認為無差錯。為了傳輸的正確性,在接收端要有一個CRC 檢驗器。它的功能和發生器一樣,當收到CRC 冗余校驗碼后,做同樣的模2 除法。如果余數是0,則說明傳輸正確;否則,傳輸錯誤,應重傳。
仿真部分代碼如下:

在線性信道編碼中,首先對漢明碼進行仿真分析,利用Hamming 碼系統模型,執行ex3sim 文件后,繪制的Hamming 碼仿真結果如圖4 所示。

圖4 Hamming 碼仿真結果圖
在信噪比比較低時,不編碼的誤比特率要好于編碼的誤比特率,這是因為編碼雖然可以帶來編碼增益,但在傳輸總能量不變的情況下,由于傳輸每個編碼碼字中的比特能量減少,信噪比降低,由于信噪比降低而使誤碼率升高,而此時編碼增益很小,因此,編碼結果反而不如不編碼的結果。而在信噪比較高時,編碼增益要大于信噪比降低而導致的性能損失。當信噪比為2dB 時,未編碼誤比特率為0.75,Hamming 編碼誤比特率為0.85;當信噪比為4dB 時,未編碼誤比特率為0.65,Hamming 編碼誤比特率為0.75;當信噪比為6dB 時,未編碼誤比特率和Hamming 編碼誤比特率均為0.055;當信噪比大于6dB 時,Hamming 編碼結果要優于不編碼的結果。
在線性信道編碼中,接下來對RS 碼進行仿真分析,利用RS 碼系統模型,執行ex7sim 文件后,繪制的RS 碼仿真結果中,當信噪比為2dB 時,未編碼誤比特率為0.11,RS 編碼誤比特率為0.21;當信噪比為4dB 時,未編碼誤比特率和RS 編碼誤比特率均為0.85;當信噪比為6dB 時,未編碼誤比特率為0.05,RS 編碼誤比特率為0.03。總體來說在信噪比小于4dB時,未編碼誤比特率優于RS 編碼。而在信噪比大于4dB 時,RS 編碼結果要優于不編碼的結果。
在線性信道編碼中,最后對CRC 校驗碼進行仿真分析,利用CRC 校驗碼系統模型,執行ex9sim 文件后,CRC-16 的檢測性能隨著信噪比的增加而提高。在信噪比大于5dB 時,CRC 檢測器發送錯誤判決的比率小于10-4,即每10000 個數據幀中只有一個幀在發送傳輸錯誤時未能被CRC 檢測器檢查出來。