?

基于FPGA的自由空間光通信抗湍流算法

2022-09-09 01:45譚曉川王碧瑤李少波馬明毅楊乾遠
無線電工程 2022年9期
關鍵詞:誤碼交織湍流

譚曉川,王碧瑤,李少波,馬明毅,楊乾遠

(1.中國電子科技集團公司第五十四研究所,河北 石家莊050081;2.河北省光子信息技術與應用重點實驗室,河北 石家莊050081;3.中國電子科技集團公司第三十四研究所,廣西 桂林 541004)

0 引言

自由空間光通信技術具有抗干擾能力強、通信容量大和空間傳輸損耗小的特點,在復雜電磁環境下具有很好的應用前景[1-2]。當前,自由空間光通信存在的主要問題是大氣湍流信道對激光傳輸質量的影響,光束在大氣信道中傳輸時,受湍流效應影響,會產生隨機起伏和光強的抖動,影響通信鏈路的穩定性和可靠性,甚至造成鏈路中斷[3-4]。在自由空間通信中,湍流引起的激光功率衰落的典型持續時間是0.1~10 ms,最大衰落深度可超過30 dB,并呈現出衰落持續時間越長頻率越低的現象[5]。

針對上述由大氣湍流效應產生的通信問題,通常采用自適應光學等手段進行光學波前修復和補償[6-7],抑制大氣湍流對信號帶來的影響,從而提升信號質量。但自適應光學系統存在體積功耗較大,且難以對大型湍流進行抑制的問題。不同于傳統的自適應光學手段,本文采用數字信號處理的方式進行大氣湍流抑制,創新性地提出了一種適用于不同湍流條件的交織算法矩陣模型,采用交織加編譯碼的抗湍流算法進行了FPGA內的算法實現及驗證,為自由空間光通信湍流抑制提供了一個新的解決思路。

1 抗湍流算法原理

受大氣湍流影響,自由空間光通信中會產生大范圍、突發性錯誤,傳統的糾錯碼技術修復誤碼的能力有限,且很難抵抗大量的連續突發誤碼,因此無法有效地進行糾錯。為此,提出了采用交織加糾錯碼的抗湍流算法,利用交織把較長的突發錯誤或者幾個分立的突發錯誤離散成為隨機錯誤[8],在一一對應的情況下進行數據位重組,再利用糾錯碼技術進行有效糾錯[9]。通過交織進行連續突發錯誤處理的示意圖如圖1所示,連續錯誤被打散到不同位置進行糾錯譯碼,使得錯誤數據得到有效的恢復。

圖1 交織處理連續誤碼能力示意Fig.1 Interleaving algorithm for processing continuous error

在自由空間光通信大氣湍流抑制算法中,交織器的設計算法作為其中的關鍵,其性能優劣直接影響到大氣湍流的抑制效果。針對此問題,設計了一種適用于不同湍流環境的交織器算法。

2 交織器算法設計

在糾錯碼性能一定的情況下,大氣湍流抑制性能的好壞主要取決于交織器的算法。常用的交織方式分為分組矩陣式與隨機式[10-11]。分組矩陣式通過逐行讀入、逐列寫出的方式,操作簡單且資源占用少,因而受到廣泛使用。而隨機式交織器通過生成隨機矩陣將序列打散,離散度相對更高,通信雙方一般采用存儲的方式將隨機矩陣序列進行存儲。

針對自由空間光通信的信道特性,分別設計了交織矩陣為5 000×5 000的分組矩陣交織器和隨機交織器,通過仿真得到了強弱湍流環境下2種交織器的突發錯誤矩陣分布,其誤幀分布統計如圖 2 所示。

可以看出,分組矩陣交織器能夠將錯誤分布得足夠均勻,但是其離散度有限,特別是在強湍流模型下,分組矩陣交織會造成局部的集中分布。即使在交織之后也不能得到較好的離散,影響后續糾錯碼的性能。然而對于湍流較小的情況,分組交織能夠很好地將誤幀分散于整個大幀之中,達到分布均勻的目的,因此分組交織可以很好地應用于小湍流情況下的信道中。而隨機式交織器能夠將錯誤打得足夠散,使得錯誤分布廣,但存在局部分布不均勻的情況。

