2008年4月27日 星期日

將convolution code encoder and Viterbi decoder 使用lcc 編譯成可實現在似MIPS處理器上

將先前使用C語言撰寫出來的旋積碼編解碼器,利用Lcc編譯成可在似MIPS架構上執行。

流程圖如下:


使用C語言執行encoder結果:


下圖為由lcc編譯後,經過PCspim產生機器碼,將機器碼放置在似MIPS架構內,執行出來的結果


下圖為Viterbi decoder 演算法的流程圖:



下圖為使用C語言執行後的結果:
下圖為由lcc編譯後,經過PCspim產生機器碼,將機器碼放置在似MIPS架構內,執行出來的結果:

2008年4月19日 星期六

使用C語言實現旋積碼的編解碼器

根據(n,k,m)=(2,1,2)可得知為2 output, 1 input , 2 memory
根據接線可得知
g(1)=101
g(2)=111
有接線為1 無則為0

下圖為Encoder for (2,1,2)convolutional code

根據上圖可求出下列狀態機

根據狀態機可求出格狀圖,裡面記載所有的輸入輸出資料


下圖為使用C語言撰寫encoder的流程圖



下圖為執行結果


下圖為Viterbi decoding 流程圖:



下圖為HDD流程圖:

下圖為手動運算的步驟:


由下圖可求出最小漢明距離,以及必須刪除的部份

下圖為最後的解碼結果

使用C語言執行後的結果如下: