QPSK系统的误码率和星座图仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、课题内容 (1)
二、设计目的 (1)
三、设计要求 (1)
四、实验条件 (1)
五、系统设计 (2)
六、详细设计与编码 (4)
1. 设计方案 (4)
2. 编程工具的选择 (4)
3. 程序代码 (5)
4. 运行结果及分析 (8)
七、设计心得 (9)
八、参考文献 (10)
一、课题内容
基于MATLAB或C语言模拟仿真OFDM通信系统。
主要功能:
1、搭建基带OFDM系统仿真平台,实现OFDM信号体制与解调;
2、能够画出输入数据与输出数据的星座图;
3、能在不同信噪比信道的情况下,对信号进行误码分析。
3、能够和理论误码率公式比较
二、设计目的
1、综合应用《Matlab原理及应用》、《信号与系统》、《通信原理》等多门课程知识,使学生建立通信系统的整体概念;
2、培养学生系统设计与系统开发的思想;
3、培养学生利用软件进行通信仿真的能力。
三、设计要求
1、每人独立完成不同子系统的详细功能;
2、对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图;
3、提出仿真方案;
4、完成仿真软件的编制;
5、仿真软件的演示;
6、提交详细的设计报告。
四、实验条件
计算机、Matlab软件
五、系统设计
1. 四相绝对移相键控(QPSK)的调制基本理论
四相绝对移相键控利用载波的四种不同相位来表征数字信息。由于每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。我们把组成双比特码元的前一信息比特用a代表,后一信息比特用b代表。双比特码元中两个信息比特ab通常是按格雷码(即反射码)排列的,它与载波相位的关系如表1所列。
表1 双比特码元与载波相位的关系
双比特码元载波相位φ
a b A方式B方式
0 0 0°45°
0 1 90°135°
1 1 180°225°
1 0 270°315°
由于四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成,故两者的功率谱密度分布规律相同。
2. 四相绝对移相键控(QPSK)的调制基本方法
下面我们来讨论QPSK信号的产生与解调。QPSK信号的产生方法与2PSK信号一样,也可以分为调相法和相位选择法。
(1) 调相法
用调相法产生QPSK 信号的组成方框图如下所示。
图4 QPSK 信号的组成方框图
设两个序列中的二进制数字分别为a 和b ,每一对ab 称为一个双比特码元。并设经过串并变换后上支路为a,下支路为b 。双极性的a 和b 脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制。
a(1)
(1,0)
b(0)
(0,0)
a(0)
b(1)
(0,1)
(1,1)
图5 QPSK 信号相位编码星座图
表2 QPSK 信号相位编码逻辑关系
a 1 0 0 1 b
1° 1° 0°
0° A 路平衡调制器输出 0° 180° 180° 0° B 路平衡调制器输出
270° 270° 90° 90° 合成相位
315°
225°
135°
45°
(2) 相位选择法
用相位选择法产生QPSK信号的组成方框图如下所示。
图6 相位选择法产生QPSK信号方框图
六、详细设计与编码
1. 设计方案
如图7所示。
图7 系统设计方案实现框图
2. 编程工具的选择
本仿真所用的工具软件是MATLAB。该软件的功能强大,最擅长矩阵处理,并在系统仿真、数字信号处理、图形图像分析、数理统计、通信及自动控制领域得到广泛应用,特别是MATLAB中Simulink在通
信上的应用,它可以用来仿真完整的通信系统,同时MATLAB内部有许多与通信有关的函数,这样程序编写方便,也便于观察波形特征。
3. 程序代码
clear
M=4;
SNR=(0:1:10); %信噪比
nsymbol=1000000;
data= randsrc(nsymbol,2,[0 1]);
[a1,b1]=find(data(:,1)==0&data(:,2)==0);
message(a1)=-1-1i; %225°
[a2,b2]=find(data(:,1)==0&data(:,2)==1);
message(a2)=-1+1i; %135°
[a3,b3]=find(data(:,1)==1&data(:,2)==0);
message(a3)=1-1i; %275°
[a4,b4]=find(data(:,1)==1&data(:,2)==1);
message(a4)=1+1i; %45°
scatterplot(message)
title('系统的星座图')
Es=norm(message).^2/nsymbol; %求方形QPSK系统每个符号的平均功率
Eb=Es/(log2(M)); %求方形QPSK系统每比特的平均功率
snr=10.^(SNR/10); %信噪比转化为线性值
NO=Eb./snr;
sigma=sqrt(NO/2);
for EbNO=1:length(sigma)
n1=sigma(EbNO)*randn(1,nsymbol);
n2=sigma(EbNO)*randn(1,nsymbol);
receive=message+n1+n2*1i;
resum=0;
total=0;
m1=find(angle(receive)<=pi/2&angle(receive)>0); %解调 remessage(1,m1)=1+1i;
redata(m1,1)=1;
redata(m1,2)=1;
m2=find(angle(receive)>pi/2&angle(receive)<=pi); %解调 remessage(1,m2)=-1+1i;
redata(m2,1)=0;
redata(m2,2)=1;
m3=find(angle(receive)>-pi&angle(receive)<=-pi/2); %解调
remessage(1,m3)=-1-1i;
redata(m3,1)=0;
redata(m3,2)=0;