找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2213|回复: 0
打印 上一主题 下一主题
收起左侧

基于MATLAB仿真的QPSK误码性能研究

[复制链接]
跳转到指定楼层
楼主
ID:398784 发表于 2018-9-16 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于MATLAB仿真的QPSK误码性能研究
摘要
   QPSK即正交相移键控(Quadrature Phase Shift Keying),每个码元含有2b的信息。发送码元序列在编码时将每两个比特分成一组,然后用四种相位之一来代表他,两比特4种组合,和相位对应关系按格雷码规律分配,即可得到QPSK调制波形。本文主要介绍QPSK的调制解调方法,以及在Matlab软件仿真中在AGWN信道中的误码性能。

1.1引言
  QPSK是英文QuadraturePhaseShiftKeying的缩略语简称,即正交相移键控或是四相相移键。它分为绝对相移和相对相移两种。在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。
  四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,315°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。
  首先将输入的串行二进制信息序列经串-并变换,变成m=log2M个并行数据流,每一路的数据率是R/m,R是串行输入码的数据率。I/Q信号发生器将每一个m比特的字节转换成一对(pn,qn)数字,分成两路速率减半的序列,电平发生器分别产生双极性二电平信号I(t)和Q(t),然后对coswct和sinwct进行调制,相加后即得到QPSK信号。

2. QPSK调制解调原理
QPSK调制原理图
  和BPSK调制类似,QPSK是利用载波的相位的变换来传递信息,而振幅和频率保持不变,QPSK的时域表达式为:
         其中=,,,
另外QPSK信号一般用双极性(bipolarity)全占空矩形脉冲序列与一个正弦载波相乘表征。PSK各信号具有相同的能量,都为(每个传输符号能量)
定义为一个矩形脉冲   ,0≤t≤T
于是在符号区间0≤t≤T内传输的信号波形可表示为(其中A=)

如果将其看成两相角之和,即可表示为
其中是两个正交基函数,定义为
并把改两个基函数能量归一化到1
解调
QPSK解调原理图
    AWGN信道中,接受信号可表示为:
=
其中和是加性噪声的两个正交分量。
    将接受信号与和做互相关,两个相关器的输出即可产生受噪声污染的信号分量,可表示为
=,m=0,1,2,3
其中      
    且两正交噪声分量是零均值互不相关的高斯随机过程,于是和的方差是:
    最佳检测器将接受信号向量r投射到所有可能的传输信号向量之一上,并选对应于最大投影的向量,据此相关准则即为
               
m=0,1,2,3
    由于全部信号都具有相等的能量,因此数字相位调制的一种等效检测器标准就是计算接收信号向量的相位:
并从信号集中选取其相位最接近的信号。
在AWGN信道中,QPSK调制差错概率为:,
其中为每比特能量。
代码:
% QPSK在AWGN平坦衰落信道的无码性能仿真*************************************
%*************************** *************************************
clear;
clf;
clc;
SNRindB1=0:2:15;                  % 给定要进行仿真的信噪比范围及步长(dB)
SNRindB2=0:0.1:15;                % 给定要进行理论计算的信噪比(dB)范围步长
%************对SNRindB1进行Monte Carlo仿真********************************
for i=1:length(SNRindB1)         
    [pb,ps]=QPSK2(SNRindB1(i));         % 调用QPSK2函数对给定信噪比进行仿真
  smld_bit_err_prb(i)=pb;               % 通过调用函数仿真获得比特误码率
  smld_symbol_err_prb(i)=ps;            % 通过调用函数仿真获得符号误码率
end;
%**************************************************************************
%*************对SNRindB2进行理论分析***************************************
for i=1:length(SNRindB2)
  SNR=exp(SNRindB2(i)*log(10)/10);          % dB单位信噪比化成一般式信噪比
  theo_err_prb(i)=Qfunct(sqrt(2*SNR));      % 调用Q函数计算理论值
end;
%**************************************************************************
% *************绘制相关曲线************************************************
colordef black
h1=semilogy(SNRindB1,smld_bit_err_prb,'co');       %绘制比特误码率曲线
hold on
h2=semilogy(SNRindB2,theo_err_prb,'c');                %绘制理论比特误码率曲线
hold on
% h3=semilogy(SNRindB1,smld_symbol_err_prb,'bo');      %绘制理论比特误符号率曲线
legend('QPSK仿真误码率','QPSK理论比特误码率');
xlabel('E/N(dB)')
ylabel('Pe')
title('QPSK在AWGN信道中的误码性能 ')
colodef white;
3 在AWGN信道中QPSK的误码性能
由前面的调制解调原理,利用Matlab,对理论进行研究。并将理论值与仿真值进行对比,分析数学理想模型建立的合理性,首先由MATLAB程序产生信号源,再模拟AWGN平坦衰落信道中叠加加性高斯白噪声,在接收端对接收信号进行检测与估值,并对信号进行判决恢复原始信号。得到仿真比特误码率和理论比特误码率如下,并给出了仿真符号误码率的曲线以供参考:
    由上面的图可以看到,仿真比特误码率和理论比特误码率在前面部分符合的非常好,两者几乎没有什么差别,而在信噪比大概为7.5的地方,两者开始有了明显的偏移。由此说明模型建立的还是比较理想的。
4 我的收获
  这个实验主要是关于QPSK的,介绍了QPSK的原理,作用,调制解调方法,并对QPSK在AWGN信道中的误码性能进行了仿真,并与理论值进行比较,验证了模型建立的合理性。在用软件仿真时,我改了好几次,可始终不能正常运行,总是出现一些错误,后来仔细考虑后,发现m文件目录不在同一个文件夹下,致使有些文件无法不能读到,一直报错。后来改了目的地址,这个问题得到了解决,在这次实验中,类似的问题还出现了好几次,都想办法克服。这是因为软件使用不熟练的缘故,要多使用软件,做到出现问题能够迅速准确地解决,当然,没有问题最好。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表