目录
Project Seven 报告...........................................................................错误!未定义书签。
说明部分..........................................................................................错误!未定义书签。
1. 理论知识.................................................................................................................. 1
1.1 QPSK 的调制原理........................................................................................... 1
1.2 OQPSK 的调制原理........................................................................................ 2
1.3 QPSK 信号的平均误比特率........................................................................... 4
2. 编程实现和仿真结果.............................................................................................. 5
3. 仿真结论................................................................................................................ 17
4. 参考文献................................................................................................................ 19
I
1. 理论知识
1.1 QPSK 的调制原理
四相相移键控(QPSK)又名四进制移相键控,该信号的正弦载波有四个可
能的离散相位状态,每个载波相位携带 2 个二进制符号,其信号的表示为
Ats
i
)(
cos(
tw
c
i
)
4,3,2,1i
STt 0
θi 为正弦载波的相位,有四种可能状态:θi 为π/4、3π/4、5π/4、7π/4,此初始
相位为π/4 的 QPSK 信号的矢量图如图 1 所示。
图 1 QPSK 信号的矢量图
下面分析 QPSK 信号的产生。
将信号表达式进行改写
Ats
i
)(
cos(
tw
c
i
)
(cos
A
i
cos
tw
c
sin
i
sin
tw
c
)
若θi 为π/4、3π/4、5π/4、7π/4,,则
cos
i
1
2
sin;
i
1
2
于是,信号表达式可写成
)(
ts
i
tIA
)([
2
cos
tQtw
c
sin)(
)(
tI
;1
)(
tQ
1
由此可得到 QPSK 调制的产生方法。
tw
c
]
1
图 2 QPSK 实现框图
由框图可见,两路 2PSK 信号分别调至在相互正交的载波上,这也是 QPSK
信号被称为正交载波调制的原因。此外相位的映射采用格雷映射。
现在以一个二进制输入序列为为例解释串并变换是如何将二进制转化为四
进制的。
令输入为 1011010011,经过串并转换和映射可以得到原始信号与 I 路信号和
Q 路信号的关系,如图 3 所示.
图 3 QPSK 调制后的 I 路 Q 路信号
1.2 OQPSK 的调制原理
在 QPSK 数字调制系统中,若将二进制双极性不归零矩形脉冲序列串并变换
2
后再进行正交载波调制,则所得到的 QPSK 信号是恒定包络的。而在实际的通信
系统中,往往要求信道带宽是有限的,为了对 QPSK 信号带宽进行限制,经常在
QPSK 数字调制器中先将基带双极型矩形不归零脉冲序列经过基带成型滤波器
进行带限,在进行正交载波调制,将带限的基带信号功率谱搬移到载频上,成为
带限的 QPSK 信号。但此时的带限 QPSK 信号包络将不再恒定,并且在相邻四
进制符号的载波相位发生π相位跳变时会出现零包络。若将此包络起伏很大的带
限 QPSK 信号再进行非线性功率放大,虽然此已调信号包络的起伏会减弱,但却
使非线性功率放大后的信号功率谱旁瓣增生,频谱又被扩展,而其旁瓣将会感染
临近频带的信号,这是我们不希望出现的。
OQPSK 又称偏移四相移键控,是 QPSK 的改进型。它与 QPSK 有同样的相
位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和
正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏
移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。
因此,OQPSK 信号相位只能跳变 0°、±90°,不会出现 180°的相位跳变,因
而带限的 OQPSK 信号的包络起伏很小,在经过非线性功放后,不会引起功率谱
旁瓣有大的增生,所以它适于在带线非线性信道中使用。
假设对同样的输入序列 1011010011,OQPSK 信号的 I 路信号和 Q 路信号如
图 4 所示。
图 4 OQPSK 信号的 I 路信号和 Q 路信号
3
1.3 QPSK 信号的平均误比特率
计算 QPSK 解调的误比特率有两种方法:一是先计算误符号率(平均错判四
进制符号的概率),然后再根据误符号率计算从四进制译为二进制符号的误比特
率;另一种计算方法沿用 2PSK 匹配滤波解调的误比特率计算公式。下面采用第
二种方法来计算。
在加性高斯白噪声信道条件下,2PSK 最佳接收的平均误比特率为
P
b
1
2
erfc
(
2
TA
b
2
N
0
)
1
2
(
E
b
N
0
)
对于 2PSK 而言,在 QPSK 与 2PSK 的输入二进制信息速率相同,二者的发
送功率相同,加性噪声的单边功率谱相同的条件下,QPSK 与 2PSK 的平均误比
特率是相同的。
在给定二进制信息速率的条件下,QPSK 的同相支路与正交支路的四进制符
号速率是二进制信息速率的一半,即 Ts=2Tb。在给定信号总发送功率的条件下,
QPSK 同相支路和正交支路的信号功率是总的发送功率的一半。于是得到 I 路和
Q 路的平均错判概率为
P
eI
P
eQ
1
2
erfc
(
(
A
2
2
2
2)
T
b
N
0
)
1
2
erfc
(
E
b
N
0
)
由于 QPSK 发端信源输出的二进制符号“1”和“0”等概率出现,二进制码
元经串并变换后在同相支路和正交支路也是等概率分布的,在收端的同相和正交
之路解调的输出经并串变换后的数据,其总的平均误比特率与 I 路或 Q 路的平均
误比特率是相同的,即
P
b
PP
eI
I
PP
eQQ
其中 PI 和 PQ 分别是总的二进制码元出现在 I 路或 Q 路的概率,PI=PQ=1/2,因而
QPSK 的平均误比特率为
P
b
P
eI
P
eQ
1
2
erfc
(
E
b
0N
)
综上所述,将 QPSK 和 2PSK 相比较,在两者的信息速率、信号发送功率、
噪声功率谱密度相同的条件下,QPSK 和 2PSK 的平均误比特率是相同的,而
QPSK 功率谱主瓣宽度比 2PSK 的窄一半。
4
2. 编程实现和仿真结果
第一题程序如下:
clc;
clear all;
close all;
%全局变量
Ts=0.01;
t=0:Ts:5;
N=length(t);
fs=1/Ts;
df=fs/(N-1);
n=-(N-1)/2:(N-1)/2;
f=n*df;
%时间分辨率(时点间间隔),抽样时间间隔
%时间坐标s
%df为频率分辨率(频率间隔)
%频率坐标
%待传送的编码串
%每个编码的发送延迟时间
%基带信号
Figure;
p=[1 0 1 1 0 1 0 0 1 1];
d1=[0:0.5:t(end)-0.5];
p1=[p, zeros(length(d1)-length(p))]; %在发送串后补零
d=[d1;p1]';
m=pulstran(t-0.25,d,'rectpuls',0.5);
subplot (4,1,1);
plot(t,m)
axis([t(1) t(end) -0.5 1.5])
grid on
title('基带信号p')
%产生d矩阵
%抽取IQ信号 BPSK只映射一路I。OQPSK两个基带符号为一组,映射到一对IQ
pQI=reshape(p,2,5);
pQ=pQI(1,:);
pI=pQI(2,:);
d2=[0:1:t(end)-1];
5
dQ=[d2;pQ]';
dI=[d2;pI]';
mI=pulstran(t-0.5,dI,'rectpuls',1);
mQ=pulstran(t-0.5,dQ,'rectpuls',1);
%IQ值映射 “0”映射成-1,“1”映射成1
I(pI==1)=-1/sqrt(2);
I(pI==0)=1/sqrt(2);
Q(pQ==1)=-1/sqrt(2);
Q(pQ==0)=1/sqrt(2);
dImap=[d2;I]';
dQmap=[d2;Q]';
mImap=pulstran(t-0.5,dImap,'rectpuls',1);
mQmap=pulstran(t-0.5,dQmap,'rectpuls',1);
subplot(4,1,2)
plot(t,mImap)
axis([t(1) t(end) -1.5 1.5])
grid on
title('QPSK映射后的I路信号')
subplot(4,1,3)
plot(t,mQmap)
axis([t(1) t(end) -1.5 1.5])
grid on
title('QPSK映射后的Q路信号')
%载波频率
%载波信号
fc=10
c1=cos(2*pi*fc*t);
c2=sin(2*pi*fc*t);
%已调信号
s1=mImap.*c1;
s2=mQmap.*c2;
s=s1-s2;
subplot(4,1,4)
6
plot(t,s)
axis([t(1) t(end) -1.5 1.5])
title('QPSK进入信道的信号s=s1-s2')
text(0.5,1.2,'7*π/4')
text(1.5,1.2,'5*π/4')
text(2.5,1.2,'3*π/4')
text(3.5,1.2,'1*π/4')
text(4.5,1.2,'5*π/4')
grid on
figure
S=fft(s);
S=fftshift(S);
plot(f,abs(S)/N);
title('qpsk频谱');
figure
N1=128;
W=[9.5/50 10.5/50];
bd=FIR1(N1,W,kaiser(N1+1,4));
[h,f1]=freqz(bd,1,N1); %求数字带通滤波器的频率响应
subplot(411);
plot(f1*50/pi,abs(h)); %绘制带通滤波器的幅频响应图
title('带通滤波器的幅频响应图');
xlabel('f/HZ');
ylabel('amplitude');
subplot(412);
sf=filter(bd,1,s);
plot(t,sf); %绘制叠加函数S经过带通滤波器以后的时域图形
title('QPSK经过带通滤波器以后的时域图形');
xlabel('t/s');
ylabel('amplitude');
subplot(413);
extrmaxvalue=sf(find(diff(sign(diff(sf)))==-2)+1);
extrmaxindex=find(diff(sign(diff(sf)))==-2)+1;
extrminvalue=sf(find(diff(sign(diff(sf)))==+2)+1);
7