新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 通信系統中Viterbi譯碼的Matlab仿真與實現

        通信系統中Viterbi譯碼的Matlab仿真與實現

        作者: 時間:2012-04-28 來源:網絡 收藏


        2 維特比譯碼原理
        譯碼是卷積碼的最大似然譯碼算法,是一種實用化的概率算法。它的基本思想是把已接收序列與所有可能的發送序列作比較,選擇其中碼距最小的一個序列作為發送序列。從圖2的卷積碼網格圖可以看出,卷積碼編碼過程就是編碼器狀態沿著時間軸的一個轉移過程。Vi terbi譯碼則是在如圖2所示的網格圖上搜索最可能的狀態跳轉路徑,設(n,k,m)編碼器輸出的碼序列為T,寄存器長度為L,經過離散無記憶通道(DMC)傳輸后送入譯碼器的序列是R=T+E,其中E為信道的錯誤序列。譯碼器根據接收序列R,按最大似然譯碼準則找到接收序列在如圖2所示的編碼器網格圖上所走過的路徑,這個過程就是譯碼器計算和尋找最大似然函數的過程,或者說是尋找最大度量路徑的過程。其中最大似然函數為
        d.JPG
        尋找最大度量路徑時首先要在t時刻讀取所有狀態的幸存路徑度量值,再根據t+1時刻的輸入算出跳轉路徑的度量值,將t時刻的幸存路徑度量值和t+1時刻的跳轉值相加,可得到t+1時刻到狀態S的幸存路徑度量值。這樣每個狀態都有一個幸存路徑,根據這些幸存路徑和最終編碼器所處的狀態就可以得到編碼器的狀態轉移路徑即譯碼結果。

        3 維特比譯碼
        維特比算法是將接收到的信號序列和所有可能的發送信號作比較,選擇其中漢明距離最小的序列作為現在的發送信號序列。譯碼一般由圖2所示的網格圖中的S0狀態開始,由于有6個寄存器,當每個寄存器的值都為已知時再輸入才能得到唯一的編碼器輸出,所以譯碼初期連續接收12 bit的信息,它是由6 bit的輸入得來的,由于6 bit的輸入有64種可能的輸出,所以將接收到的12 bit與64種可能相比對找出漢明距最小的一組即為想要的編碼器輸入也即譯碼器的輸出。
        一個完整的譯碼器一般包括以下7部分:狀態發生器、累加器、比較器、度量值寄存器、信息序列寄存器、判決器、其他控制電路等,如圖3所示。

        本文引用地址:http://www.104case.com/article/155065.htm

        e.JPG


        對于(2,1,7)卷積碼,在一個譯碼周期內,累加器完成64條支路度量值計算,比較器組完成同一狀態的路徑距離值比較,將較小者存入64個度量值寄存器。判決器選出64個信息序列寄存器中的最小者,并將相應信息序列寄存器的譯碼結果輸出。
        當確定各寄存器的初值后,從當前狀態經過加比選蝶形運算后,到達下一狀態,通過對每一分支度量的累積計算,經比較分析找到與接收序列距離最近的幸存路徑。程序中的Nextstaterow是經過加比選得到的下一狀態,將每次加比選的結果Nextstaterow保存下來放在一個數組Nextsatate中,當譯碼完成后Nextsatate中的各值即為譯碼所走過的路徑,按照Nextsatate中的值,通過如圖2所示的網格圖回溯即可得到譯碼結果。
        在信息傳輸的過程中,由于各種噪聲的影響會造成接收到的數據有可能是誤碼,但連續出現2 bit的誤碼的概率又非常小,所以這里只考慮出現一比特誤碼的情況。當出現誤碼時兩條岔路漢明距相等,由于基本不會出現2 bit的誤碼所以等到下一個節點時判斷漢明距的大小就可以找到正確的輸出。

        f.JPG


        圖4是譯碼輸出與編碼器輸入的比對,誤碼率很低,在所截取的圖片中無誤碼出現,由結果可清楚地看出譯碼器的輸出與編碼器的輸入完全重合,說明譯碼器具有良好的前向糾錯功能,用于可以提高信息傳輸的可靠性。

        4 結束語
        驗證了譯碼方案的可行性,這種譯碼方法得到的輸出誤碼率可低至10-6。這種方案已用于某導航中,經測試,該譯碼方案在低信噪下也能達到較低誤碼率。

        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 溆浦县| 呈贡县| 桓台县| 临邑县| 库尔勒市| 阳西县| 华坪县| 罗定市| 鄱阳县| 漠河县| 阿克陶县| 威宁| 湘阴县| 永济市| 浦北县| 靖宇县| 湖北省| 家居| 缙云县| 玛曲县| 奉贤区| 巴中市| 阿坝| 鹤岗市| 潞西市| 泽普县| 望都县| 秦皇岛市| 苍山县| 栾川县| 华蓥市| 雷州市| 阳山县| 江津市| 鱼台县| 郯城县| 灵石县| 马关县| 九江市| 怀安县| 溆浦县|