結合2種交織矩陣的優點,提出了一種分組隨機矩陣的交織方案,其設計思想為,首先進行分組交織,將突發錯誤進行打散,再進行組內的隨機交織,將連續的誤碼進行分散。因此新的分組隨機交織方案既繼承了隨機交織的優良離散性,又繼承了分組交織的均勻性,使得誤碼可以更好地均勻離散。

(a) 小湍流下分組解交織后誤碼分布位置

(b) 強湍流下分組解交織后誤碼分布位置

(c) 小湍流下隨機解交織后誤碼分布位置

(d) 強湍流下隨機解交織后誤碼分布位置

在交織中通常使用相鄰誤碼在交織后的錯誤離散距離評估交織算法的性能[12]。錯誤離散距離常用計算式如下:

通過信道模擬了小湍流和大湍流情況下3種交織方式的錯誤離散距離性能參數,其結果如圖3所示。

(a) 小湍流下的錯誤離散距離

(b) 大湍流下的錯誤離散距離

錯誤離散距離數值越小,說明錯誤分布相對分散,離散性能越好;錯誤離散距離數值越大,則說明分布不均勻,性能越差。因此可以看出,在小湍流信道條件下隨機交織的性能較差,在大湍流信道條件下分組交織的性能較差。而改進后的分組隨機交織在大小湍流信道中數值均為最小,效果最優。測試結果表明,隨機分組交織方案解決了分組交織抑制大湍流能力差及隨機交織在小湍流下性能差的問題,在不同的大氣湍流環境中,數值最小,離散度最優,因此選用隨機交織矩陣作為抗湍流算法并進行FPGA設計。

3 抗湍流算法FPGA設計

由于在傳統的FPGA芯片中,芯片自身內置儲存空間相對較小[13],而自由空間光通信中大氣湍流造成的誤碼數量在Mbit量級[14-15],結合糾錯碼糾錯能力,解決大氣湍流造成的誤碼數量交織矩陣的深度需達到百兆量級。為滿足信息交織過程中的信息緩存需求,設計采用外掛DDR3的FPGA進行交織結構的算法運行[16-17],同時加入了鏈路性能反饋模塊進行交織矩陣大小的自適應調節,當誤碼率增大時,增加交織深度;誤碼率減小時,減少交織深度,便于DDR3內部緩存的合理化運用??雇牧魉惴ǖ脑O計驗證板卡采用Xilinx公司型號為XC7K325TFFG900的FPGA,同時外掛4片Micron公司型號為MT41K256M16HA-12DDR3的儲存芯片,用于大容量數據緩存,每片DDR3容量為512 MB。FPGA不僅處理速度高,而且可配置性好[18],使用Xilinx公司FPGA提供的專用DDR3接口模塊MIG(Memory Interface Generator)IP核可以輕松實現FPGA與外部存儲器之間的接口設計[19-20]。

自由空間光通信系統中,通常包含了發射端及接收端用于進行系統測試及算法驗證,因此抗湍流算法的實現也包括了發射端及接收端,其功能模塊結構完全相同,接收端算法為發射端算法的逆過程??雇牧魉惴‵PGA設計如圖4所示,主要包括了數據源模塊、編譯碼模塊、DDR3讀寫控制模塊、鏈路反饋模塊、MIG配置核及DDR3六個部分。

發射端抗湍流算法流程為產生數據源后,經過糾錯模塊進行預編碼,通過存入數據緩存器FIFO(First In First Out)中等待DDR3讀寫控制模塊進行讀取,DDR3讀寫控制模塊通過邏輯控制狀態機的方式進行DDR3狀態的切換及從FIFO接口中讀取數據的控制,通過配置DDR專用接口模塊MIG核進行DDR3數據交互的方式實現抗湍流算法。MIG核與DDR3交互流程如圖5所示。

圖4 抗湍流算法FPGA設計Fig.4 Anti-turbulence algorithm FPGA design

圖5 MIG核與DDR3交互流程Fig.5 Interaction flow of MIG core and DDR3

