通信系统设计与仿真实践 课题设计报告 题 目 QPSK系统的误码率和星座图仿真 专 业 通信工程 班 级 学 号 学生姓名 指导教师 目 录
一、课题内容………………………………………..….……...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 0 0 1 1
b 0 1 1 0
载波相位φ
A方式 0° 90° 180° 270°
B方式 45° 135° 225° 315°
由于四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成,故两者的功率谱密度分布规律相同。
2. 四相绝对移相键控(QPSK)的调制基本方法
下面我们来讨论QPSK信号的产生与解调。QPSK信号的产生方法与2PSK信号一样,也可以分为调相法和相位选择法。
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
(1) 调相法
用调相法产生QPSK信号的组成方框图如下所示。
图4 QPSK信号的组成方框图
设两个序列中的二进制数字分别为a和b,每一对ab称为一个双比特码元。并设经过串并变换后上支路为a,下支路为b。双极性的a和b脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制。
b(0) (0,0)(1,0)a(0)a(1)(0,1)b(1)(1,1)图5 QPSK信号相位编码星座图
表2 QPSK信号相位编码逻辑关系
a b
A路平衡调制器输出 B路平衡调制器输出
合成相位
1 1° 0° 270° 315°
0 1° 180° 270° 225°
0 0° 180° 90° 135°
1 0° 0° 90° 45°
(2) 相位选择法
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
用相位选择法产生QPSK信号的组成方框图如下所示。
串/并变换 逻辑选相电路 45°135°225°315°带通滤波器 输出
四相载波发生器 图6 相位选择法产生QPSK信号方框图
六、详细设计与编码
1. 设计方案
如图7所示。
根据信噪比产生高斯噪声数据图7 系统设计方案实现框图
A产生二进制数据星座图映射BF加法运算C判决D2. 编程
星座图逆映射E工具的
选择
本
误比特率统计误码率统计仿真所
用的工具软件是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;
m4=find(angle(receive)>-pi/2&angle(receive)<=0); %解调 remessage(1,m4)=1-1i; redata(m4,1)=1; redata(m4,2)=0;
[resum,ratio1]=biterr(data,redata);
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
Pb(EbNO)=resum/(nsymbol*2); [total,ratio2]=symerr(data,redata); Pe(EbNO)=total/nsymbol; end
scatterplot(receive) title('接收信号的星座图')
Pbtho=qfunc(sqrt(2*snr)); %理论误比特率 Petho=Pbtho*log2(M); %理论误符号率 figure(3)
semilogy(SNR,Pe,'-ro',SNR,Petho,'-g*',SNR,Pb,'-bv',SNR,Pbtho,'-g+') legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率')
title('QPSK载波调制信号在AWGN信道下的性能') xlabel('信噪比/dB');ylabel('误比特率和误符号率') grid on
4. 运行结果及分析
(1)、系统的星座图
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
(2)、接收信号的星座图
(3)、QPSK载波调制信号在AWGN信道下的性能
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
可见对应于方形QPSK的仿真,当信噪比小于等于8dB时,仿真值可以很好的逼近理论值,但当信噪比大于9dB时,仿真值与理论值略有偏差。
七、设计心得
在本次课程设计中,我收获很多,学会了应用MATLAB来处理问题,加深了对通信原理中部分公式和概念的理解。实验过程中也遇到了不少问题,在星座图映射上,一开始将00,01,10,11看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分析和计算的过程中花了很多时间;实验过程中,学会了使用find函数来代替for循环的功能,从而使程序运行更加快,大大加快了实验的进度。通过本次MATLAB的实践,应该加强MATLAB在各个学科的应用,学会用MATLAB来处理实际问题。
----完整版学习资料分享----
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
八、参考文献
1. Bernad Sklar[美].数字通信——
----完整版学习资料分享----
因篇幅问题不能全部显示,请点此查看更多更全内容