999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于FPGA的多通道復用Viterbi譯碼器的設計與實現

2017-11-15 22:08:35龐志鋒劉欣欣王曉君
電腦知識與技術 2017年28期

龐志鋒+劉欣欣+王曉君

摘要:衛星定位接收機中的卷積碼譯碼即Viterbi譯碼,在處理器中面臨著占有資源比較多、處理時間太長等問題,為了減少處理器中資源占用和提高它的處理速度,采用了多通道復用和串行加比選蝶形單元的方法,在FPGA平臺上用硬件描述語言設計出一種高性能Viterbi譯碼器,大大減少資源占用,提高了接收機的處理速度。

關鍵詞:卷積碼;Viterbi算法;FPGA;資源占用

中圖分類號:TN919 文獻標識碼:A 文章編號:1009-3044(2017)28-0251-03

Abstract: Satellite positioning receiver decoding convolutional code Viterbi decoder, facing the problem of share more resources and processing time in the processor, the processor in order to reduce the occupied resources and improve the processing speed, using multi channel multiplexing and serial plus selection butterfly unit method, using hardware description language to design a high performance Viterbi decoder FPGA platform, greatly reduce the resource utilization, improve the processing speed of the receiver.

Key words: convolutional code; Viterbi algorithm; FPGA; resource consumption

卷積碼是廣泛應用于無線通信、衛星通信等多種通信系統中的信道編碼方式。Viterbi算法是卷積碼的最大似然譯碼算法,該算法譯碼速度快、性能好,并且實現硬件結構也比較簡單,是最優的卷積碼譯碼算法[1]。在現代通信系統中,要使信號能夠更可靠地在信道中傳輸,往往需要在信道編碼中采用糾錯碼來降低信號受噪聲的影響,以降低傳輸的誤碼率。卷積碼及其Viterbi譯碼是比較常用的信道編碼方案。

1 卷積編碼及Viterbi算法基本原理

卷積碼是由移位寄存器和n個模2加法器組成,當前狀態的輸入進來的數據和寄存器組中的數據共同決定著編碼器的輸出結果。(2,1,7)卷積碼的生成多項式為G=(171,133),電路圖如圖1所示[2]。(2,1,7)卷積碼編碼器由6個延時器(圖1中的q-1模塊,可用寄存器實現)和兩個模2加法器組成,它的編碼約束度為7,碼率為1/2,即輸入端輸入1b信息,輸出端輸出2b編碼信息,并分為上、下兩路并行輸出。

