文档库 最新最全的文档下载
当前位置:文档库 › MATLAB-QPSK在AWGN信道下的仿真

MATLAB-QPSK在AWGN信道下的仿真

MATLAB-QPSK在AWGN信道下的仿真
MATLAB-QPSK在AWGN信道下的仿真

QPSK 在AWGN 信道下的仿真实验

一、基本原理

1.1QPSK 简介

在数字相位调制中,M 个信号波形可表示为

()()()()22(1)/Re 2()cos 2122()cos 1cos 2()sin (1)sin 2c j f t

j m M m c c c s t g t e e g t f t m M g t m f t g t m f t

M M

ππππππ

ππ-??=??

?

?=+

-????

=--- (m=1,2,…,M ,0t T ≤≤)

式中,g(t)是信号脉冲形状,2(1)/m m M θπ=- (m=1,2,…,M )是载波的M 个可能的相位,用于传送发送信息。

这些信号波形具有相等的能量,即 220

011

()()22

T

T m g s t dt g t dt εε=

=

=?

? 而且这些信号波形可以表示为两个标准正交信号波形1()f t 和2()f t 的线性星座图合,即

1122()()()m m m s t s f t s f t =+,式中

1()()cos 2c f t t f t π=

2()()sin 2c f t t f t π=

且二维向量1,2m m m s s s ??=??为

