基于FPGA的IJF數(shù)字基帶編碼的實(shí)現(xiàn)
1 引言
20世紀(jì)80年代初,加拿大渥太華大學(xué)的費(fèi)赫教授(K.Feher)領(lǐng)導(dǎo)的科研小組發(fā)明了IJF-OQPSK調(diào)制技術(shù)。IJF-OQPSK中文名稱(chēng)叫做無(wú)碼間干擾和抖動(dòng)-交錯(cuò)正交相移鍵控。他是現(xiàn)代數(shù)字恒包絡(luò)調(diào)制技術(shù)中新型的調(diào)制技術(shù)之一。
進(jìn)行這種調(diào)制時(shí),首先要對(duì)數(shù)字基帶信號(hào)進(jìn)行IJF編碼,將其變換成一種無(wú)碼間干擾和抖動(dòng)、頻譜主瓣窄、具有快速滾降的基帶波形,然后再用OQPSK調(diào)制。這樣,調(diào)制后的基帶信號(hào)就具有了以下特點(diǎn):以調(diào)波的相位平滑連續(xù),而且每個(gè)號(hào)碼內(nèi)的相位變化不會(huì)超過(guò)π/2,以調(diào)波的包絡(luò)近于恒包絡(luò),頻譜主瓣窄,高頻滾降快,帶外能量低。
2 IJF編碼原理
在數(shù)字傳輸系統(tǒng)中,與誤碼率有直接關(guān)系的是接收信號(hào)在取樣點(diǎn)上的值與理想值的偏差。若排除噪聲的影響,則誤差主要來(lái)源于傳輸過(guò)程中的碼間干擾和取樣點(diǎn)的定時(shí)抖動(dòng)。在實(shí)際工程系統(tǒng)中,用奈奎斯特脈沖代表隨機(jī)二進(jìn)制數(shù)據(jù),他的主瓣占2b寬度。由于奈奎斯特脈沖拖尾的存在,使得合成波形的過(guò)零點(diǎn)向左或右偏移,產(chǎn)生定時(shí)抖動(dòng)。另外,拖尾還會(huì)造成波形的幅度起伏,使誤碼率提高。IJF編碼的特點(diǎn)是采用一種新的基帶成形脈沖--時(shí)限雙碼元間隔脈沖,因其不存在振蕩尾巴,從而消除了碼間干擾和定時(shí)抖動(dòng)。
2.1 IJF編碼波形--時(shí)限雙碼元間隔升余弦脈沖
雙碼元間隔升余弦脈沖,當(dāng)滾降系數(shù)a=1時(shí),其表達(dá)式為:
其他特性如下:
- 脈沖邊緣處,即t=±Ts,其值為零。
- t=±Ts/2處,脈沖幅度為峰值的一半;
- 在t=0處,為脈沖峰值。
如果采用雙碼元間隔升余弦脈沖代表隨機(jī)二進(jìn)制序列中的“1”和“0”,且當(dāng)前脈沖總是在前一個(gè)脈沖的中點(diǎn)開(kāi)始,可以證明由此得到的代表隨機(jī)二進(jìn)制序列的波形,其頻譜特性和單個(gè)雙碼元間隔升余弦脈沖的特性一樣。
分析雙碼元間隔升余弦脈沖可知,S(t)為一偶函數(shù),且滿(mǎn)足如下2個(gè)條件:
以上條件保證了由雙碼元間隔升余弦脈沖同步疊加厚的隨機(jī)波形為一連續(xù)信號(hào),即S(t)和S(t-Ts)之和,在一個(gè)碼元間隔內(nèi)任何時(shí)刻均為1;而他們之差為一偶函數(shù)。由于雙碼元間隔脈沖在t≥±Ts時(shí),其值為零,因而不存在碼間干擾;t=Ts/2時(shí),幅值為峰值的一半,表示數(shù)字1和0的正負(fù)脈沖同步疊加后,合成波在Ts/2處總為零。因此過(guò)零點(diǎn)固定,也不會(huì)產(chǎn)生定時(shí)抖動(dòng)。
2.2 IJF非線性濾波器編碼方法
實(shí)現(xiàn)IJF編碼方法有脈沖疊加法,橫向?yàn)V波器法和非線性濾波器法等幾種。非線性濾波器法實(shí)質(zhì)上是一種分段合成IJF波形的方法。
單碼元間隔偶脈沖和奇脈沖,根據(jù)式(2)可導(dǎo)出:
式(6),(7)表達(dá)了無(wú)符號(hào)間抖動(dòng)和碼間干擾的條件。根據(jù)隨機(jī)二進(jìn)制數(shù)據(jù)相鄰位(bit)的變化,利用式(3),(4)定義的單間隔脈沖,可導(dǎo)出構(gòu)成IJF編碼的4個(gè)基本波形函數(shù)S1-S4:
式中xn為當(dāng)前比特,xn-1為前一比特。
設(shè)輸入的數(shù)據(jù)(NRZ)信號(hào)為:
他是隨輸入數(shù)據(jù)變化的隨機(jī)序列,其波形可視為4個(gè)基本波形的組合,即:
由此可得出非線性轉(zhuǎn)換濾波器IJF編碼信號(hào)形成的方案,如圖1所示。
3 IJF編碼的FPGA實(shí)現(xiàn)
首先給出一個(gè)IJF-OQPSK調(diào)制器的組成原理框圖如圖2所示。其中的串并變換、延時(shí)、差分編碼和IJF編碼采用XILINX公司的FPGA器件SPARTANII XC2S200來(lái)實(shí)現(xiàn)。I,Q兩支路經(jīng)IJF編碼成形的數(shù)據(jù)通過(guò)數(shù)/模轉(zhuǎn)換器AD9765轉(zhuǎn)換為模擬幅值送入正交調(diào)制器AD6122后得到70MHz中頻的IJF-OQPSK調(diào)制信號(hào)。
有上述的分析可以看出,IJF-OQPSK調(diào)制的關(guān)鍵在于IJF編碼。下面重點(diǎn)討論IJF編碼的FPGA實(shí)現(xiàn)方法。
由式(9)和圖1可看出,IJF編碼的過(guò)程就是根據(jù)前后碼元的組合關(guān)系去波形系數(shù)表中查表,以一定的采樣時(shí)鐘取得相應(yīng)的波形系數(shù)從而實(shí)現(xiàn)波形成形。因此首先需要建立波形系數(shù)表。假設(shè)原始輸入數(shù)據(jù)信息速率為2Mb/s,經(jīng)過(guò)串并轉(zhuǎn)換后I,Q支路碼速率為1Mb/s,若以50MHz的時(shí)鐘采樣,則每個(gè)碼元需要50個(gè)波形采樣數(shù)據(jù),理論上有4種基本波形,需要存儲(chǔ)200個(gè)波形數(shù)據(jù),但S1(t)=+1,S2(t)=-1是 固定值,不需要存儲(chǔ)單元,只需對(duì)進(jìn)行存儲(chǔ)即可,共需要100個(gè)存儲(chǔ)單元,由于FPGA后端的數(shù)/模轉(zhuǎn)換器AD9765為12位,因此存儲(chǔ)單元中的地址線寬度為7位,數(shù)據(jù)線寬度為12位。這里采用XILINX的COREGenerator提供的IP核Single Prot Block Memory來(lái)構(gòu)建ROM用于存儲(chǔ)波形系數(shù)。此IP核的一些主要特點(diǎn)是:
- 支持Virtex,VirtexII,SpartanII,SpartanIIE等系列的FPGA;
- 可以被配置為ROM或者單口RAM;
- 支持的數(shù)據(jù)寬度是1-256b;
- 數(shù)據(jù)深度支持2-1M個(gè)數(shù)據(jù)。
關(guān)于IP核的生成與使用方法可以參考文獻(xiàn)[1]。生成的ROM還需向其中添加coe文件,即波形系數(shù)表,其文件格式如下:
其中關(guān)鍵字MEMORY_INITIALIZATION_RADIX說(shuō)明了ROM數(shù)據(jù)的進(jìn)制(2,10,16可選)。GLOBAL_IN1T_VALUE定義了全局初始值。MEMORY_INITALIZATION_VECTOR即定義了IJE編碼的波形系數(shù)表。其中前50個(gè)系數(shù)對(duì)應(yīng)著,后50個(gè)系數(shù)對(duì)應(yīng)著。最終生成的波形系數(shù)ROM如圖3所示。此方法生成的ROM將使用FPGA提供的BLOCK RAM,而不會(huì)占用distribute RAM,從而節(jié)省了寶貴的可編程資源。
4 結(jié)語(yǔ)
圖4顯示了IJF-OQPSP與OQPSK基帶編碼和調(diào)制信號(hào)頻譜的比較。從圖4可以看出,采用時(shí)限雙碼元間隔升余弦脈沖波形進(jìn)行的IJF編碼,在時(shí)域具有光滑連續(xù)的優(yōu)點(diǎn),而且非常適宜于數(shù)字實(shí)現(xiàn)。已經(jīng)證明雙碼元間隔升余弦脈沖波形是時(shí)域分布長(zhǎng)度有限的最佳波形[2],可以做到理論上的無(wú)碼間干擾和相位抖動(dòng)。IJF編碼后使得信號(hào)的相位路徑變得連續(xù)、平緩,從而在很大程度上改善了信號(hào)的譜性能。由圖4可以看到IJF-OQPSK調(diào)制信號(hào)的功率譜性能明顯好于QPSK的功率譜,不僅衰減速度快,而且主瓣寬度與QPSK保持一樣的情況下旁瓣寬度壓縮為QPSK信號(hào)旁瓣寬的一半。通過(guò)對(duì)其功率譜的分析比較可以看出,IJF-OQPSK調(diào)制體制在頻譜資源愈顯緊張的形勢(shì)下,具有較大的應(yīng)用潛力。
本方案采用FPGA和集成器件來(lái)實(shí)現(xiàn)IJF編碼和IJF-OQPSK調(diào)制具有高度集成化、配置靈活、性能穩(wěn)定、易于實(shí)現(xiàn)的特點(diǎn),由于IJF編碼有很多性能更好的變形,只需在此基礎(chǔ)修改ROM中的波形系數(shù)即可進(jìn)一步實(shí)現(xiàn)多種IJF編碼方案。