基于FPGA的IJF數字基帶編碼的實現
1 引言
20世紀80年代初,加拿大渥太華大學的費赫教授(k.feher)領導的科研小組發明了ijf-oqpsk調制技術。ijf-oqpsk中文名稱叫做無碼間干擾和抖動-交錯正交相移鍵控。他是現代數字恒包絡調制技術中新型的調制技術之一。
進行這種調制時,首先要對數字基帶信號進行ijf編碼,將其變換成一種無碼間干擾和抖動、頻譜主瓣窄、具有快速滾降的基帶波形,然后再用oqpsk調制。這樣,調制后的基帶信號就具有了以下特點:以調波的相位平滑連續,而且每個號碼內的相位變化不會超過π/2,以調波的包絡近于恒包絡,頻譜主瓣窄,高頻滾降快,帶外能量低。
2 ijf編碼原理
在數字傳輸系統中,與誤碼率有直接關系的是接收信號在取樣點上的值與理想值的偏差。若排除噪聲的影響,則誤差主要來源于傳輸過程中的碼間干擾和取樣點的定時抖動。在實際工程系統中,用奈奎斯特脈沖代表隨機二進制數據,他的主瓣占2b寬度。由于奈奎斯特脈沖拖尾的存在,使得合成波形的過零點向左或右偏移,產生定時抖動。另外,拖尾還會造成波形的幅度起伏,使誤碼率提高。ijf編碼的特點是采用一種新的基帶成形脈沖--時限雙碼元間隔脈沖,因其不存在振蕩尾巴,從而消除了碼間干擾和定時抖動。
2.1 ijf編碼波形--時限雙碼元間隔升余弦脈沖
雙碼元間隔升余弦脈沖,當滾降系數a=1時,其表達式為:

其他特性如下:
(1)脈沖邊緣處,即t=±ts,其值為零。
(2)t=±ts/2處,脈沖幅度為峰值的一半;
(3)在t=0處,為脈沖峰值。
如果采用雙碼元間隔升余弦脈沖代表隨機二進制序列中的“1”和“0”,且當前脈沖總是在前一個脈沖的中點開始,可以證明由此得到的代表隨機二進制序列的波形,其頻譜特性和單個雙碼元間隔升余弦脈沖的特性一樣。
分析雙碼元間隔升余弦脈沖可知,s(t)為一偶函數,且滿足如下2個條件:

以上條件保證了由雙碼元間隔升余弦脈沖同步疊加厚的隨機波形為一連續信號,即s(t)和s(t-ts)之和,在一個碼元間隔內任何時刻均為1;而他們之差為一偶函數。由于雙碼元間隔脈沖在t≥±ts時,其值為零,因而不存在碼間干擾;t=ts/2時,幅值為峰值的一半,表示數字1和0的正負脈沖同步疊加后,合成波在ts/2處總為零。因此過零點固定,也不會產生定時抖動。
2.2 ijf非線性濾波器編碼方法
實現ijf編碼方法有脈沖疊加法,橫向濾波器法和非線性濾波器法等幾種。非線性濾波器法實質上是一種分段合成ijf波形的方法。
單碼元間隔偶脈沖和奇脈沖,根據式(2)可導出:

式(6),(7)表達了無符號間抖動和碼間干擾的條件。根據隨機二進制數據相鄰位(bit)的變化,利用式(3),(4)定義的單間隔脈沖,可導出構成ijf編碼的4個基本波形函數s1-s4:

式中xn為當前比特,xn-1為前一比特。
設輸入的數據(nrz)信號為:

他是隨輸入數據變化的隨機序列,其波形可視為4個基本波形的組合,即:

由此可得出非線性轉換濾波器ijf編碼信號形成的方案,如圖1所示。

3 ijf編碼的fpga實現
首先給出一個ijf-oqpsk調制器的組成原理框圖如圖2所示。其中的串并變換、延時、差分編碼和ijf編碼采用xilinx公司的fpga器件spartanii xc2s200來實現。i,q兩支路經ijf編碼成形的數據通過數/模轉換器ad9765轉換為模擬幅值送入正交調制器ad6122后得到70mhz中頻的ijf-oqpsk調制信號。

有上述的分析可以看出,ijf-oqpsk調制的關鍵在于ijf編碼。下面重點討論ijf編碼的fpga實現方法。
由式(9)和圖1可看出,ijf編碼的過程就是根據前后碼元的組合關系去波形系數表中查表,以一定的采樣時鐘取得相應的波形系數從而實現波形成形。因此首先需要建立波形系數表。假設原始輸入數據信息速率為2mb/s,經過串并轉換后i,q支路碼速率為1mb/s,若以50mhz的時鐘采樣,則每個碼元需要50個波形采樣數據,理論上有4種基本波形,需要存儲200個波形數據,但s1(t)=+1,s2(t)=-1是固定值,不需要存儲單元,只需對進行存儲即可,共需要100個存儲單元,由于fpga后端的數/模轉換器ad9765為12位,因此存儲單元中的地址線寬度為7位,數據線寬度為12位。這里采用xilinx的coregenerator提供的ip核single
prot block memory來構建rom用于存儲波形系數。此ip核的一些主要特點是:
(1)支持virtex,virtexii,spartanii,spartaniie等系列的fpga;
(2)可以被配置為rom或者單口ram;
(3)支持的數據寬度是1-256b;
(4)數據深度支持2-1m個數據。
關于ip核的生成與使用方法可以參考文獻[1]。生成的rom還需向其中添加coe文件,即波形系數表,其文件格式如下:

其中關鍵字memory_initialization_radix說明了rom數據的進制(2,10,16可選)。global_in1t_value定義了全局初始值。memory_initalization_vector即定義了ije編碼的波形系數表。其中前50個系數對應著,后50個系數對應著
。最終生成的波形系數rom如圖3所示。此方法生成的rom將使用fpga提供的block
ram,而不會占用distribute ram,從而節省了寶貴的可編程資源。

4 結語
圖4顯示了ijf-oqpsp與oqpsk基帶編碼和調制信號頻譜的比較。從圖4可以看出,采用時限雙碼元間隔升余弦脈沖波形進行的ijf編碼,在時域具有光滑連續的優點,而且非常適宜于數字實現。已經證明雙碼元間隔升余弦脈沖波形是時域分布長度有限的最佳波形[2],可以做到理論上的無碼間干擾和相位抖動。ijf編碼后使得信號的相位路徑變得連續、平緩,從而在很大程度上改善了信號的譜性能。由圖4可以看到ijf-oqpsk調制信號的功率譜性能明顯好于qpsk的功率譜,不僅衰減速度快,而且主瓣寬度與qpsk保持一樣的情況下旁瓣寬度壓縮為qpsk信號旁瓣寬的一半。通過對其功率譜的分析比較可以看出,ijf-oqpsk調制體制在頻譜資源愈顯緊張的形勢下,具有較大的應用潛力。

本方案采用fpga和集成器件來實現ijf編碼和ijf-oqpsk調制具有高度集成化、配置靈活、性能穩定、易于實現的特點,由于ijf編碼有很多性能更好的變形,只需在此基礎修改rom中的波形系數即可進一步實現多種ijf編碼方案。
評論