《MATLAB 实践》报告
——QPSK 系统的误码率和星座图仿真
一、引言
数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通
信号。基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、
相对(差分)相移键控(DPSK)。在接收端可以采用想干解调或非相干解调还原数字
基带信号。
数字信号的传输方式分为基带传输和带通传输。然而,实际中的大多数信道(如)
无线信道具有丰富的低频分量。为了使数字信号在带通信道中传输,必须用数字基带信
号对载波进行调制,以使信号与信道的特性相匹配。
通信系统的抗噪声性能是指系统克服加性噪声影响的能力。在数字通信系统中,信
道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。因此,与分析数字
基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪
声干扰下的总误码率。
误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。
误码率是指错误接收的码元数在传输总码元数中所占的比例,更确切地说,误码率是码
元在传输系统中被传错的概率,即误码率=错误码元数/传输总码元数。如果有误码就有
误码率。误码的产生是由于在信号传输中,衰变改变了信号的电压,致使信号在传
输中遭到破坏,产生误码。噪音、交流电或闪电造成的脉冲、传输设备故障及其
他因素都会导致误码(比如传送的信号是 1,而接收到的是 0;反之亦然)。误码
率是最常用的数据通信传输质量指标。它表示数字系统传输质量的式是“在多少位
数据中出现一位差错”。
误信率,又称误比特率,是指错误接收的比特数在传输总比特数中所占的比
例,即误比特率=错误比特数/传输总比特数。
在数字通信系统中,可靠性用误码率和误比特率表示。
数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:
(1)信号分布;(2)与调制数字比特之间的映射关系。星座图中规定了星座点
与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号
分布和映射完全定义,即可由星座图来完全定义。
二、QPSK 系统的原理
四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进
制 移相 键 控。QPSK 是 在 M=4 时 的调 相 技术 , 它规 定 了四 种 载 波相 位 ,分 别 为
45°,135°,225°,275°,调制器输入的数据是二进制数字序列,为了能和四进
制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要
把二进制数字序列中每两个比特分成一组,共有四种组合,即 00,01,10,11,
其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成,
它们分别代表四进制四个符号中的一个符号。QPSK 中每次调制可传输 2 个信息
比特,这些信息比特是通过载波的四种相位来传递的。解调器根据星座图及接收
到的载波信号的相位来判断发送端发送的信息比特。
在 QPSK 体制中,由其矢量图(图 1)可以看出,错误判决是由于信号矢量
的相位因噪声而发生偏离造成的。例如,设发送矢量的相位为 45°,它代表基带
信号码元“11”,若因噪声的影响使接收矢量的相位变成 135°,则将错判为“01”。
当不同发送矢量以等概率出现时,合理的判决门限应该设定在和相邻矢量等距离
的位置。在图中对于矢量“11”来说,判决门限应该设在 0°和 90°。当发送“11”
时,接收信号矢量的相位若超出这一范围(图中阴影区),则将发生错判。
90
01
11
0
00
10
图 1 QPSK 的噪声容限
QPSK 信号的误码率:
Pe
1
11
2
erfc
r
2/
2
QPSK 信号的误比特率:
1
2
Pe
erfc
r
2/
图 2 QPSK 系统原理方框图
三、仿真实验
根据信噪比
产生高斯
噪声数据
B
F
C
星座图映射
加法运算
判决
A
产生二进制
数据
D
E
星座图
逆映射
误比特率
统计
误码率统计
图 3
仿真实验框图
实验结果(即误码率曲线和星座图)
图 4 B 点信号的星座图
图 5
C 点信号的星座图
图 6 误码率和误比特率的理论和仿真曲线
对实验结果的简单分析和说明
图 4 是 B 点信号的星座图映射,00、01、10、11 组合分别映射成-1-j,-1+j,1-j,1+j。
图 5 是 C 点信号的星座图映射,它是加入噪声后的映射结果,由图中可以看出加
入噪声后大致以-1-j,-1+j,1-j,1+j 为中心形成了近似圆的图像,少部分点偏离比较严重,
产生了误差。
由图 6,可见 QPSK 仿真误码率曲线和理论误码率曲线重合在一起,QPSK 仿真误
比特率曲线和理论误比特率曲线也重合在一起,误码率约是误比特率的两倍,说明实验
方法是正确可行的。
四、结论
本次实验研究了数字调制方式 QPSK,对其误码率进行了考察。通过理论误码率和
仿真误码的比较,了解了误码率的性能。本次实验还通过运用星座图来对实验结果进行
仿真。本次实验得出结论如下:
QPSK 信号的误码率:
Pe
1
11
2
erfc
r
2/
2
QPSK 信号的误比特率:
误码率是误比特率的两倍。
Pe
1
2
erfc
r
2/
附录:
1、 心得体会:本次实验我收获很多,学会了应用 MATLAB 来处理问题,加深了对通信原
理中部分公式和概念的理解。实验过程中也遇到了不少问题,在星座图映射上,一开始
将 00,01,10,11 看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其
分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分
析和计算的过程中花了很多时间;实验过程中,学会了使用 find 函数来代替 for 循环的
功能,从而使程序运行更加快,大大加快了实验的进度。通过本次 MATLAB 的实践,
应该加强 MATLAB 在各个学科的应用,学会用 MATLAB 来处理实际问题。
2、 程序:
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