秦 偉
(山西省新聞出版廣電局無線管理中心228臺(tái),山西 太原 030001)
QPSK調(diào)制解調(diào)器的C++仿真實(shí)現(xiàn)與應(yīng)用
秦 偉
(山西省新聞出版廣電局無線管理中心228臺(tái),山西 太原 030001)
以實(shí)際工程應(yīng)用為出發(fā)點(diǎn),根據(jù)QPSK調(diào)制解調(diào)原理,用C++在vc6.0的編譯環(huán)境下,仿真實(shí)現(xiàn)了數(shù)字微波與衛(wèi)星通信系統(tǒng)中使用的QPSK調(diào)制解調(diào)器,最終的仿真結(jié)果較好地符合了理論要求。
數(shù)字微波與衛(wèi)星通信;QPSK;仿真;調(diào)制解調(diào)器
當(dāng)下,隨著數(shù)字技術(shù)的迅猛發(fā)展,數(shù)字器件的速度、頻率及存儲(chǔ)容量等物理特性都大幅提高,數(shù)字信號(hào)處理在通信系統(tǒng)中的地位變得越來越重要。四相相移鍵控(QPSK)調(diào)制技術(shù)因其兼顧有效性和可靠性,廣泛地應(yīng)用于數(shù)字微波通信、數(shù)字衛(wèi)星通信、寬帶接入、移動(dòng)通信和有線電視傳輸中。
尤其在數(shù)字微波與衛(wèi)星通信系統(tǒng)中,由于通信信道的非線性和AM/PM效應(yīng),要求調(diào)制后的波形盡量具有等幅包絡(luò)的結(jié)構(gòu)特點(diǎn);并且選擇盡可能少的占用射頻帶寬,而又能高效利用有限頻帶資源且抗衰落和抗干擾性能強(qiáng)的調(diào)制技術(shù);還要使調(diào)制信號(hào)的旁瓣盡可能的小,以減少相鄰?fù)ǖ乐g的干擾。因此,在中容量數(shù)字微波和衛(wèi)星通信系統(tǒng)中大多采用QPSK的調(diào)制方式[1]。
本文以實(shí)際應(yīng)用為出發(fā)點(diǎn),根據(jù)QPSK調(diào)制解調(diào)原理,用C++在VC6.0的編譯環(huán)境下,仿真實(shí)現(xiàn)了數(shù)字微波與衛(wèi)星通信系統(tǒng)中使用的QPSK調(diào)制解調(diào)器,最終的仿真結(jié)果較好地符合了理論要求。
在現(xiàn)代數(shù)字微波和衛(wèi)星通信中,為了提高信息的傳輸速率,往往利用載波的一種相位去攜帶一組二進(jìn)制信息碼。相位鍵控(PSK)調(diào)制是一種角度調(diào)制,通過保持載波的幅度不變,改變載波的相位來實(shí)現(xiàn),除了要求輸入的信號(hào)是數(shù)字信號(hào)且輸出的相位受到限制以外,與傳統(tǒng)的相位調(diào)制一樣。
四相調(diào)制既可以表示為QPSK,也可以表示為4PSK,它是用載波的四種不同相位與兩位二進(jìn)制信息碼的組合(00,01,11,10)對(duì)應(yīng)來表征傳送的數(shù)據(jù)信息。在QPSK調(diào)制中,首先對(duì)輸入的二進(jìn)制數(shù)據(jù)按兩位數(shù)字編成一組,構(gòu)成雙比特碼元。其組合共有22種,所以可用M=22不同相位或相位差來表示。產(chǎn)生QPSK信號(hào)的電路很多,常見的有正交調(diào)制法和相位選擇法,其中正交調(diào)制法應(yīng)用的最為普遍[2]。正交調(diào)制法產(chǎn)生QPSK信號(hào)的原理圖如圖1(a)所示。
解調(diào)是調(diào)制的逆過程,解調(diào)過程取決于所采用的調(diào)制方式。但是對(duì)于一種給定類型的已調(diào)信號(hào),解調(diào)方法并不是唯一的。幾乎所有的解調(diào)器都可以分成兩類,相干解調(diào)和非相干解調(diào)。相干解調(diào)是利用本地的載波信號(hào)進(jìn)行解調(diào),而非相干解調(diào)則不需要本地載波信號(hào)。在數(shù)字通信中,解調(diào)和檢測經(jīng)??梢曰ビ?,其中解調(diào)側(cè)重于波形的恢復(fù),檢測側(cè)重于碼元的判決。在本文中QPSK信號(hào)可用兩路相干解調(diào)器分別進(jìn)行解調(diào),如圖1(b)所示,上、下兩個(gè)支路分別是2PSK信號(hào)解調(diào)器,用來檢測雙比特碼元中的A和B碼元,然后通過并/串變換電路還原為串行數(shù)據(jù)信息。
圖1 QPSK信號(hào)的產(chǎn)生與解調(diào)原理圖
2.1 QPSK調(diào)制解調(diào)器仿真模型
在本文C++仿真實(shí)現(xiàn)的是在不同信噪比情況下,QPSK調(diào)制解調(diào)的性能,具體參數(shù)設(shè)置如表1所示。QPSK調(diào)制解調(diào)器的仿真模型如圖2所示,首先使用一個(gè)產(chǎn)生范圍在(0,1)的均勻隨機(jī)數(shù)的隨機(jī)數(shù)發(fā)生器,產(chǎn)生一個(gè)等概率出現(xiàn)的四進(jìn)制符號(hào)序列(信息比特對(duì)):00,01,11,10。再將該序列映射到對(duì)應(yīng)的信號(hào)向量,映射關(guān)系如表2所示。本次仿真采用B方式映射。
圖2 QPSK調(diào)制解調(diào)器仿真模型
數(shù)字碼元11100001相位θmAππ/20-π/2Bπ/4-π/4-3π/43π/4
表2 QPSK信號(hào)相位編碼邏輯關(guān)系表
利用高斯隨機(jī)數(shù)發(fā)生器產(chǎn)生均值都為0,方差都是σ2的加性噪聲分量nc和ns。檢測器將觀測到隨機(jī)向量r=si+n,同時(shí)計(jì)算r在四種可能信號(hào){sm}上的投影。判決結(jié)果就是對(duì)應(yīng)于最大投影的信號(hào)向量。將判決結(jié)果與發(fā)送信號(hào)向量進(jìn)行比較,最后用差錯(cuò)計(jì)數(shù)器對(duì)檢測器產(chǎn)生的符號(hào)差錯(cuò)進(jìn)行計(jì)數(shù)[3]。
2.2 均勻隨機(jī)數(shù)發(fā)生器和高斯隨機(jī)數(shù)發(fā)生器的C++程序?qū)崿F(xiàn)
仿真時(shí),關(guān)鍵是要產(chǎn)生隨機(jī)變量r,即隨機(jī)數(shù)。它是信號(hào)相關(guān)器的輸出采樣信號(hào)和檢測器的輸入信號(hào)。
用C++程序?qū)崿F(xiàn)均勻隨機(jī)數(shù)發(fā)生器時(shí),首先利用乘同余算法及Schrage算法得到隨機(jī)數(shù)r,且r~U[0,1],這樣產(chǎn)生了滿足要求的均勻隨機(jī)數(shù)發(fā)生器[4]。需要注意的是rand()產(chǎn)生的隨機(jī)數(shù)序列都是一樣的,為了避免上述情況的發(fā)生我們通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))來產(chǎn)生種子,如果仍然覺得時(shí)間間隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某個(gè)合適的整數(shù)。例如,srand((unsigned)time(NULL)*10)。
另外,關(guān)于time_t time(0):time_t被定義為長整型,它返回從1970年1月1日零時(shí)零分零秒到目前為止所經(jīng)過的時(shí)間,單位為秒。
高斯隨機(jī)數(shù)發(fā)生器的C++程序?qū)崿F(xiàn)。因?yàn)榫鶆螂S機(jī)數(shù)發(fā)生器已經(jīng)生成了均值為0,方差為1的隨機(jī)數(shù),所以只需將均勻隨機(jī)數(shù)發(fā)生器生成的序列乘以白噪聲的方差即得高斯白噪聲。
2.3 QPSK調(diào)制器的C++程序?qū)崿F(xiàn)
根據(jù)正交調(diào)制法原理,在C++程序中,首先對(duì)均勻隨機(jī)數(shù)發(fā)生器產(chǎn)生的(0,1)內(nèi)的二進(jìn)制比特流進(jìn)行判斷,如果產(chǎn)生的隨機(jī)數(shù)在(0,0.5)內(nèi),則為0,否則就是1。再由相鄰的兩個(gè)二進(jìn)制比特流組成一組雙比特碼元,然后根據(jù)表2所示的映射關(guān)系,將其對(duì)應(yīng)成載波相位。C++實(shí)現(xiàn)程序如下:
void QPSK(plural *output,int *input) //用復(fù)數(shù)的實(shí)虛部分別表示正交的兩路輸入輸出
{ //信號(hào)
int state[2][2]={0,3,
1,2,}; //表示四種映射狀態(tài)
int stateNum; //表示第幾個(gè)映射
int Info_even[halflength],Info_odd[halflength]; //分別表示序列的奇數(shù)和偶數(shù)個(gè)元素
double sysmbol[4][2]={
//表示四種不同碼元對(duì)應(yīng)的相位
1/sqrt(2) ,1/sqrt(2),
-1/sqrt(2) ,1/sqrt(2),
-1/sqrt(2),-1/sqrt(2),
1/sqrt(2),-1/sqrt(2) };
for(int i=0;i { //實(shí)現(xiàn)QPSK調(diào)制 Info_even[i]=input[2*i]; Info_odd[i]=input[2*i+1]; stateNum=state[Info_even[i]][Info_odd[i]]; output[i].R=sysmbol[stateNum][0]; output[i].I=sysmbol[stateNum][1]; } } 2.4 QPSK解調(diào)器的C++程序?qū)崿F(xiàn) 解調(diào)完成的功能其實(shí)是檢測和判決。檢測器將接收到的信號(hào)向量投射到四個(gè)可能傳輸?shù)男盘?hào)向量上,并判決。若對(duì)應(yīng)于最大投影的向量就是傳輸?shù)腝PSK信號(hào)向量,C++實(shí)現(xiàn)程序如下: void demudulation(int *output,plural *input) { for(int i=0;i { if(input[i].R>0) output[2*i]=0; else output[2*i]=1; } for(int j=0;j { if(input[j].I>0) output[2*j+1]=0; else output[2*j+1]=1; } } 2.5 差錯(cuò)計(jì)數(shù)器的C++程序?qū)崿F(xiàn) 將解調(diào)后的信號(hào)與發(fā)送的QPSK信號(hào)進(jìn)行比較,統(tǒng)計(jì)差錯(cuò)個(gè)數(shù)并計(jì)算誤碼率和誤符號(hào)率。C++實(shí)現(xiàn)程序如下: int BitError_Statistics(int *estimate,int *original) { int bNum=0; for(int i=0;i { if(estimate[i]!=original[i]) bNum++; } return bNum; } int SymbolError_Statistic(int *estimate,int *original) { int sNum=0; for(int j=0;j { if((estimate[2*j]!=original[2*j])||(estimate[2*j+1]!=original[2*j+1])) sNum++; } return sNum; } 2.6 仿真結(jié)果 運(yùn)行程序,將不同信噪比情況下計(jì)算出的誤碼率和誤符號(hào)率輸出,如圖3所示??梢钥闯?,隨著信噪比的增大,誤碼率和誤符號(hào)率有了明顯的下降,這與通信系統(tǒng)理論是相符的。 圖3 不同信噪比情況下的誤碼率和誤符號(hào)率 本文根據(jù)QPSK調(diào)制解調(diào)原理,在C++的運(yùn)行環(huán)境中很好地仿真實(shí)現(xiàn)了QPSK調(diào)制解調(diào)器在數(shù)字微波與衛(wèi)星通信系統(tǒng)中的應(yīng)用,最終的效果較好地符合了理論要求。通過仿真,可以更好地了解QPSK調(diào)制解調(diào)器的原理,并為在實(shí)際工程中硬件的研制提供了一定的參考作用。 [1] 王立娜,王斌.衛(wèi)星通信系統(tǒng)[M].第2版.北京:國防工業(yè)出版社,2014. [2] 姚軍,李白萍.數(shù)字微波與衛(wèi)星通信[M].北京:北京郵電大學(xué)出版社,2011. [3] 季飛,傅娟.通信系統(tǒng)建模與仿真[M].北京:電子工業(yè)出版社,2007. [4] 秦偉,周錕.RLS算法C++仿真實(shí)現(xiàn)及其應(yīng)用[J].山西電子技術(shù),2015(2):68-69. Simulation Implementation and Application of C++ for a Modulator-Demodulator of QPSK Qin Wei (228Station,ShanxiAdministrationCenterofRadioandTV,ShanxiAdministrationofPress,Publication,Radio,FilmandTelevision,TaiyuanShanxi030001,China) At present, with the rapid development of digital technology, the physical properties in digital machines such as speed, frequency, and storage capacity are largely increased; the position of digital signal processing is becoming more and more important in the communication system. Because of its validity and reliability, Quaternary Phase Shift Keying (QPSK) modulation technique is widely used in digital microwave communication, satellite communication, broadband access, mobile communication and cable television transmission, especially in the digital microwave and satellite communication system. In vc6.0 compiler environment, taking the actual engineering application as a starting point and according to the theory of QPSK, the simulation in this paper realized digital microwave and satellite communication system used in QPSK technology, finally the simulation results better meet the requirements of the theory. digital microwave and satellite communication system; QPSK; simulation; modulator-demodulator 2016-11-01 秦 偉(1980- ),男,山西隰縣人,工程師,研究生在讀,主要從事調(diào)頻電視發(fā)射,微波傳輸。 1674- 4578(2016)06- 0042- 03 TN915.05;TP311.52 A3 結(jié)束語