22((1)m s m m M M ππ

?=--???

(m=1,2,…,M ) 其中当M=4时就是本文要讨论的4PSK (QPSK ),QPSK 的载波相位有四种取值,每种取值代表两比特的信号。随着信号的改变,幅度恒定的载波信号的相位在四种取值间跳变。这四个相位的取值为间隔相等的值,比如,0,/2,,3/2πππ,每一个相位值对应于唯一的一对消息比特。有一种变形,称为/4QPSK π-是通过在每一个符号间隔的载波相位中引入附加的

/4π相移来使符号同步变得容易些。

QPSK 信号可以表示为:

2(

)cos (1)2s QPSK c s E S t t i T πω?

?=

+-???

? 0S t T ≤≤,i=1,2,3,4 式中S E 为单位符号的信号能量,即0S t T ≤≤时间内的信号能量;c ω为载波角频率,

s T 为符号持续时间。

QPSK 信号可以看成是对两个正交的载波进行多电平双边带调制后所得信号的叠加,因此可以用正交调制的方法得到QPSK 信号。

QPSK 信号的星座如图4.1.1所示:

图1.1 QPSK 信号星座图

1.2 QPSK 相位解调与检测

从AWGN 信道中,在一个信号区间内接收到的带宽信号可以表示为

()()()

()()cos(2)()sin(2)

m m c c s c r t u t n t u t n t f t n t f t ππ=+=+-

这里()c n t 和()s n t 是加性噪声的两个正交分量。

可以将这个接收信号与1()()cos(2)T c t g t f t ψπ=,

2()sin(2)T c g t f t ψπ=-给出的1()t ψ和2()t ψ作相关,两个相关器的输出产生受噪声污损的信号分量,它们可表示为

22()m s s s m m r s n n n M M

ππξξ=+=++ 式中c n 和s n 定义为 1()()2

c T c n g t n t dt ∞

-∞=

?

1()()2s T s n g t n t dt ∞

-∞

=?

这两个正交噪声分量()c n t 和()s n t 是零均值,互不相关的高斯随机过程。这样,

()()0c s E n E n ==和()0c s E n n =。c n 和s n 的方差是

2

2

()()2

c s N E n E n ==

最佳检测器将接收信号向量r 投射到M 个可能的传输信号向量{m s }之一上去,并选取对应于最大投影的向量。据此,得到相关准则为

(,)m m C r s r s =?,m=0,1,…,M-1

由于全部信号都具有相等的能量,因此,对数字相位调制一种等效的检测器标准是计算接收信号向量r=(c r ,s r )的相位为

arctan

s

r c

r r θ= 并从信号集{m s }中选取其相位最接近r θ的信号。

在AWGN 信道中,因为二相相位调制与二进制PAM

是相同的,所以差错概率为

2P Q =,式中b ξ是每比特的能量。四相相位调制可以看作两个正交载波上的二相相位调制系统,所以1个比特的差错概率与二相相位调制是一样的。对于M 4的符号差错

概率不存在简单的闭式表达式。对M P 的一种好的近似式是

22M P Q M Q M ππ?

≈?

??≈?

?

式中2log k M =比特/符号。

1.3 QPSK 调制解调原理

四相相位键控(QPSK )也称之为正交PSK ,其调制原理如图4.1.2所示。

图1.2 QPSK调制原理图

如果输入的二进制信息码流(假设+1V为逻辑1,-1V为逻辑0)串行进入比特分离器,产生2个码流以并行方式输出,分别被送入I(正交支路)通道及Q(同相支路)通道,又各自经过一个平衡调制器,与一个和参考振荡器同频的正交的载波(sin tω和cos tω)调制形成了四相相移键控信号即得到平衡器的输出信号后,经过一个带通滤波器,然后再进入行信号叠加,可以得到已经调制的QPSK信号。QPSK的4种(I,Q星座图合为4种[0 0],[0 1],[1 0],[1 1])输出相位有相等的幅度,而且2个相邻的相位相差值为90度,但是

输出相位并不满足

2

m

m

M

π

?=(m=0,1,…,M-1),信号相位移可以偏移45度和-45度,接受

端仍可以得到正确的解码,实际中数字输入电压必须比峰值载波电压高出很多,以确保平衡器的正常工作。经过调制的信号通过信道传输到达用户端,需要进行解调,这样一过程是与调制相类似的逆过程。首先,QPSK信号经过功率分离器形成两路相同的信号,进入乘积检验波,用两个正交的载波信号(sin tω和cos tω)实现相干解调,然后各自通过一个低通滤波器滤波得到低频和直流的成分,再经过一个并行-串行变换器,得到解调信号。QPSK的解调原理如图4.1.3所示。

图1.3 QPSK解调原理图

目前QPSK调制的实现主要是利用数字电路和专用芯片来完成,通常利用可编程数字电路对基带信号进行码元变换,差分编码,成型滤波等处理后得到同相分量和正交分量,然后将两路信号分量经过数模转换获得模拟信号送入一个正交相乘器与中频载波调制得到中频QPSK调制信号。该方法适合高码率数字信号的传输,但系统的开放性和灵活性较差。

在解调过程中,若不考虑信道失真及噪声的影响,加到解调器输入端的接收信号在一个码元持续时间内可表示为:

()()cos()

()cos()

S c k k

c k s t g t kT t g t t ω?ω?=-+=+∑

式中,g(t)为信号的包络; k ?为码元中的载波相位;

c ω为载波角频率;

该信号同时加到两个鉴相(相乘)器上,在上支路积分器输出电压为:

10

00

()cos()cos 11()cos(2)cos ()22s

s s

T c k c T T k k U g t t tdt

g t t dt g t dt ω?ωω??=+=

++???

取样器在t=s T 时刻对I U 进行取样,所得到的是两个电压的叠加,即前一积分在s T 时刻的积分值加上后一积分在s T 时刻的积分值。当持续时间s T 内包含整数个载波周期时,前一积分在t=s T 时刻的积分值为0,这时测到取样值完全由后一个积分所决定。后一积分在t=s T 时刻的积分值是1/2cos k ?与包络g(t)的面积的乘积。因此I 支路取样器的输出电压与cos k ?成正比,即

1cos k U ?∝ 同理可得Q 支路的输出电压与sin k ?成正比,即 sin k k U ?∝

若判决器按极性判决,正的取样值为“1”,负的取样值为“0”,则可将调相信号解调为相应的数字信号,再经并串变换即可恢复出与发送端完全相同的数字信号。

二、仿真

1、误码率、时域图、眼图仿真等

程序:

close all clc

clear all

SNR_DB=[0:1:12]; sum=1000000;

data= randsrc(sum,2,[0 1]);

[a1,b1]=find(data(:,1)==0&data(:,2)==0);

message(a1)=-1-j;

[a2,b2]=find(data(:,1)==0&data(:,2)==1);

message(a2)=-1+j;

[a3,b3]=find(data(:,1)==1&data(:,2)==0);

message(a3)=1-j;

[a4,b4]=find(data(:,1)==1&data(:,2)==1);

message(a4)=1+j;

scatterplot(message)

title('B点信号的星座图')

A=1;

Tb=1;

Eb=A*A*Tb;

P_signal=Eb/Tb;

NO=Eb./(10.^(SNR_DB/10));

P_noise=P_signal*NO;

sigma=sqrt(P_noise);

for Eb_NO_id=1:length(sigma)

noise1=sigma(Eb_NO_id)*randn(1,sum);

noise2=sigma(Eb_NO_id)*randn(1,sum);

receive=message+noise1+noise2*j;

resum=0;

total=0;

m1=find(angle(receive)<=pi/2&angle(receive)>0);

remessage(1,m1)=1+j;

redata(m1,1)=1;

redata(m1,2)=1;

m2= find( angle(receive)>pi/2&angle(receive)<=pi); remessage(1,m2)=-1+j;

redata(m2,1)=0;

redata(m2,2)=1;

m3=find( angle(receive)>-pi&angle(receive)<=-pi/2); remessage(1,m3)=-1-j;

redata(m3,1)=0;

redata(m3,2)=0;

m4=find( angle(receive)>-pi/2&angle(receive)<=0); remessage(1,m4)=1-j;

redata(m4,1)=1;

redata(m4,2)=0;

[resum,ratio1]=symerr(data,redata);

pbit(Eb_NO_id)=resum/(sum*2);

[total,ratio2]=symerr(message,remessage);

pe(Eb_NO_id)=total/sum;

end

scatterplot(receive)

title('C点信号的星座图')

Pe=1-(1-1/2*erfc(sqrt(10.^(SNR_DB/10)/2))).^2;

Pbit=1/2*erfc(sqrt(10.^(SNR_DB/10)/2));

figure(3)

semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-*',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+') legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率',1)

xlabel('信噪比/dB')

ylabel('概率P')

gird on

二、总结

对实验结果的简单分析和说明

由图可见QPSK 仿真误码率曲线和理论误码率曲线重合在一起,QPSK 仿真误比特率曲线和理论误比特率曲线也重合在一起,误码率约是误比特率的两倍,说明实验方法是正确可行的。

QPSK 信号的误码率:

QPSK 信号的误比特率:

误码率是误比特率的两倍。

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注!)

2

2/2111?

?

?

???--=r erfc P e 2

/2

1

r erfc P e =

相关文档