基于MATLAB仿真的QPSK誤碼性能研究
摘要
QPSK即正交相移鍵控(Quadrature Phase Shift Keying),每個碼元含有2b的信息。發送碼元序列在編碼時將每兩個比特分成一組,然后用四種相位之一來代表他,兩比特4種組合,和相位對應關系按格雷碼規律分配,即可得到QPSK調制波形。本文主要介紹QPSK的調制解調方法,以及在Matlab軟件仿真中在AGWN信道中的誤碼性能。
1.1引言
QPSK是英文QuadraturePhaseShiftKeying的縮略語簡稱,即正交相移鍵控或是四相相移鍵。它分為絕對相移和相對相移兩種。在數字信號的調制方式中QPSK四相移鍵控是目前最常用的一種衛星字信號調制方式,它具有較高的頻譜利用率、較強的抗干擾性、在電路上實現也較為簡單。
四相相移調制是利用載波的四種不同相位差來表征輸入的數字信息,是四進制移相鍵控。QPSK是在M=4時的調相技術,它規定了四種載波相位,分別為45°,135°,225°,315°,調制器輸入的數據是二進制數字序列,為了能和四進制的載波相位配合起來,則需要把二進制數據變換為四進制數據,這就是說需要把二進制數字序列中每兩個比特分成一組,共有四種組合,即00,01,10,11,其中每一組稱為雙比特碼元。每一個雙比特碼元是由兩位二進制信息比特組成,它們分別代表四進制四個符號中的一個符號。QPSK中每次調制可傳輸2個信息比特,這些信息比特是通過載波的四種相位來傳遞的。解調器根據星座圖及接收到的載波信號的相位來判斷發送端發送的信息比特。
首先將輸入的串行二進制信息序列經串-并變換,變成m=log2M個并行數據流,每一路的數據率是R/m,R是串行輸入碼的數據率。I/Q信號發生器將每一個m比特的字節轉換成一對(pn,qn)數字,分成兩路速率減半的序列,電平發生器分別產生雙極性二電平信號I(t)和Q(t),然后對coswct和sinwct進行調制,相加后即得到QPSK信號。
2. QPSK調制解調原理
QPSK調制原理圖
和BPSK調制類似,QPSK是利用載波的相位的變換來傳遞信息,而振幅和頻率保持不變,QPSK的時域表達式為:
其中=,,,
另外QPSK信號一般用雙極性(bipolarity)全占空矩形脈沖序列與一個正弦載波相乘表征。PSK各信號具有相同的能量,都為(每個傳輸符號能量)
定義為一個矩形脈沖 ,0≤t≤T
于是在符號區間0≤t≤T內傳輸的信號波形可表示為(其中A=)
則
如果將其看成兩相角之和,即可表示為
其中是兩個正交基函數,定義為
并把改兩個基函數能量歸一化到1
解調
QPSK解調原理圖
AWGN信道中,接受信號可表示為:
=
其中和是加性噪聲的兩個正交分量。
將接受信號與和做互相關,兩個相關器的輸出即可產生受噪聲污染的信號分量,可表示為
=,m=0,1,2,3
其中
且兩正交噪聲分量是零均值互不相關的高斯隨機過程,于是和的方差是:
最佳檢測器將接受信號向量r投射到所有可能的傳輸信號向量之一上,并選對應于最大投影的向量,據此相關準則即為
m=0,1,2,3
由于全部信號都具有相等的能量,因此數字相位調制的一種等效檢測器標準就是計算接收信號向量的相位:
并從信號集中選取其相位最接近的信號。
在AWGN信道中,QPSK調制差錯概率為:,
其中為每比特能量。
代碼:
% QPSK在AWGN平坦衰落信道的無碼性能仿真*************************************
%*************************** *************************************
clear;
clf;
clc;
SNRindB1=0:2:15; % 給定要進行仿真的信噪比范圍及步長(dB)
SNRindB2=0:0.1:15; % 給定要進行理論計算的信噪比(dB)范圍步長
%************對SNRindB1進行Monte Carlo仿真********************************
for i=1:length(SNRindB1)
[pb,ps]=QPSK2(SNRindB1(i)); % 調用QPSK2函數對給定信噪比進行仿真
smld_bit_err_prb(i)=pb; % 通過調用函數仿真獲得比特誤碼率
smld_symbol_err_prb(i)=ps; % 通過調用函數仿真獲得符號誤碼率
end;
%**************************************************************************
%*************對SNRindB2進行理論分析***************************************
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10); % dB單位信噪比化成一般式信噪比
theo_err_prb(i)=Qfunct(sqrt(2*SNR)); % 調用Q函數計算理論值
end;
%**************************************************************************
% *************繪制相關曲線************************************************
colordef black
h1=semilogy(SNRindB1,smld_bit_err_prb,'co'); %繪制比特誤碼率曲線
hold on
h2=semilogy(SNRindB2,theo_err_prb,'c'); %繪制理論比特誤碼率曲線
hold on
% h3=semilogy(SNRindB1,smld_symbol_err_prb,'bo'); %繪制理論比特誤符號率曲線
legend('QPSK仿真誤碼率','QPSK理論比特誤碼率');
xlabel('E/N(dB)')
ylabel('Pe')
title('QPSK在AWGN信道中的誤碼性能 ')
colodef white;
3 在AWGN信道中QPSK的誤碼性能
由前面的調制解調原理,利用Matlab,對理論進行研究。并將理論值與仿真值進行對比,分析數學理想模型建立的合理性,首先由MATLAB程序產生信號源,再模擬AWGN平坦衰落信道中疊加加性高斯白噪聲,在接收端對接收信號進行檢測與估值,并對信號進行判決恢復原始信號。得到仿真比特誤碼率和理論比特誤碼率如下,并給出了仿真符號誤碼率的曲線以供參考:
由上面的圖可以看到,仿真比特誤碼率和理論比特誤碼率在前面部分符合的非常好,兩者幾乎沒有什么差別,而在信噪比大概為7.5的地方,兩者開始有了明顯的偏移。由此說明模型建立的還是比較理想的。
4 我的收獲
這個實驗主要是關于QPSK的,介紹了QPSK的原理,作用,調制解調方法,并對QPSK在AWGN信道中的誤碼性能進行了仿真,并與理論值進行比較,驗證了模型建立的合理性。在用軟件仿真時,我改了好幾次,可始終不能正常運行,總是出現一些錯誤,后來仔細考慮后,發現m文件目錄不在同一個文件夾下,致使有些文件無法不能讀到,一直報錯。后來改了目的地址,這個問題得到了解決,在這次實驗中,類似的問題還出現了好幾次,都想辦法克服。這是因為軟件使用不熟練的緣故,要多使用軟件,做到出現問題能夠迅速準確地解決,當然,沒有問題最好。
|