DDR3的寫入/讀出方式采用了設計好的分組交織矩陣的方式,按照順序將數據寫入DDR3,讀出時根據設計好的隨機分組矩陣進行對應數據的讀取,數據經過抗湍流算法處理后由激光器調制發出。接收端抗湍流算法與發端對稱,先在DDR3中按照隨機分組矩陣進行數據寫入,順序讀出后完成解交織部分送入糾錯模塊進行操作,最后在接收端得到發送數據。

4 仿真試驗與性能分析

4.1 功能測試

根據設計方案進行了FPGA代碼編寫并在板卡上進行了測試。首先進行了功能性驗證,設計了幀數據產生并通過編碼模塊,送入DDR3中進行交織后,再由接收端進行逆過程,得到接收端數據后進行數據及功能分析。交織后的數據時序如圖6所示,通過Matlab模擬了數據經過不同模塊后的數據源碼并將各個模塊FPGA板上測試結果導出數據后進行比對。

圖6 交織后的數據時序Fig.6 Data timing after interleaving

比對結果顯示,可以通過使用DDR3的方式實現分組隨機交織的抗湍流算法,驗證了整個方案的正確性。

4.2 誤碼分布測試

為驗證分組隨機交織算法的性能,采用加入誤碼模塊、改變傳輸數據的方式來產生人為的誤碼,從而進行湍流模型的構建,測試得到了大小湍流條件下的3種交織算法的誤碼率,測試結果如表1所示。

表1 不同湍流條件下3種交織算法的誤碼率測試

由于測試系統帶有糾錯模塊,當系統誤碼率越低時,說明離散度越好,糾錯的數量越多,從表中可以看出,隨機分組交織算法在2種湍流模型中誤碼率最低,與仿真結果趨勢相同,驗證了隨機分組交織算法的離散性能最優,在不同環境下的湍流信道中表現最好。

4.3 延時測試

由于DDR3自身為保證數據的正確性,存在周期性的自刷新操作,當DDR3進行自刷新操作時,不能夠進行正常的讀寫,在一定程度上影響了交織模塊的功能效率。為此加入了DDR3乒乓設計操作,使用2片DDR3進行讀寫并行操作,在一定程度上能夠減少延時,同時在交織模塊與前后模塊進行交互時加入了異步時鐘FIFO進行數據量的緩沖。

測試了不同交織深度的DDR3在進行交織操作時的延時,針對交織模塊進行了不同數據量讀取速度的測試,在程序中加入計數器測試了交織整個過程的時鐘數量作為時延數據,測試結果如表2所示。

表2 不同數據量下的DDR3讀寫速率測試表

從多次的測試數據可以看出,在DDR3讀出/寫入時加入乒乓可以在一定程度上抑制數據延時。由于DDR3產生的數據自刷新會產生一倍以上的數據時延,影響數據速率。通過采用異步時鐘FIFO可進行跨時鐘域處理,在降低讀取速率的基礎上抑制DDR3的自刷新現象。

5 結束語

本文提出了一種數字域抗大氣湍流的算法,基于常用的交織方式并結合湍流特點,提出了一種可應用于不同湍流環境中的交織矩陣算法,仿真結果表明交織矩陣在不同湍流條件下具有更優的錯誤離散距離,算法能有效減少湍流效應對于鏈路性能的影響。利用FPGA進行演示驗證,首次提出了使用DDR3的方式進行抗湍流算法的硬件實現,通過數據與Matlab模擬結果比對測試,進行了算法的功能性驗證,通過誤碼分布測試驗證了分組隨機交織的離散性能最優,對算法延時特性進行了測試和相應的優化,提出了DDR3乒乓結構的設計算法,將系統自刷新延時比例從3.21降低至2.14,減少了系統延時。

猜你喜歡
誤碼交織湍流
美食(2022年2期)2022-04-19
湍流燃燒彈內部湍流穩定區域分析?
“湍流結構研究”專欄簡介
交織冷暖
SDH傳輸設備信號傳輸過程中誤碼問題的分析
誤碼問題處理兩例
100Gbps誤碼檢測系統設計與實現
奧運夢與中國夢交織延展
作為一種物理現象的湍流的實質
湍流十章
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合