0 引言
當(dāng)前社會(huì),隨著科技的飛速發(fā)展,通信系統(tǒng)逐漸向高效化、智能化過(guò)渡,通信技術(shù)的應(yīng)用也日趨廣泛。
通信系統(tǒng)可以分為模擬通信系統(tǒng)和數(shù)字通信系統(tǒng),模擬通信系統(tǒng)傳輸連續(xù)變化的信號(hào),而數(shù)字通信系統(tǒng)傳輸離散的數(shù)字信號(hào)。
數(shù)字信號(hào)抗干擾能力強(qiáng)、傳輸效率高且易于處理,因此其應(yīng)用的通信技術(shù)也在向數(shù)字系統(tǒng)靠攏。
差分相移鍵控(DPSK是一種常見(jiàn)的數(shù)字調(diào)制技術(shù),其通過(guò)改變相位來(lái)傳輸數(shù)字信號(hào)。
DPSK技術(shù)在光通信、衛(wèi)星通信和無(wú)線通信等領(lǐng)域有著重要的應(yīng)用。
1整體設(shè)計(jì)方案
由于系統(tǒng)基于FPGA平臺(tái)設(shè)計(jì),因此采用自頂向下的設(shè)計(jì)架構(gòu),通過(guò)對(duì)整體系統(tǒng)功能的需求分析確定輸入、輸出,并在總體功能的基礎(chǔ)上劃分子模塊,分別完成設(shè)計(jì)。
DPSK,中文叫差分相移鍵控,與最簡(jiǎn)單的BPSK調(diào)相系統(tǒng)很像,只不過(guò)DPSK把數(shù)字信號(hào)源做了一個(gè)差分處理,用載波的相位變化來(lái)承載信號(hào)信息[1]。
1.1 DPSK的信號(hào)生成及恢復(fù)
1.1.1 DPSK的信號(hào)生成
以二進(jìn)制相移鍵控為例,其信號(hào)的產(chǎn)生類似于一個(gè)雙極性脈沖序列和載波的混合。
edpsk(t)=s(t)cos(wct)
式中: edpsk(t) 為調(diào)制后的DPSK信號(hào); s(t) 為原始信號(hào);cos (wctΩ )為正弦波調(diào)制信號(hào),cos (wCt)= sin(wct)/wc, 其中 wC 為角頻率, t 為時(shí)間; P 為概率, 0lt; Plt;1 。
DPSK信號(hào)生成示意圖如圖1所示,原始信號(hào)s ρ(ρt) 通過(guò)碼元變換,從絕對(duì)碼變換為相對(duì)碼。變換后對(duì)碼元進(jìn)行載波調(diào)制,通過(guò)延時(shí)、相乘的方法得到DPSK信號(hào)。這樣就完成了簡(jiǎn)單的DPSK信號(hào)調(diào)制。
1.1.2 DPSK的信號(hào)恢復(fù)
DPSK的調(diào)制和解調(diào)可以看成是單獨(dú)的兩部分,但是在本設(shè)計(jì)中,為了驗(yàn)證通信算法的正確性,DPSK信號(hào)的解調(diào)是基于調(diào)制,當(dāng)恢復(fù)出來(lái)的信號(hào)與原始信號(hào)一致時(shí),即表示解調(diào)算法是正確的。DPSK信號(hào)的解調(diào)可以采用相干解調(diào)的方法,經(jīng)過(guò)乘法器、提取載波后,再由相對(duì)碼變換為絕對(duì)碼,最后通過(guò)低通濾波進(jìn)行碼元判決[2]。
解調(diào)過(guò)程示意圖如圖2所示,調(diào)制后的DPSK信號(hào)處理后得到信號(hào)a,通過(guò)不同相位的載波提取相應(yīng)的信號(hào)c,再通過(guò)低通濾波得到信號(hào)d,根據(jù)閾值大小恢復(fù)原始信號(hào)e。
1.2 DPSK的信號(hào)變化過(guò)程
了解了DPSK的調(diào)制解調(diào)過(guò)程后,基本可以得出這個(gè)過(guò)程的信號(hào)變化情況。整體信號(hào)變化過(guò)程如圖3所示。
基于圖3的信號(hào)變化情況,在不考慮噪聲和其他影響的情況下[3],首先將原始信號(hào)做差分運(yùn)算,將絕對(duì)碼轉(zhuǎn)換為相對(duì)碼,然后進(jìn)行載波調(diào)制,并對(duì)當(dāng)前調(diào)制信號(hào)進(jìn)行演示處理,再兩兩相乘,經(jīng)過(guò)低通濾波后,得到不規(guī)則的數(shù)字信號(hào),最后對(duì)這些數(shù)字信號(hào)進(jìn)行電平判決,恢復(fù)原始信號(hào)。這樣就完成了整個(gè)調(diào)制解調(diào)過(guò)程。
1.3 整體方案設(shè)計(jì)
根據(jù)系統(tǒng)功能需求,設(shè)計(jì)中首先需要生成原始信號(hào),作為輸出1;再將原始信號(hào)經(jīng)過(guò)編碼后生成DPSK信號(hào),作為輸出2;然后處理輸出2,完成解碼工作,將恢復(fù)出來(lái)的信號(hào)作為輸出3。目的是看到調(diào)制結(jié)果—輸出1、輸出2、輸出3并進(jìn)行對(duì)比,驗(yàn)證設(shè)計(jì)的正確性。
基于上述設(shè)計(jì)思路,可以在FPGA中對(duì)上述流程完成設(shè)計(jì),其實(shí)現(xiàn)框圖如圖4所示。
在圖4中,從“原始信號(hào)\"到“DPSK調(diào)制信號(hào)\"再到“恢復(fù)信號(hào)”,信號(hào)變化過(guò)程以圖3為標(biāo)準(zhǔn),在調(diào)制、解調(diào)時(shí)都需要進(jìn)行碼元變化,下面分別對(duì)調(diào)制和解調(diào)的實(shí)現(xiàn)進(jìn)行闡述。
1.3.1 調(diào)制部分
DPSK的調(diào)制:FPGA信號(hào)模型中輸入時(shí)鐘cIk和復(fù)位rst為系統(tǒng)提供主要時(shí)序,計(jì)數(shù)器用于對(duì)外部clk時(shí)鐘信號(hào)進(jìn)行分頻計(jì)數(shù)[4,產(chǎn)生相應(yīng)時(shí)鐘信號(hào),與此同時(shí),F(xiàn)PGA內(nèi)部需要生成兩路不同相位的正弦波信號(hào),即相位0和相位 π 。在開(kāi)始信號(hào)START觸發(fā)后,DPSK通過(guò)計(jì)數(shù)和二選一開(kāi)關(guān)電路選擇兩路載波信號(hào),完成相位的調(diào)制,從而生成DPSK調(diào)制信號(hào)[5]。
其生成相對(duì)碼的過(guò)程如圖5所示。圖中,原始信號(hào)即絕對(duì)碼,需要通過(guò)異或的方式變換成相對(duì)碼。將當(dāng)前得到的碼元存儲(chǔ)在寄存器中,其初始值為0,與原始信號(hào)進(jìn)行異或后得到新的相對(duì)碼,并存儲(chǔ)在寄存器中。
1.3.2 解調(diào)部分
DPSK的解調(diào):FPGA信號(hào)模型中輸入時(shí)鐘cIk和復(fù)位rst為系統(tǒng)提供主要時(shí)序來(lái)源,將DPSK信號(hào)作為信號(hào)源,參與解調(diào)部分,將DPSK信號(hào)通過(guò)濾波后與計(jì)數(shù)器輸出的0相載波和 π 相載波進(jìn)行對(duì)比、判決,從而實(shí)現(xiàn)DPSK信號(hào)解調(diào),生成原始碼元。
解調(diào)部分的信號(hào)流如圖6所示。DPSK調(diào)制信號(hào)需要在延遲一個(gè)處理周期后,與未處理的調(diào)制信號(hào)兩兩相乘,然后通過(guò)低通濾波器過(guò)濾掉高頻信號(hào),再通過(guò)閾值比較的方法判決出原始信號(hào)。值得注意的是,解調(diào)時(shí)的碼元轉(zhuǎn)換也是采用異或的方式將相對(duì)碼轉(zhuǎn)換成絕對(duì)碼。
2 DPSK調(diào)制解調(diào)的FPGA實(shí)現(xiàn)
根據(jù)整體方案,自頂向下劃分子模塊。從編碼、解碼過(guò)程將整體劃分為載波生成模塊、時(shí)鐘生成模塊、信號(hào)源生成模塊、差分處理模塊、數(shù)據(jù)選擇模塊、延時(shí)與相乘模塊、低通濾波器模塊等子模塊。
2.1 載波生成模塊
載波生成即正弦載波信號(hào)的生成,通常使用DDS(DirectDigitalSynthesizer,直接數(shù)字合成技術(shù))或者NCO(Numerically Controlled Oscillator,數(shù)字控制震蕩器)完成正弦信號(hào)的輸出。在課題設(shè)計(jì)中使用NCO實(shí)現(xiàn)正弦信號(hào)輸出,通過(guò)控制其時(shí)鐘、相位等參數(shù)完成符合設(shè)計(jì)要求的載波輸出。
參數(shù)設(shè)計(jì)部分,由于FPGA硬件板卡的主時(shí)鐘為50MHz, 這里將NCO的驅(qū)動(dòng)時(shí)鐘設(shè)計(jì)為clk 10m=10MHz 載波輸出頻率為fsin ,需要輸出2個(gè)不同相位的載波,其相位分別為 10,π, 。數(shù)據(jù)位寬精度為14bit。
2.2 時(shí)鐘生成模塊
時(shí)鐘模塊作為一般FPGA項(xiàng)目中必不可少的模塊,貫穿于整個(gè)FPGA設(shè)計(jì),涉及各個(gè)模塊的信號(hào)交互,大部分?jǐn)?shù)字信號(hào)都需要時(shí)鐘來(lái)控制,時(shí)鐘是時(shí)序電路設(shè)計(jì)中的觸發(fā)點(diǎn)。
參數(shù)設(shè)計(jì)要求:根據(jù)整體設(shè)計(jì)方案,需要生成NCO的控制時(shí)鐘 10MHz 和數(shù)據(jù)控制時(shí)鐘 100kHz ,整體控制時(shí)鐘采用外部輸入時(shí)鐘 50MHz ,通過(guò)PLL進(jìn)行時(shí)鐘鎖相,從而達(dá)到穩(wěn)頻的效果。
2.3 信號(hào)源生成模塊
對(duì)于信號(hào)源的生成,可以使用固定信號(hào)或者隨機(jī)信號(hào),而固定的信號(hào)源對(duì)于整體設(shè)計(jì)的正確性驗(yàn)證存在一定的局限性,因此使用隨機(jī)信號(hào)作為信號(hào)源。又由于碼元定時(shí)信號(hào)不準(zhǔn)確,信號(hào)源采用閉環(huán)碼元偽隨機(jī)序列PN碼。PN碼,也叫m序列,用來(lái)生成數(shù)字信號(hào)源。此模塊的參數(shù)設(shè)計(jì)要求如下:
數(shù)字信號(hào)源的控制速率:
PN碼為5階本原多項(xiàng)式 :f(x)=x5+x2+1
PN碼的寄存器初始值:reg_state =[1 0 1 1 0] 。
5階PN碼的原理如圖7所示,用圖7的移位寄存器方式便能源源不斷地生成周期為25的PN碼。
將此模塊輸出的PN碼作為原始信號(hào),傳遞到其他模塊完成DPSK的信號(hào)調(diào)制。
2.4 差分處理模塊
差分處理模塊的主要作用就是把原始信號(hào)的絕對(duì)碼變換為相對(duì)碼,相對(duì)碼又叫差分碼。這里的差分不是指把信號(hào)源取反的差分,而是指把信號(hào)源看作絕對(duì)碼,給定一個(gè)初始值然后輸出相對(duì)碼的過(guò)程。由于取了信號(hào)源的差分,所以在調(diào)制時(shí)相當(dāng)于用載波相位的變化來(lái)承載信號(hào),相干解調(diào)時(shí)只需把載波做個(gè)延時(shí),然后與未延時(shí)的載波相乘,就可以得到解調(diào)信號(hào)。所以,這個(gè)模塊輸出信號(hào)源的相對(duì)碼即可。
2.5 數(shù)據(jù)選擇模塊
數(shù)據(jù)選擇模塊類似一個(gè)模擬的數(shù)字開(kāi)關(guān),即當(dāng)數(shù)據(jù)源為1時(shí),輸出相位為0的正弦載波;當(dāng)數(shù)據(jù)源為0時(shí),輸出相位為π的正弦載波。在原理上等同于信號(hào)的相位調(diào)制部分。不考慮其他復(fù)雜的處理的話,輸出的信號(hào)就能夠發(fā)射并經(jīng)過(guò)信道,然后被接收處理。
代碼部分相對(duì)簡(jiǎn)單,可以簡(jiǎn)化表示為:
always @ (posedgeclk)if(difpn==1) )sine_mod1 lt;= sine1;else
2.6 延時(shí)與相乘模塊
延時(shí)與相乘模塊的設(shè)計(jì)采用的是先將差分碼延時(shí),再利用相位選擇法調(diào)制的方式。其中延時(shí)部分可以根據(jù)PN碼的生成時(shí)鐘來(lái)設(shè)計(jì),因?yàn)镻N碼的每一個(gè)碼都是在時(shí)鐘上升沿產(chǎn)生的,所以,在 100kHz 的分頻時(shí)鐘下降沿到達(dá)時(shí)將信號(hào)存儲(chǔ)起來(lái),置于寄存器中,在下一個(gè)分頻時(shí)鐘信號(hào)上升沿到達(dá)時(shí)輸出存儲(chǔ)的信號(hào),便得到了延時(shí)一個(gè)碼元長(zhǎng)度的PN碼。經(jīng)過(guò)數(shù)據(jù)選擇器后,相應(yīng)的輸出波形也延時(shí)相同長(zhǎng)度。
2.7 低通濾波器模塊
在進(jìn)行最終的信號(hào)判決恢復(fù)之前,由于信號(hào)中夾雜著部分噪聲、干擾,因此還需對(duì)解調(diào)信號(hào)進(jìn)行低通濾波。從圖3可以看出,經(jīng)過(guò)相乘模塊之后的信號(hào)從“上下上下\"這種正弦型振蕩變成了“上上下下\"這種類似全波整流的振蕩信號(hào),但這還不足以讓系統(tǒng)恢復(fù)原始的PN碼信號(hào)源,于是使用低通濾波器濾去高頻,使得信號(hào)更平滑,正區(qū)和負(fù)區(qū)分得更為明顯一些。
進(jìn)入QuartusII的EditCoefficientSet界面,選擇低通濾波器類型,目的是濾去解調(diào)輸出的高頻信號(hào),恢復(fù)基帶信號(hào);在濾波器采樣頻率方面,由于在正弦載波生成模塊使用的輸入時(shí)鐘信號(hào)為 10MHz ,于是對(duì)數(shù)據(jù)進(jìn)行采樣輸入濾波器中時(shí),也設(shè)置相同的頻率 10MHz ;選擇矩形窗口類型。在濾波器截止頻率設(shè)置時(shí),考慮基帶PN碼生成時(shí)鐘頻率為 100kHz ,所以濾波器截止頻率設(shè)置為 50kHz 。此時(shí),濾波后能正確地恢復(fù)原始信號(hào)。
3 系統(tǒng)仿真及運(yùn)行驗(yàn)證
在完成RTL級(jí)的FPGA設(shè)計(jì)后,添加仿真激勵(lì),進(jìn)行Quartus-ModelSim的聯(lián)合時(shí)序仿真,驗(yàn)證代碼在理論上的正確性。接下來(lái)下載到FPGA硬件板卡中,驗(yàn)證運(yùn)行結(jié)果是否符合設(shè)計(jì)要求,并通過(guò)長(zhǎng)時(shí)間的運(yùn)行結(jié)果來(lái)證明系統(tǒng)的穩(wěn)定性。
3.1 Quartus-ModelSim聯(lián)合仿真
編寫整體工程仿真的激勵(lì)文件,使用QuartusII和ModelSim聯(lián)合仿真。激勵(lì)文件中首先定義該模塊的時(shí)間單位和時(shí)間精度——timescale1ps/1ps。然后設(shè)置系統(tǒng)時(shí)鐘clk為 50MHz 。
其仿真波形如圖8所示。
圖8中,pn是生成的隨機(jī)原始信號(hào),sine1為相位0 的正弦載波信號(hào),sine2為相位=的正弦載波信號(hào), sine_mod是調(diào)制后的DPSK信號(hào),sine_recover是判決 恢復(fù)后的信號(hào)。
對(duì)比pn和sine_recover這兩個(gè)信號(hào),可以發(fā)現(xiàn)信號(hào)一致,只是存在一定的延遲。處理信號(hào) 100kHz 的時(shí)鐘信號(hào)為clk100k,從波形上可以看出,恢復(fù)的信號(hào)與原始信號(hào)剛好延時(shí)1個(gè) 100kHz 的周期,說(shuō)明解調(diào)過(guò)程完全符合設(shè)計(jì)要求。
3.2 FPGA驗(yàn)證程序下載及運(yùn)行
在功能仿真、時(shí)序仿真完成后,根據(jù)硬件分配輸入、輸出管腳。連接硬件FPGA開(kāi)發(fā)板和PC機(jī)。在
Quartus的signaltab(邏輯分析儀)中加入相關(guān)觀測(cè)信號(hào)。下載工程生成的sof文件,運(yùn)行程序,觀測(cè)相關(guān)信號(hào)。運(yùn)行波形圖如圖9所示,圖9中信號(hào)說(shuō)明與圖8一致。
觀測(cè)信號(hào)pn、sine_mod、sine_recover,其波形與仿真結(jié)果圖8基本一致,恢復(fù)出來(lái)的信號(hào)sine_recover與原始隨機(jī)信號(hào)pn一致,只是存在一定的延遲。經(jīng)過(guò)長(zhǎng)時(shí)間 (24h) 運(yùn)行后,系統(tǒng)采樣依舊正確,因此系統(tǒng)有著很好的穩(wěn)定性。
4結(jié)束語(yǔ)
FPGA作為一種高靈敏度的可編程邏輯器件,近些年來(lái)在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。此設(shè)計(jì)采用FPGA作為設(shè)計(jì)平臺(tái),在DPSK原理的基礎(chǔ)上,充分利用了FPGA的并行處理能力和可重構(gòu)特性。
DPSK調(diào)制通過(guò)差分編碼將絕對(duì)相位信息轉(zhuǎn)換為相對(duì)相位變化,避免了載波同步問(wèn)題。在FPGA中,可以通過(guò)查找表(LUT)實(shí)現(xiàn)相位映射,并結(jié)合數(shù)字振蕩器(NCO)生成調(diào)制信號(hào)。DPSK解調(diào)通常采用差分相干解調(diào)或延遲解調(diào)方法。FPGA中可以通過(guò)延遲線和乘法器實(shí)現(xiàn)相位差分的計(jì)算,并結(jié)合低通濾波器和判決電路恢復(fù)原始數(shù)據(jù)。
[2]張平平.DPSK解調(diào)系統(tǒng)的FPGA實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2015.
[3]陳衛(wèi)標(biāo),岳朝磊,孫建鋒,等.基于90度光學(xué)橋接器多速率兼容非標(biāo)準(zhǔn)DPSK接收裝置:CN201910034447.3[P].2025-02-23.
[4]王麗娟,程明,周學(xué)禮.2DPSK解調(diào)的兩種模型及SystemView仿真[J].河南科學(xué),2005,23(1):100-102
[5」袁泉,王振永.基于FPGA的2DPSK解調(diào)技術(shù)全數(shù)字實(shí)現(xiàn)[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),2016,33(2):267-271.