2008年7月6日 星期日

Implementation of a RSC Encoder Using C Program

使用C語言實現一個RSC Encoder

下圖為一個渦輪碼的編碼器:
訊號在傳送之前,必須經過編碼後再傳送出去.當有訊號要傳送時,輸出端可分為三個部份,一個為將原始訊號輸出;一個為將訊號經過encoder後在輸出;另一個為將訊號經過交錯器後,在進行編碼.


下圖為一個RSC Encoder
RSC encoder與常見的convolution encoder不同在於RSC encoder有一個遞迴的訊號處理.之前所提到的convolution encoder 會在訊號後面加上m個0來清除記憶體內容值,而RSC encoder再訊號輸入端前有一個switch,首先switch會指向u,當訊號編碼完後,switch會接收遞迴的訊號,把遞迴的訊號當成輸入端,在進行編碼。


下圖是從上圖推導出來的,左邊框起來為記憶體的內容值,1~8為自訂的狀態,分別代表記憶體的000~111, u/c 是輸入與輸出的結果,箭頭的指向為下一個狀態,虛線代表輸入0,實線代表輸入1.只要知道訊號原,就可以從此圖推導出輸出值.


下圖為使用matlab所執行出來的結果。index為經過交錯器後所產生新的訊號的位址。en_output為經過RSC encoder 編碼出來的結果。


下圖為使用C語言所執行出來的結果圖,對照matlab的結果可知使用C語言所撰寫的RSC encoder無誤。

沒有留言: