完整word版QPSK通信系统的设计与仿真.docx
《完整word版QPSK通信系统的设计与仿真.docx》由会员分享,可在线阅读,更多相关《完整word版QPSK通信系统的设计与仿真.docx(20页珍藏版)》请在冰豆网上搜索。
完整word版QPSK通信系统的设计与仿真
摘要
介绍了数字通信中的QPSK调制解调的原理,通过用Matlab编写脚本程序对QPSK通信系统的发射和接收过程的具体实现进行模拟仿真,绘出信号在理想信道和加噪信道中模拟传输时的时域图,并对各模块进行了频谱分析,所得到的结果与理论基本相符,对于理解QPSK系统的性能并在系统的实际应用上作进一步的设计,提供了有效的参考依据。
通过利用MATLAB软件SUMLINK实现了QPSK通信系统的仿真,完成了QPSK通信系统的调制解调过程的仿真实现,使接收端能够准确地接收到来自发放的信息。
QPSK调制方式在通信工程中的应用十分广泛,其误码率随信噪比的增加而减少并最终可能为零。
在QPSK调制方式以后,还会出现进制更多的调制方式。
而我们着重要解决的问题也从如何提高相位谱利用率转变为如何减少误差以及提高传送速率。
阐述QPSK调制解调的实现过程,并运用软件实现手段对信号变换过程加以分析,希望有所收获。
关键词:
数字通信四相相位键控(QuadraturePhaseShiftKeying,QPSK)MATLAB
前言
随着数字技术的飞速发展与数字器件的广泛使用,数字信号处理在通信系统中的应用已经越来越重要。
数字信号传输系统分为基带传输系统和频带传输系统,频带传输系统也叫数字调制系统,该系统对基带信号进行调制,使其频谱搬移到适合在信道(一般为带通信道)上传输的频带上。
数字调制和模拟调制一样都是正弦波调制,即被调制信号都为高频正弦波。
数字调制信号又称为键控信号,数字调制过程中处理的是数字信号,而载波有振幅、频率和相位3个变量,且二进制的信号只有高低电平两个逻辑量即1和0,所以调制的过程可用键控的方法由基带信号对载频信号的振幅、频率及相位进行调制,最基本的方法有3种:
正交幅度调制(QAM)、频移键控(FSK)、相移键控(PSK)。
根据所处理的基带信号的进制不同分为二进制和多进制调制(M进制)。
多进制数字调制与二进制相比,其频谱利用率更高。
在数字通信、数字视频广播、数字卫星广播等领域中,广泛采用M进制的调制方式[1]。
理论分析指出,在恒参信道中利用PSK方式可以获得最佳接收性能,在接收机噪声的作用下,PSK误码率最低。
本文用Matlab软件对M=4的四相相位调制解调(QPSK)进行模拟,并对各模块进行了仿真分析。
一、QPSK简介
在多相调制中,可以用多种相位差来表示数字数据信息。
把要传送的二进制信息序列每K比特编为一组,那么便构成了K比特码元,每一K比特码元都有2^K种不同的状态,要用2^K种不同的相位或相位差来表示。
由于K比特码元包括的信息量是二进制码元所含信息量的K倍,所以,多相调制系统与二相调制系统相比,在码元传输速率相同时,信息传输速率更高。
例如,四相调制系统的信息传输速率是二相调制系统的两倍。
另外,在系统信息传输速率的情况下,由于多相调制系统的码元速率比二相调制要低,因而多相调制时,信号码元持续时间比二相调制时长。
码元时间长,则对应的带宽就窄,因此压缩了信号的频带,可以叫嚣由于新到特性引起的码间串扰的影响。
由此可见,多相调制是提高数据通信有效性、可靠性的一种途径。
由于四相绝对移相信号可以看成两个正交2PSK信号只能采用相干检测法解调,4PSK信号也只能采用两个正交的相干载波分别来检测这两个分量A和B。
在四相绝对移相调制系统中,实现起来最困难的问题在于接收端如何产生一标准的相干载波。
通常采用的方法是四倍频-四分频法,然后经过四次分频,便可以得到所有的相干载波输出。
这种方法也会由于分频起始点不同而使提取的相干载波的相位出现四种不确定性。
因此,在实际中,通常采用四相相对移相调制。
二、QPSK调制解调原理
2.1QPSK调制原理
四相相移键控信号简称“QPSK”。
它分为绝对相移和相对相移两种。
由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式QDPSK。
它具有一系列独特的优点,目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。
在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。
QPSK四相绝对相移键控,用载波信号的4个初始相位对应4进制码元。
因此,对于输入的二进制数字序列每2比特分为一组,称为双比特码元AB,然后用4种不同的载波相位分别表征这4种数字码元。
按AB分组与载波相位的对应关系有π/2体系(也称A方式)与π/4体系(也称B方式),具体定义如表所示:
双比特码元AB
载波相位
A
B
π/2体
系(A方式)
π/4体系(B方式)
0
0
0(
)
5π/4(225°)
1
0
π/2(
)
7π/4(315°)
1
1
π(
)
π/4(45°)
0
1
3π/2(
)
3π/4(135°)
图2-1QPSK信号双比特码元与相位矢量关系图
图2-2
四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。
QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,315°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。
每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。
QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。
解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。
数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:
(1)信号分布;
(2)与调制数字比特之间的映射关系。
星座图中规定了星座点与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。
同时QPSK信号可以看作两个载波正交2PSK信号的合成,下图表示QPSK正交调制器。
图2-3QPSK调制系统原理图
2.2QPSK解调原理
数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:
(1)信号分布;
(2)与调制数字比特之间的映射关系。
星座图中规定了星座点与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。
四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。
QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,315°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。
每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。
QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。
解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。
由QPSK信号的调制可知,对它的解调可以采用与2PSK信号类似的解调方法进行解调。
解调原理图如下所示,同相支路和正交支路分别采用相干解调方式解调,得到
和
,经过抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据。
图2-4QPSK解调系统原理图
三、MATLAB仿真结果
3.1QPSK的产生及加噪仿真
图3-1
通过matlab产生两路相互正交的2PSK信号,信号叠加后的到合成序列,对合成序列进行加噪处理。
3.2QPSK解调前后信号仿真
图3-2
3.3QPSK码元恢复
然后相干解调中,正交路和同相路分别设置两个相关器(或匹配滤波器),得到I(t)和Q(t),经电平判决和并一串变换后即可恢复原始信息。
当然,如果调制端是差分编码的,那么解调中并串变换后还需一个差分解码。
假如已调信号
分别为同相路和正交路,ω为载波频率,那么相干解调后,同相路相乘可得
正交路为:
经过低通滤波后,可得:
在完成通过滤波器之后,将码元再通过并串转换,就可以恢复出原始信号的码元序列。
图3-3
3.4误码率分析
图3-4
有图示可知,QPSK调制解调有比较低的误码率,所以因其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。
四、程序清单
clearall
closeall
t=[-1:
0.01:
7-0.01];
tt=length(t);
x1=ones(1,800);
fori=1:
tt
if(t(i)>=-1&t(i)<=1)|(t(i)>=5&t(i)<=7);
x1(i)=1;
elsex1(i)=-1;
end
end
t1=[0:
0.01:
8-0.01];
t2=0:
0.01:
7-0.01;
t3=-1:
0.01:
7.1-0.01;
t4=0:
0.01:
8.1-0.01;
tt1=length(t1);
x2=ones(1,800);
fori=1:
tt1
if(t1(i)>=0&t1(i)<=2)|(t1(i)>=4&t1(i)<=8);
x2(i)=1;
elsex2(i)=-1;
end
end
f=0:
0.1:
1;
xrc=0.5+0.5*cos(pi*f);
y1=conv(x1,xrc)/5.5;
y2=conv(x2,xrc)/5.5;
n0=randn(size(t2));
f1=1;
i=x1.*cos(2*pi*f1*t);
q=x2.*sin(2*pi*f1*t1);
I=i(101:
800);
Q=q(1:
700);
QPSK=sqrt(1/2).*I+sqrt(1/2).*Q;
QPSK_n=(sqrt(1/2).*I+sqrt(1/2).*Q)+n0;
n1=randn(size(t2));
i_rc=y1.*cos(2*pi*f1*t3);
q_rc=y2.*sin(2*pi*f1*t4);
I_rc=i_rc(101:
800);
Q_rc=q_rc(1:
700);
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
QPSK_rc_n1=QPSK_rc+n1;
figure
(1)
subplot(4,1,1);plot(t3,i_rc);axis([-18-11]);ylabel('a序列');
subplot(4,1,2);plot(t4,q_rc);axis([-18-11]);ylabel('b序列');
subplot(4,1,3);plot(t2,QPSK_rc);axis([-18-11]);ylabel('合成序列');
subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-18-11]);ylabel('加入噪声');
clearall
closeall
%调制
bit_in=randint(1e3,1,[01]);
bit_I=bit_in(1:
2:
1e3);
bit_Q=bit_in(2:
2:
1e3);
data_I=-2*bit_I+1;
data_Q=-2*bit_Q+1;
data_I1=repmat(data_I',20,1);
data_Q1=repmat(data_Q',20,1);
fori=1:
1e4
data_I2(i)=data_I1(i);
data_Q2(i)=data_Q1(i);
end;
f=0:
0.1:
1;
xrc=0.5+0.5*cos(pi*f);
data_I2_rc=conv(data_I2,xrc)/5.5;
data_Q2_rc=conv(data_Q2,xrc)/5.5;
f1=1;
t1=0:
0.1:
1e3+0.9;
n0=rand(size(t1));
I_rc=data_I2_rc.*cos(2*pi*f1*t1);
Q_rc=data_Q2_rc.*sin(2*pi*f1*t1);
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
QPSK_rc_n0=QPSK_rc+n0;
%解调
I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);
%低通滤波
I_recover=conv(I_demo,xrc);
Q_recover=conv(Q_demo,xrc);
I=I_recover(11:
10010);
Q=Q_recover(11:
10010);
t2=0:
0.05:
1e3-0.05;
t3=0:
0.1:
1e3-0.1;
%抽样判决
data_recover=[];
fori=1:
20:
10000
data_recover=[data_recoverI(i:
1:
i+19)Q(i:
1:
i+19)];
end;
bit_recover=[];
fori=1:
20:
20000
ifsum(data_recover(i:
i+19))>0
data_recover_a(i:
i+19)=1;
bit_recover=[bit_recover1];
else
data_recover_a(i:
i+19)=-1;
bit_recover=[bit_recover-1];
end
end
error=0;
dd=-2*bit_in+1;
ddd=[dd'];
ddd1=repmat(ddd,20,1);
fori=1:
2e4
ddd2(i)=ddd1(i);
end
fori=1:
1e3
ifbit_recover(i)~=ddd(i)
error=error+1;
end
end
p=error/1000;
figure
(1)
subplot(2,1,1);plot(t2,ddd2);axis([0100-22]);title('原序列');
subplot(2,1,2);plot(t2,data_recover_a);axis([0100-22]);title('解调后序列');
clearall
closeall
%调制
bit_in=randint(1e3,1,[01]);
bit_I=bit_in(1:
2:
1e3);
bit_Q=bit_in(2:
2:
1e3);
data_I=-2*bit_I+1;
data_Q=-2*bit_Q+1;
data_I1=repmat(data_I',20,1);
data_Q1=repmat(data_Q',20,1);
fori=1:
1e4
data_I2(i)=data_I1(i);
data_Q2(i)=data_Q1(i);
end;
t=0:
0.1:
1e3-0.1;
f=0:
0.1:
1;
xrc=0.5+0.5*cos(pi*f);
data_I2_rc=conv(data_I2,xrc)/5.5;
data_Q2_rc=conv(data_Q2,xrc)/5.5;
f1=1;
t1=0:
0.1:
1e3+0.9;
I_rc=data_I2_rc.*cos(2*pi*f1*t1);
Q_rc=data_Q2_rc.*sin(2*pi*f1*t1);
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
%解调
I_demo=QPSK_rc.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc.*sin(2*pi*f1*t1);
I_recover=conv(I_demo,xrc);
Q_recover=conv(Q_demo,xrc);
I=I_recover(11:
10010);
Q=Q_recover(11:
10010);
t2=0:
0.05:
1e3-0.05;
t3=0:
0.1:
1e3-0.1;
data_recover=[];
fori=1:
20:
10000
data_recover=[data_recoverI(i:
1:
i+19)Q(i:
1:
i+19)];
end;
ddd=-2*bit_in+1;
ddd1=repmat(ddd',10,1);
fori=1:
1e4
ddd2(i)=ddd1(i);
end
figure
(1)
subplot(4,1,1);plot(t3,I);axis([020-66]);
subplot(4,1,2);plot(t3,Q);axis([020-66]);
subplot(4,1,3);plot(t2,data_recover);axis([020-66]);
subplot(4,1,4);plot(t,ddd2);axis([020-66]);
%QPSK误码率分析
SNRindB1=0:
2:
10;
SNRindB2=0:
0.1:
10;
fori=1:
length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
end;
fori=1:
length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=Qfunct(sqrt(2*SNR));
end;
title('QPSK误码率分析');
semilogy(SNRindB1,smld_bit_err_prb,'*');
axis([01010e-81]);
holdon;
%semilogy(SNRindB1,smld_symbol_err_prb,'o');
semilogy(SNRindB2,theo_err_prb);
legend('仿真比特误码率','理论比特误码率');
holdoff;
五、参考文献
1樊昌信、曹丽娜编著《通信原理》国防工业出版社。
2009年1月
2张志涌、杨祖樱编著《MATLAB教程》北京航空航天大学出版社。
2006年9月
3张肃文编著《高频电子线路》高等教育出版社。
2008年2月
4周建兴等编著《MATLAB从入门到精通》人民邮电出版社。
2008年1月
5曹志刚、钱亚生编著《现代通信原理》清华大学出版社。
2008年03月
6刘颖编著《数字通信原理与技术》北京邮电大学出版社。
1999年10月
7黄智伟编著《调制解调器电路设计》西安电子科技大学出版社。
2009年04月
8啜钢等编著《移动通信原理与系统》北京邮电大学出版社。
2005年09月
9王华奎编著《移动通信原理与技术》清华大学出版社。
2009年01月