Viterbi譯碼算法是找最大度量的最大似然路徑,即找出局部最優的幸存信息就等效于找到最優幸存信息,它將比較進入每一狀態下的所有路徑,然后得出最優路徑并存儲,即幸存路徑,步驟為:(1)從某一時間單位[l=m]開始,將每個路徑中的分支度量值計算出來,然后將所有狀態的分支度量值和幸存路徑存儲下來;(2)[l]增加l,[l=m+1],累加更新后的分支度量值和之前的分支度量值,然后計算出來最大度量的路徑,然后把更新后的幸存路徑及其度量值存儲下來,并刪掉其他路徑;(3)若[l

2 基于硬件描述語言的Viterbi算法

由Viterbi譯碼算法可以得出Viterbi譯碼器的結構框圖,圖2是Viterbi譯碼器結構框圖,一個Viterbi譯碼器,一般都會包括圖2所示的幾個基本部分:控制模塊、分支度量計算模塊、加比選模塊、幸存路徑管理模塊和一些必要的存儲模塊。

2.1 仲裁邏輯設計

仲裁寫控制,首先輪詢一遍所有通道,將通道使能轉為寫信號暫存在寫使能寄存器中,并且在此輪詢中將數據也暫存,并將寫使能與暫存數據例化進相應的FIFO中。

通道FIFO數據向緩存FIFO中導入控制,判斷每一個FIFO中的數據是否滿足了譯碼的條件的數量,若滿足了譯碼條件的數量,并且緩存FIFO的空信號有效時,則可以將數據從滿足條件的通道FIFO中導入到緩存FIFO中,此時通道FIFO的讀使能與緩存FIFO的寫使能信號的高電平長短應該為486個主鐘,這樣控制輸入到緩存FIFO中的數據為486,當導入到緩存FIFO中的數據達到了486個時,將產生Decode_start信號與相應的通道號。

仲裁讀控制,當譯碼模塊處于忙狀態,然后譯碼模塊的讀使能有效,并且FIFO不空時,則將啟動FIFO讀使能,再利用讀使能將FIFO中數據進行輸出。仲裁邏輯模塊的原理圖如圖3所示。

2.2 控制模塊

控制模塊主要的任務是產生系統內部各個模塊的各種控制信號,這些內部的控制信號保證了各個功能模塊的協調工作。因此,控制模塊對于系統有序高效的運行非常重要,是整個Viterbi譯碼系統的核心模塊[3]。

當Decode_start信號有效時,譯碼控制模塊中的Control_vaild信號置高電平,在主鐘和Control_vaild信號有效下主鐘計數器Clk_cnt加1,每當Clk_cnt為0時,RD_FIFO置高電平持續1個鐘,蝶形狀態計數器Status_num根據當前Clk_cnt的計數值減1處理,在Status_num輸出延遲2個主鐘后輸出Butter_select(為了匹配距離計算模塊的節奏)將每對蝶形單元的輸出送譯碼計算模塊,當Clk_cnt為32時,Status_num保持31不變,當Clk_cnt計數值達到37時,清零重新開始計數,每當Clk_cnt清零時,送存儲模塊的Ping_Pang信號翻轉,同時譯碼控制模塊的Bit_cnt計數器加一,當Bit_cnt計數為242時,輸出Frame_over信號送仲裁模塊,當Bit_cnt計數值為242且Clk_cnt計數值為35時,輸出Combine_result_enable信號送譯碼輸出模塊進行最后64位結果的拼接。當Bit_cnt計數值為134且Clk_cnt計數值為0時,輸出ID_bit_enable信號送譯碼輸出模塊進行ID號輸出。控制模塊的時序圖如圖4所示。

2.3 加比選(ACS)模塊

ACS單元把前一狀態的度量值,與當前輸入信號的分支度量相加得到該分支的度量值,比較不同分支路徑度量的大小,選擇最小的度量值,更新當前狀態的新度量值,并存儲到RAM中,當更新完所有狀態的度量值,將讀出RAM中的數據給ACS模塊使用。所以可以得出,加比選模塊由加法器、比較器和選擇器組成。加比選模塊將度量值保存到距離存儲單元,更新距離度量值。同時將最優路徑存到路徑存儲單元,更新最優路徑。

加法器是距離計算模塊得出的分支度量值和存儲單元得到的累加度量值相加;比較器是0狀態下輸入為0時相加的結果和1狀態下輸入為0時相加的結果作比較。0狀態下輸入為32相加的結果和1狀態下輸入為32時相加的結果作比較,上面兩個結果作比較得出最優路徑;選擇器是比較選出較小的一個度量值輸出給存儲單元,選擇出的最優路徑也存入存儲單元。

3 仿真及接收機測試結果

整個系統使用Verilog HDL完成了設計,在Modelsim SE 6.6d平臺上進行了仿真,將Matlab生成的數據寫入一個Modelsim待讀的存儲器中,然后利用測試激勵文件來讀取數據,數據經過頂層模塊后,數據主要經過仲裁復用模與譯碼模塊還有中斷模塊中進行仲裁復用、譯碼和叫中斷,在Modelsim中產生最后輸出的數據。利用Modelsim產生的數據與Matlab仿真生成的數據進行對比,Modelsim仿真出來的誤碼個數和誤碼的位置都和Matlab一一對應,兩種仿真的數據都嚴格對應,并且在Xilinx ISE Design Suite 13.2平臺上進行了綜合。仿真結果如圖5所示。

誤碼性能圖6是根據Matlab仿真出來的RD維特比譯碼case列表畫出來的,該表格的數據與誤比特率理論值都一一對應。

4 結束語

本文通過研究(2,1,7)卷積碼Viterbi譯碼的FPAG(Field Programmable Gate Array現場可編程門陣列)實現算法,設計了采用多通道情況下使用仲裁邏輯、雙口RAM、加比選單元選擇最優路徑的軟判決Viterbi譯碼器。該譯碼器既滿足了譯碼速度,又比并行算法節省了約50%的硬件資源,而且還便于和其他系統模塊結合。

參考文獻:

[1] 傅民倉,馮立杰,李文波.基于FPGA的高速Viterbi譯碼器優化設計和實現[J].現代電子技術,2006,29(7):52-54.

[2] 蔡志龍,馮文江,楊洋.一種基于FPGA的Viterbi譯碼器優化算法[J].現代電子技術,2008,31(17):105-107.

[3] 丘磊,張巖.基于FPGA的高性能Viterbi譯碼器的設計[J].微電子學與計算機,2010,27(7):246-249.

[4] 韓可,鄧中亮,施樂寧.(2,1,7)卷積碼Viterbi譯碼器FPGA實現方案[J].現代電子技術,2007,30(15):90-96.

[5] 牛晨曦,張輝.一種基于FPGA的Viterbi譯碼器[J].現代電子技術,2005,28(3):56-57.

[6] 王連成.基于FPGA的Viterbi譯碼器設計[J].電子元器件應用,2010,12(5):39-40.

[7] 王新梅,肖國鎮.糾錯碼—原理與方法:修訂版[M].西安:西安電子科技大學出版社,2001:443-460.

[8] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.

[9] 張傳達,李小文.卷積碼編碼及其Viterbi譯碼器的實現[J].無線電工程,2006,36(07).

[10] 樊昌信,曹麗娜.通信原理[M].北京:國防工業出版社,2008.

[11] Scllegel C.Fundamentals of Digital Communication and Blocking Coding, Chapter 4: Convolutional Codes[M].IEEE Press, 2002.endprint

主站蜘蛛池模板: 黄色网站不卡无码| 欧美日韩北条麻妃一区二区| 亚洲人成色在线观看| 中文字幕在线不卡视频| 少妇人妻无码首页| www.亚洲色图.com| 国产精品网曝门免费视频| 在线看片国产| 亚洲国产精品一区二区第一页免 | av在线无码浏览| 日韩欧美国产综合| 国产sm重味一区二区三区| 亚洲av片在线免费观看| 国产Av无码精品色午夜| 久久精品国产精品国产一区| a毛片免费看| 国产特级毛片aaaaaaa高清| 日本一区二区不卡视频| 欧美日一级片| 精品人妻无码区在线视频| 91久久国产成人免费观看| 情侣午夜国产在线一区无码| 午夜限制老子影院888| 国产国拍精品视频免费看| 99re热精品视频国产免费| 亚洲综合激情另类专区| 99视频国产精品| 亚洲大学生视频在线播放| 麻豆精品在线播放| 中文无码毛片又爽又刺激| 精品国产福利在线| 国产毛片基地| 自慰网址在线观看| 亚洲日本韩在线观看| 99这里只有精品在线| 亚洲精品天堂在线观看| 精品国产毛片| 精品国产网| 国产成人无码AV在线播放动漫| jizz国产视频| 国产国产人免费视频成18| 精品福利国产| 久久天天躁狠狠躁夜夜2020一| www.av男人.com| 中文字幕人妻无码系列第三区| www.av男人.com| 久久午夜影院| 欧美成人午夜视频免看| 免费无码在线观看| 在线日韩日本国产亚洲| 欧美不卡视频在线| 中文字幕日韩视频欧美一区| 重口调教一区二区视频| 国产美女91视频| 精品欧美视频| 日韩国产 在线| 免费一看一级毛片| 综合久久五月天| 亚洲精品黄| 欧美特黄一免在线观看| 54pao国产成人免费视频| 亚洲人免费视频| 国产在线专区| 国产精品久久自在自线观看| 欧美成人第一页| 好吊色妇女免费视频免费| 亚洲欧美日韩中文字幕在线| 东京热一区二区三区无码视频| 在线亚洲小视频| 青青热久免费精品视频6| 成人在线欧美| 久久天天躁狠狠躁夜夜2020一| 国产精选小视频在线观看| 久久久无码人妻精品无码| 毛片三级在线观看| 日日碰狠狠添天天爽| 久久福利网| 91精品综合| 久久网欧美| 亚洲精品另类| 99精品视频在线观看免费播放| 在线看国产精品|