當調制方式為16-AQM,64-QAM和256-QAM時需要做位交織,交織的目的是將突發的錯誤分散開來,把一個較長的突發差錯離散成隨機差錯,再用隨機差錯的編碼(FEC)等信道編碼技術消除隨機差錯,提高通信的可靠性。交織的越深,抗突發錯誤的能力也越強。位交織的本質是做矩陣的轉置運算,需要轉置的數據包括信息位和校驗位,在交織的過程中分兩步完成,步為檢驗位交織,第二步為列旋轉交織。
1.QAM調制方式介紹
QAM正交振幅調制,其幅度和相位同時變化,屬于非恒包絡二維調制。它把2ASK和2PSK兩種調制結合起來,使得帶寬得到雙倍擴展。ASK和PSK調制方式如下圖所示:
QAM調制技術用兩路獨立的基帶信號對頻率相同、相位正交的兩個載波進行調幅,并將已調信號加在一起進行傳輸。nQAM代表n個狀態的正交調幅,一般有二進制(4QAM)、四進制(16QAM)、八進制(64QAM)、十六進制(256QAM)。得到多進制的QAM信號,需要將二進制信號轉換為m電平的多進制信號,然后進行正交調制,相加輸出。
通信系統中通常把信號矢量端點的分布圖成為星座圖,同眼圖相比,星座圖可以看成數字信號的一個二維眼圖陣列,屏幕上的圖形對應著幅度和相位,通過星座圖,可以發現諸如幅度噪聲,相位噪聲,相位誤差等調制問題,采用格雷碼編碼技術,16QAM星座圖編碼映射關系如下圖所示:
橫縱、坐標的取值均有4種,分別為±1、±3,每種坐標需要3bit二進制來表示,差分編碼后輸入的符號與QAM調制系統中的I、Q之路幅值映射關系如下表所示:
2. 檢驗位交織
檢驗位進行交織的時候,信息為的數據需要保持不變,檢驗位交織需要滿足以下方程:
根據校驗位交織地址生成公式可知,交織前的矩陣為Qldpc*360,即依次向數據每行寫入360個數,第361個數為第二行列數,依次類推。存放Rom地址如圖所示:
交織的本質是行進列出,即取數據依次如下地址取數據,重新生成新的一組向量Matlab 中,重新產生讀數據的地址索引,即可實現矩陣的轉置,使用兩個for循環在硬件平臺上實現上述操作則需要兩個計數器來實現地址的累加,實現的波形如圖所示3. 列旋轉交織
校驗位交織輸出ui按列順序依次寫入列旋轉交織器,然后按行依次讀出,完成列旋轉交織,每列寫入的起始位置由tc決定,整個旋轉交織見下圖列旋轉交織用公式表示如下:
輸入為ui,0≤i≤Nldpc,寫入交織器的ci列,ri行,其中列旋轉交織器的輸出為ui,0≤i≤Nldpc,從交織器的ri行,ci列讀出,其中列旋轉交織測參數為Nldpc = 16200,Rows Nr =2025,Columns Nc = 8,列旋轉參數tc見下表交織之前的數據地址為
對于列旋轉交織,每列Tc的值都是確定的,因此可以按照一定規律求出每列的地址,如下圖所示,以第四列Tc為7為例,即數據整體往后移7行,7行的數據,移到前面的幾行。求出新的地址后,依次將行地址數據讀出即完成位旋轉交織。
在計算列旋轉交織的時候需要考慮固定延遲Tc,在matlab中,可以這樣得到交織的結果相比奇偶校驗,列旋轉交織多了Tc的延遲,需要在正常產生地址的情況下再進行操作,正常地址產生的操作同奇偶校驗。Tc是21,因此可以定義一個狀態機來完成此操作,如下:
對照交織之后得到的地址矩陣,在狀態Row_1讀取行的地址,前三列Tc =0,不做任何操作,正常讀出轉置后的地址即可;第四列需要加上2025-1,第五列加2025-7,后面的三列也按照Tc的延遲進行操作。Row_2代表第二行,依次類推,讀完21行之后,相同的列對應的操作都一樣,都在Row_last中完成Gen_end表示交織完成,跳轉到狀態0,等待下一幀的操作。
從以往的學習經驗來看,想從新手進階為FPGA高手、行業資深FPGA開發工程師,您不僅要學習基礎的數字電路知識,掌握基礎電路如組合邏輯、時序邏輯電路的原理與實現方法。編程語言方面,學會使用硬件描述語言Verilog或者VHDL,并選擇相應FPGA開發平臺設計軟件(Quartus或者ISE),找相關的實例“抄寫”代碼,逐漸熟悉FPGA硬件語言編程及編譯器使用。經過前面一段的鋪墊學習,然后你就可以自行嘗試設計數字電路了。在做項目的時候,根據提供時序圖使用HDL語言去完成它,這時候你就可以購買FPGA開發板去完成項目后續設計、驗證和sim仿真設計了。
審核編輯 :李倩
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603016 -
邏輯電路
+關注
關注
13文章
494瀏覽量
42610 -
二進制
+關注
關注
2文章
795瀏覽量
41643
原文標題:FPGA無限通信技巧—位交織
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論