譚曉川,王碧瑤,李少波,馬明毅,楊乾遠(yuǎn)
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊050081;2.河北省光子信息技術(shù)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,河北 石家莊050081;3.中國電子科技集團(tuán)公司第三十四研究所,廣西 桂林 541004)
自由空間光通信技術(shù)具有抗干擾能力強(qiáng)、通信容量大和空間傳輸損耗小的特點(diǎn),在復(fù)雜電磁環(huán)境下具有很好的應(yīng)用前景[1-2]。當(dāng)前,自由空間光通信存在的主要問題是大氣湍流信道對激光傳輸質(zhì)量的影響,光束在大氣信道中傳輸時(shí),受湍流效應(yīng)影響,會(huì)產(chǎn)生隨機(jī)起伏和光強(qiáng)的抖動(dòng),影響通信鏈路的穩(wěn)定性和可靠性,甚至造成鏈路中斷[3-4]。在自由空間通信中,湍流引起的激光功率衰落的典型持續(xù)時(shí)間是0.1~10 ms,最大衰落深度可超過30 dB,并呈現(xiàn)出衰落持續(xù)時(shí)間越長頻率越低的現(xiàn)象[5]。
針對上述由大氣湍流效應(yīng)產(chǎn)生的通信問題,通常采用自適應(yīng)光學(xué)等手段進(jìn)行光學(xué)波前修復(fù)和補(bǔ)償[6-7],抑制大氣湍流對信號(hào)帶來的影響,從而提升信號(hào)質(zhì)量。但自適應(yīng)光學(xué)系統(tǒng)存在體積功耗較大,且難以對大型湍流進(jìn)行抑制的問題。不同于傳統(tǒng)的自適應(yīng)光學(xué)手段,本文采用數(shù)字信號(hào)處理的方式進(jìn)行大氣湍流抑制,創(chuàng)新性地提出了一種適用于不同湍流條件的交織算法矩陣模型,采用交織加編譯碼的抗湍流算法進(jìn)行了FPGA內(nèi)的算法實(shí)現(xiàn)及驗(yàn)證,為自由空間光通信湍流抑制提供了一個(gè)新的解決思路。
受大氣湍流影響,自由空間光通信中會(huì)產(chǎn)生大范圍、突發(fā)性錯(cuò)誤,傳統(tǒng)的糾錯(cuò)碼技術(shù)修復(fù)誤碼的能力有限,且很難抵抗大量的連續(xù)突發(fā)誤碼,因此無法有效地進(jìn)行糾錯(cuò)。為此,提出了采用交織加糾錯(cuò)碼的抗湍流算法,利用交織把較長的突發(fā)錯(cuò)誤或者幾個(gè)分立的突發(fā)錯(cuò)誤離散成為隨機(jī)錯(cuò)誤[8],在一一對應(yīng)的情況下進(jìn)行數(shù)據(jù)位重組,再利用糾錯(cuò)碼技術(shù)進(jìn)行有效糾錯(cuò)[9]。通過交織進(jìn)行連續(xù)突發(fā)錯(cuò)誤處理的示意圖如圖1所示,連續(xù)錯(cuò)誤被打散到不同位置進(jìn)行糾錯(cuò)譯碼,使得錯(cuò)誤數(shù)據(jù)得到有效的恢復(fù)。
圖1 交織處理連續(xù)誤碼能力示意Fig.1 Interleaving algorithm for processing continuous error
在自由空間光通信大氣湍流抑制算法中,交織器的設(shè)計(jì)算法作為其中的關(guān)鍵,其性能優(yōu)劣直接影響到大氣湍流的抑制效果。針對此問題,設(shè)計(jì)了一種適用于不同湍流環(huán)境的交織器算法。
在糾錯(cuò)碼性能一定的情況下,大氣湍流抑制性能的好壞主要取決于交織器的算法。常用的交織方式分為分組矩陣式與隨機(jī)式[10-11]。分組矩陣式通過逐行讀入、逐列寫出的方式,操作簡單且資源占用少,因而受到廣泛使用。而隨機(jī)式交織器通過生成隨機(jī)矩陣將序列打散,離散度相對更高,通信雙方一般采用存儲(chǔ)的方式將隨機(jī)矩陣序列進(jìn)行存儲(chǔ)。
針對自由空間光通信的信道特性,分別設(shè)計(jì)了交織矩陣為5 000×5 000的分組矩陣交織器和隨機(jī)交織器,通過仿真得到了強(qiáng)弱湍流環(huán)境下2種交織器的突發(fā)錯(cuò)誤矩陣分布,其誤幀分布統(tǒng)計(jì)如圖 2 所示。
可以看出,分組矩陣交織器能夠?qū)㈠e(cuò)誤分布得足夠均勻,但是其離散度有限,特別是在強(qiáng)湍流模型下,分組矩陣交織會(huì)造成局部的集中分布。即使在交織之后也不能得到較好的離散,影響后續(xù)糾錯(cuò)碼的性能。然而對于湍流較小的情況,分組交織能夠很好地將誤幀分散于整個(gè)大幀之中,達(dá)到分布均勻的目的,因此分組交織可以很好地應(yīng)用于小湍流情況下的信道中。而隨機(jī)式交織器能夠?qū)㈠e(cuò)誤打得足夠散,使得錯(cuò)誤分布廣,但存在局部分布不均勻的情況。
結(jié)合2種交織矩陣的優(yōu)點(diǎn),提出了一種分組隨機(jī)矩陣的交織方案,其設(shè)計(jì)思想為,首先進(jìn)行分組交織,將突發(fā)錯(cuò)誤進(jìn)行打散,再進(jìn)行組內(nèi)的隨機(jī)交織,將連續(xù)的誤碼進(jìn)行分散。因此新的分組隨機(jī)交織方案既繼承了隨機(jī)交織的優(yōu)良離散性,又繼承了分組交織的均勻性,使得誤碼可以更好地均勻離散。
(a) 小湍流下分組解交織后誤碼分布位置
(b) 強(qiáng)湍流下分組解交織后誤碼分布位置
(c) 小湍流下隨機(jī)解交織后誤碼分布位置
(d) 強(qiáng)湍流下隨機(jī)解交織后誤碼分布位置
在交織中通常使用相鄰誤碼在交織后的錯(cuò)誤離散距離評(píng)估交織算法的性能[12]。錯(cuò)誤離散距離常用計(jì)算式如下:
通過信道模擬了小湍流和大湍流情況下3種交織方式的錯(cuò)誤離散距離性能參數(shù),其結(jié)果如圖3所示。
(a) 小湍流下的錯(cuò)誤離散距離
(b) 大湍流下的錯(cuò)誤離散距離
錯(cuò)誤離散距離數(shù)值越小,說明錯(cuò)誤分布相對分散,離散性能越好;錯(cuò)誤離散距離數(shù)值越大,則說明分布不均勻,性能越差。因此可以看出,在小湍流信道條件下隨機(jī)交織的性能較差,在大湍流信道條件下分組交織的性能較差。而改進(jìn)后的分組隨機(jī)交織在大小湍流信道中數(shù)值均為最小,效果最優(yōu)。測試結(jié)果表明,隨機(jī)分組交織方案解決了分組交織抑制大湍流能力差及隨機(jī)交織在小湍流下性能差的問題,在不同的大氣湍流環(huán)境中,數(shù)值最小,離散度最優(yōu),因此選用隨機(jī)交織矩陣作為抗湍流算法并進(jìn)行FPGA設(shè)計(jì)。
由于在傳統(tǒng)的FPGA芯片中,芯片自身內(nèi)置儲(chǔ)存空間相對較小[13],而自由空間光通信中大氣湍流造成的誤碼數(shù)量在Mbit量級(jí)[14-15],結(jié)合糾錯(cuò)碼糾錯(cuò)能力,解決大氣湍流造成的誤碼數(shù)量交織矩陣的深度需達(dá)到百兆量級(jí)。為滿足信息交織過程中的信息緩存需求,設(shè)計(jì)采用外掛DDR3的FPGA進(jìn)行交織結(jié)構(gòu)的算法運(yùn)行[16-17],同時(shí)加入了鏈路性能反饋模塊進(jìn)行交織矩陣大小的自適應(yīng)調(diào)節(jié),當(dāng)誤碼率增大時(shí),增加交織深度;誤碼率減小時(shí),減少交織深度,便于DDR3內(nèi)部緩存的合理化運(yùn)用??雇牧魉惴ǖ脑O(shè)計(jì)驗(yàn)證板卡采用Xilinx公司型號(hào)為XC7K325TFFG900的FPGA,同時(shí)外掛4片Micron公司型號(hào)為MT41K256M16HA-12DDR3的儲(chǔ)存芯片,用于大容量數(shù)據(jù)緩存,每片DDR3容量為512 MB。FPGA不僅處理速度高,而且可配置性好[18],使用Xilinx公司FPGA提供的專用DDR3接口模塊MIG(Memory Interface Generator)IP核可以輕松實(shí)現(xiàn)FPGA與外部存儲(chǔ)器之間的接口設(shè)計(jì)[19-20]。
自由空間光通信系統(tǒng)中,通常包含了發(fā)射端及接收端用于進(jìn)行系統(tǒng)測試及算法驗(yàn)證,因此抗湍流算法的實(shí)現(xiàn)也包括了發(fā)射端及接收端,其功能模塊結(jié)構(gòu)完全相同,接收端算法為發(fā)射端算法的逆過程??雇牧魉惴‵PGA設(shè)計(jì)如圖4所示,主要包括了數(shù)據(jù)源模塊、編譯碼模塊、DDR3讀寫控制模塊、鏈路反饋模塊、MIG配置核及DDR3六個(gè)部分。
發(fā)射端抗湍流算法流程為產(chǎn)生數(shù)據(jù)源后,經(jīng)過糾錯(cuò)模塊進(jìn)行預(yù)編碼,通過存入數(shù)據(jù)緩存器FIFO(First In First Out)中等待DDR3讀寫控制模塊進(jìn)行讀取,DDR3讀寫控制模塊通過邏輯控制狀態(tài)機(jī)的方式進(jìn)行DDR3狀態(tài)的切換及從FIFO接口中讀取數(shù)據(jù)的控制,通過配置DDR專用接口模塊MIG核進(jìn)行DDR3數(shù)據(jù)交互的方式實(shí)現(xiàn)抗湍流算法。MIG核與DDR3交互流程如圖5所示。
圖4 抗湍流算法FPGA設(shè)計(jì)Fig.4 Anti-turbulence algorithm FPGA design
圖5 MIG核與DDR3交互流程Fig.5 Interaction flow of MIG core and DDR3
DDR3的寫入/讀出方式采用了設(shè)計(jì)好的分組交織矩陣的方式,按照順序?qū)?shù)據(jù)寫入DDR3,讀出時(shí)根據(jù)設(shè)計(jì)好的隨機(jī)分組矩陣進(jìn)行對應(yīng)數(shù)據(jù)的讀取,數(shù)據(jù)經(jīng)過抗湍流算法處理后由激光器調(diào)制發(fā)出。接收端抗湍流算法與發(fā)端對稱,先在DDR3中按照隨機(jī)分組矩陣進(jìn)行數(shù)據(jù)寫入,順序讀出后完成解交織部分送入糾錯(cuò)模塊進(jìn)行操作,最后在接收端得到發(fā)送數(shù)據(jù)。
根據(jù)設(shè)計(jì)方案進(jìn)行了FPGA代碼編寫并在板卡上進(jìn)行了測試。首先進(jìn)行了功能性驗(yàn)證,設(shè)計(jì)了幀數(shù)據(jù)產(chǎn)生并通過編碼模塊,送入DDR3中進(jìn)行交織后,再由接收端進(jìn)行逆過程,得到接收端數(shù)據(jù)后進(jìn)行數(shù)據(jù)及功能分析。交織后的數(shù)據(jù)時(shí)序如圖6所示,通過Matlab模擬了數(shù)據(jù)經(jīng)過不同模塊后的數(shù)據(jù)源碼并將各個(gè)模塊FPGA板上測試結(jié)果導(dǎo)出數(shù)據(jù)后進(jìn)行比對。
圖6 交織后的數(shù)據(jù)時(shí)序Fig.6 Data timing after interleaving
比對結(jié)果顯示,可以通過使用DDR3的方式實(shí)現(xiàn)分組隨機(jī)交織的抗湍流算法,驗(yàn)證了整個(gè)方案的正確性。
為驗(yàn)證分組隨機(jī)交織算法的性能,采用加入誤碼模塊、改變傳輸數(shù)據(jù)的方式來產(chǎn)生人為的誤碼,從而進(jìn)行湍流模型的構(gòu)建,測試得到了大小湍流條件下的3種交織算法的誤碼率,測試結(jié)果如表1所示。
表1 不同湍流條件下3種交織算法的誤碼率測試
由于測試系統(tǒng)帶有糾錯(cuò)模塊,當(dāng)系統(tǒng)誤碼率越低時(shí),說明離散度越好,糾錯(cuò)的數(shù)量越多,從表中可以看出,隨機(jī)分組交織算法在2種湍流模型中誤碼率最低,與仿真結(jié)果趨勢相同,驗(yàn)證了隨機(jī)分組交織算法的離散性能最優(yōu),在不同環(huán)境下的湍流信道中表現(xiàn)最好。
由于DDR3自身為保證數(shù)據(jù)的正確性,存在周期性的自刷新操作,當(dāng)DDR3進(jìn)行自刷新操作時(shí),不能夠進(jìn)行正常的讀寫,在一定程度上影響了交織模塊的功能效率。為此加入了DDR3乒乓設(shè)計(jì)操作,使用2片DDR3進(jìn)行讀寫并行操作,在一定程度上能夠減少延時(shí),同時(shí)在交織模塊與前后模塊進(jìn)行交互時(shí)加入了異步時(shí)鐘FIFO進(jìn)行數(shù)據(jù)量的緩沖。
測試了不同交織深度的DDR3在進(jìn)行交織操作時(shí)的延時(shí),針對交織模塊進(jìn)行了不同數(shù)據(jù)量讀取速度的測試,在程序中加入計(jì)數(shù)器測試了交織整個(gè)過程的時(shí)鐘數(shù)量作為時(shí)延數(shù)據(jù),測試結(jié)果如表2所示。
表2 不同數(shù)據(jù)量下的DDR3讀寫速率測試表
從多次的測試數(shù)據(jù)可以看出,在DDR3讀出/寫入時(shí)加入乒乓可以在一定程度上抑制數(shù)據(jù)延時(shí)。由于DDR3產(chǎn)生的數(shù)據(jù)自刷新會(huì)產(chǎn)生一倍以上的數(shù)據(jù)時(shí)延,影響數(shù)據(jù)速率。通過采用異步時(shí)鐘FIFO可進(jìn)行跨時(shí)鐘域處理,在降低讀取速率的基礎(chǔ)上抑制DDR3的自刷新現(xiàn)象。
本文提出了一種數(shù)字域抗大氣湍流的算法,基于常用的交織方式并結(jié)合湍流特點(diǎn),提出了一種可應(yīng)用于不同湍流環(huán)境中的交織矩陣算法,仿真結(jié)果表明交織矩陣在不同湍流條件下具有更優(yōu)的錯(cuò)誤離散距離,算法能有效減少湍流效應(yīng)對于鏈路性能的影響。利用FPGA進(jìn)行演示驗(yàn)證,首次提出了使用DDR3的方式進(jìn)行抗湍流算法的硬件實(shí)現(xiàn),通過數(shù)據(jù)與Matlab模擬結(jié)果比對測試,進(jìn)行了算法的功能性驗(yàn)證,通過誤碼分布測試驗(yàn)證了分組隨機(jī)交織的離散性能最優(yōu),對算法延時(shí)特性進(jìn)行了測試和相應(yīng)的優(yōu)化,提出了DDR3乒乓結(jié)構(gòu)的設(shè)計(jì)算法,將系統(tǒng)自刷新延時(shí)比例從3.21降低至2.14,減少了系統(tǒng)延時(shí)。