朱玉穎, 楊小華, 姚遠(yuǎn)程
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
QPSK調(diào)制信號[1]是抑制載波的信號,無法用常規(guī)的鎖相環(huán)或窄帶濾波器直接提取參考載波,但它又不同于一些連續(xù)相位調(diào)制信號,其載波相位變化只能取有限的幾個(gè)離散值,這就隱含了參考載波的相位信息。所以,可以通過非線性處理,消除信號中的調(diào)制信息,產(chǎn)生與原載波相位有一定關(guān)系的分量,然后再提純該信號,恢復(fù)已被抑制的載波信號,進(jìn)而完成信號的相干解調(diào)[2]。QPSK調(diào)制由于具有較好的頻帶利用率[3],在現(xiàn)代衛(wèi)星通信系統(tǒng)中得到了廣泛應(yīng)用。
數(shù)控振蕩器一般由相位寄存器、相位累加器和正弦波查找表等部分組成。正弦波樣本可以用實(shí)時(shí)計(jì)算的方法產(chǎn)生,。通過設(shè)定NCO的wordφ的大小,來產(chǎn)生希望的頻率的正弦波;反之,wordφ的大小是根據(jù)已知正弦波的頻率計(jì)算得到的。例如,如果NCO的相位累加器的時(shí)鐘頻率為 100 MHz,相位累加器的位數(shù)為 16位,但這只適用于信號采樣頻率很低的情況。在軟件無線電超高速信號采樣頻率的情況下,NCO[4]實(shí)時(shí)計(jì)算的方法比較困難。此時(shí),用NCO產(chǎn)生正弦波樣本最有效、最簡便的方法就是查找表法。其工作原理是,通過相位累加器產(chǎn)生的地址信息,輸出與當(dāng)前時(shí)刻的相位值所對應(yīng)的正弦值。此時(shí)NCO輸出的正弦波的頻率為φw or d為8 000 H,則NCO輸出的正弦波頻率為100MHz= 5 0 M Hz 。借助MATLAB[5]生成ROM中定點(diǎn)正、余弦波形數(shù)值,形成文件并加載到ROM中。利用MATLAB計(jì)算出正、余弦波形的浮點(diǎn)值[5],并量化為16比特的定點(diǎn)數(shù)值。
FIR[6]濾波器的設(shè)計(jì)采用窗函數(shù)設(shè)計(jì)方法,這種方法也稱傅立葉級數(shù)法,一般是先給出所要求的理想濾波器頻率響應(yīng)H d (ejw),要求設(shè)計(jì)一個(gè) FIR濾波器頻率響應(yīng)但是設(shè)計(jì)是在時(shí)域進(jìn)行的,因而先由 H d (ejw)的傅立葉反變換導(dǎo)出 H d ( n):
在 MATLAB中提供了相應(yīng)的函數(shù)如fir1(N,Wn,‘窗函數(shù)代號’)和fir2(N,F(xiàn),M,‘窗函數(shù)代號’)來產(chǎn)生各種基于窗函數(shù)的FIR濾波器?,F(xiàn)根據(jù)設(shè)計(jì)的實(shí)際需求,采用窗函數(shù)設(shè)計(jì)方法設(shè)計(jì)30階低通濾波器。然后通過Matlab仿真得到系數(shù),再采用Xilinx公司提供的IP核進(jìn)行實(shí)現(xiàn)。
fbe=[0 0.25 0.45 1];
damps=[1 1 0 0];
h=fir2(30,fbe,damps);
freqz(h)。
QPSK調(diào)制解調(diào)[7]原理的Simulink[8]仿真模型如圖1所示。
圖1 QPSK調(diào)制解調(diào)的Simulink仿真
在圖1中,左側(cè)為調(diào)制器部分,包括QPSK碼元產(chǎn)生模塊(QPSK Source)、串并轉(zhuǎn)換模塊(ser2par)、調(diào)制器模塊(modulator)和加法器。右側(cè)為解調(diào)器部分,包含本地載波(Local Carrier)、乘法器(Product)、低通濾波器(Lowpass Filter),抽樣判決器,并串變換模塊。示波器模塊(Scope)用于觀察各路波形。圖1中的QPSK、串并轉(zhuǎn)換模塊和并串轉(zhuǎn)換模塊為組合后的子系統(tǒng),如圖2和圖3所示。
圖2 串并轉(zhuǎn)換模塊
圖3 并串轉(zhuǎn)換模塊
原始碼元由“貝努利二進(jìn)制隨機(jī)數(shù)發(fā)生器”(Bernoulli Binary Generator)產(chǎn)生,對它的輸出作簡單調(diào)整可得到-1或1的偽隨機(jī)碼輸出,即是QPSK調(diào)制的信號源。而兩路輸入由正弦波模塊(Sine Wave)的輸出經(jīng)分路器(Demux)產(chǎn)生,設(shè)置 a路調(diào)制器中的正弦波模塊屬性中的相位(Phase)為[0,π],可得到初相位分別為0和π的正弦向量波形,設(shè)置b路調(diào)制器中的正弦波模塊屬性中的相位(Phase)為[3π2,π2],可得到初相位分別為3π2和π2的正弦向量波形。
仿真中,QPSK的調(diào)制采用調(diào)相法[9]。即將QPSK的雙比特碼元(a,b)轉(zhuǎn)換為I、Q兩路碼元,對其分別作BPSK調(diào)制,再將兩路調(diào)制波形相加得到 QPSK信號,其相位編碼邏輯關(guān)系如表1所示。
表1 QPSK信號碼元與相位邏輯關(guān)系
QPSK信號的調(diào)制器仿真波形如圖4所示。從上至下,依次為:①輸入信號碼元;②經(jīng)串并轉(zhuǎn)換后的a路信號碼元;③經(jīng)串并轉(zhuǎn)換后的b路信號碼元;④I路調(diào)制波形;⑤Q路調(diào)制波形;⑥合成后的QPSK信號。觀察信號2和信號3可知輸入信號經(jīng)串并轉(zhuǎn)換后,有一個(gè)周期的延遲,且信號周期變?yōu)閮杀?。信?和信號5中均包含兩種相位的調(diào)制波形,合成后的信號6包含了四種相位,與表1中的關(guān)系相符。
圖4 QPSK調(diào)制的仿真波形
QPSK信號的解調(diào)器仿真波形如圖5所示。從上至下,依次為:①Q(mào)PSK調(diào)制信號;②I路載波;③Q路載波;④I路乘法器輸出;⑤Q路乘法器輸出;⑥I路通過低通濾波后的波形;⑦Q路經(jīng)過低通濾波后的波形。
輸出判決模塊的主要作用是根據(jù)濾波后的數(shù)據(jù),依據(jù)算法的判決規(guī)則,得出基帶的數(shù)據(jù)碼流。判決規(guī)則是,如果濾波后的數(shù)據(jù)為正數(shù),則基帶數(shù)據(jù)判決為 0,如果濾波后的數(shù)據(jù)為負(fù)數(shù),則基帶數(shù)據(jù)判決為 1,如果濾波后的數(shù)據(jù)為零,則判決成與前一個(gè)判決值相反的數(shù)據(jù),即前一個(gè)為 0,則為1,前一個(gè)為1,則為0,這樣為了保證基帶碼流中不會(huì)出現(xiàn)長的連0或者長的連1。用Verilog語言編寫代碼實(shí)現(xiàn)該部分,代碼的實(shí)現(xiàn)方法是:當(dāng)進(jìn)入一個(gè)有符號的數(shù)據(jù),由于有符號數(shù)的最高位是符號位,因此判斷最高位的值,當(dāng)為“1”時(shí),則輸出“0”;當(dāng)為“0”時(shí),則輸出“1”。
圖5 QPSK解調(diào)的仿真波形
文章介紹了基于軟件無線電的全數(shù)字QPSK解調(diào)方案,通過下載試驗(yàn),得到了具有良好實(shí)時(shí)性和可靠性的解調(diào)模塊。設(shè)計(jì)思路及實(shí)現(xiàn)流程,也可以應(yīng)用于包括MSK、QAM等常用的解調(diào)器。
并串變換模塊采用多路器電路原理,由時(shí)鐘來控制輸入的兩路信號的輸出情況。本文當(dāng)時(shí)鐘為高電平時(shí),輸出第一路為低電平時(shí),輸出第二路。因此,總的輸出信號的頻率是輸入信號頻率的2倍。用Verilog語言編寫代碼,通過輸入兩組數(shù)據(jù)“11011000111”和“010011000111”進(jìn)行測試,理論輸出應(yīng)為“101100101101……”。測試結(jié)果如圖6所示。
圖6 并串變換波形輸出結(jié)果示意
[1] LINN Y.A Self-normalizing Symbol Synchronization Lock Detector for QPSK and BPSK[J].IEEE Trans-actions on Wireless Communications,2006,5(02):347-353.
[2] 蘇偉.基于軟件無線電的BPSK/QPSK解調(diào)器的研究[D].北京:北京化工大學(xué),2008.
[3] VIJAY K G,YIH C W.Modulation and Demodulation Technologies[J].The Electrical Engineering Handbook,2005(03):971-981.
[4] 安效君,王力男.NCO的數(shù)字化實(shí)現(xiàn)及應(yīng)用[J].無線電通信技術(shù),2004,30(02):51-52.
[5] 候周國,錢盛友.基于Matlab編程的QPSK的仿真[J].廣西師范大學(xué)學(xué)報(bào):自然科學(xué)版,2005(03):21-24.
[6] 葉仁澤.基于 MATLAB的 FIR數(shù)字濾波器的設(shè)計(jì)[J].科技資訊,2008(29):34-36.
[7] 韓露,徐釗,陳婕,等.一種過零脈寬檢測 QPSK全數(shù)字解調(diào)器及其FPGA的實(shí)現(xiàn)[J].通信技術(shù),2008,41(08):4-6.
[8] 李媛媛,徐巖,王靖岳.對 MATLAB實(shí)現(xiàn)數(shù)字信號的 QPSK的頻譜分析[J].通信技術(shù),2008,41(01):41-42.
[9] LIM D.A Modified Gardner Detector for Symbol Timing Recovery of M-PSK Singals[J].IEEE Transacti-on on Communications52,2004(10):1643-1647.