QPSK通信系统的设计与仿真Word格式文档下载.docx
《QPSK通信系统的设计与仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《QPSK通信系统的设计与仿真Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
在四相绝对移相调制系统中,实现起来最困难的问题在于接收端如何产生一标准的相干载波。
通常采用的方法是四倍频-四分频法,然后经过四次分频,便可以得到所有的相干载波输出。
这种方法也会由于分频起始点不同而使提取的相干载波的相位出现四种不确定性。
因此,在实际中,通常采用四相相对移相调制。
二、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(
)
5π/4(225°
1
π/2(
7π/4(315°
π(
π/4(45°
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解调原理
数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:
四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。
由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&
=7);
x1(i)=1;
elsex1(i)=-1;
end
end
t1=[0:
8-0.01];
t2=0:
7-0.01;
t3=-1:
7.1-0.01;
t4=0:
8.1-0.01;
tt1=length(t1);
x2=ones(1,800);
tt1
if(t1(i)>
=0&
t1(i)<
=2)|(t1(i)>
=4&
=8);
x2(i)=1;
elsex2(i)=-1;
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:
Q_rc=q_rc(1:
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);
b序列'
subplot(4,1,3);
plot(t2,QPSK_rc);
合成序列'
subplot(4,1,4);
plot(t2,QPSK_rc_n1);
加入噪声'
%调制
bit_in=randint(1e3,1,[01]);
bit_I=bit_in(1:
2:
1e3);
bit_Q=bit_in(2:
data_I=-2*bit_I+1;
data_Q=-2*bit_Q+1;
data_I1=repmat(data_I'
20,1);
data_Q1=repmat(data_Q'
1e4
data_I2(i)=data_I1(i);
data_Q2(i)=data_Q1(i);
end;
data_I2_rc=conv(data_I2,xrc)/5.5;
data_Q2_rc=conv(data_Q2,xrc)/5.5;
t1=0:
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_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:
0.05:
1e3-0.05;
t3=0:
1e3-0.1;
%抽样判决
data_recover=[];
20:
10000
data_recover=[data_recoverI(i:
1:
i+19)Q(i:
i+19)];
bit_recover=[];
20000
ifsum(data_recover(i:
i+19))>
data_recover_a(i:
i+19)=1;
bit_recover=[bit_recover1];
else
i+19)=-1;
bit_recover=[bit_recover-1];
end
error=0;
dd=-2*bit_in+1;
ddd=[dd'
];
ddd1=repmat(ddd,20,1);
2e4
ddd2(i)=ddd1(i);
1e3
ifbit_recover(i)~=ddd(i)
error=error+1;
p=error/1000;
subplot(2,1,1);
plot(t2,ddd2);
axis([0100-22]);
title('
原序列'
subplot(2,1,2);
plot(t2,data_recover_a);
解调后序列'
t=0:
I_demo=QPSK_rc.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc.*sin(2*pi*f1*t1);
ddd=-2*bit_in+1;
ddd1=repmat(ddd'
10,1);
plot(t3,I);
axis([020-66]);
plot(t3,Q);
plot(t2,data_recover);
plot(t,ddd2);
%QPSK误码率分析
SNRindB1=0:
10;
SNRindB2=0:
length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=Qfunct(sqrt(2*SNR));
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月