QPSK调制解调技术的设计与仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************
实践教学
*******************
Xxxxx大学
计算机与通信学院
2010年春季学期
计算机通信课程设计
题目:QPSK调制解调技术的设计与仿真
专业班级:通信工程
姓名:lwdickey
学号:
指导教师:sir
成绩:
摘要
在数字信号的调制方式中QPSK是目前最常用的一种数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。
调制技术是通信领域里非常重要的环节,一种好的调制技术不仅可以节约频谱资源而且可以提供良好的通信性能。
QPSK调制是一种具有较高频带利用率和良好的抗噪声性能的调制方式,在数字移动通信中已经得到了广泛的应用。
本次设计在理解QPSK调制解调原理的基础上应用MATLAB语言来完成仿真,仿真出了QPSK的调制以及解调的仿真图,包括已调信号的波形,解调后的信号波形,眼图和误码率。
在仿真的基础上分析比较了各种调制方法的性能,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。
关键字:QPSK ;调制解调;MATLAB ;分析与仿真
目录
摘要 (1)
前言 (1)
1 绪论 (2)
1.1通信技术的历史和发展 (2)
1.1.1通信的概念 (2)
1.1.2通信的发展史简介 (2)
1.2数字调制的发展现状和趋势 (3)
2 QPSK调制解调的基本原理设计 (4)
2.12PSK数字调制原理 (4)
2.24PSK的调制和解调 (5)
3 QPSK调制解调系统仿真 (10)
3.1 MATLAB软件的介绍 (10)
3.22PSK调制解调系统的仿真 (11)
3.34PSK调制解调系统的仿真 (12)
3.4利用MATLAB研究4PSK信号 (13)
总结 (16)
参考文献 (17)
致谢 (18)
附录 (19)
前言
信息化的社会,数字技术快速发展,数字器件也广泛的利用,数字信号的处理技术也越来越重要。
进入20世纪以来,随着晶体管、集成电路的出现与普及、无线通信迅速发展。
特别是在20世纪后半叶,随着人造地球卫星的发射,大规模集成电路、电子计算机和光导纤维等现代技术成果的问世,通信技术在不同方向都取得了巨大的成功。
随着技术的进步,特别是超大规模集成电路和数字信号处理技术的发展,使得复杂的电路设计得以用少量的几块即成电路模块实现,有些硬件电路的功能还可以用软件代替实现。
因此使得一些较复杂的调制技术能够容易地实现并投入使用。
这方面的条件使得新的更复杂的调制体制迅速地不断涌现。
QPSK的调制与解调具有一系列独特的优点,已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。
QPSK数字解调包括:模数转换、抽取或插值、匹配滤波、时钟和载波恢复等。
根据所处理基带信号的进制不同,分为二进制和多进制,多进制与二进制相比较,其频带利用率更高。
现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;这就要借助于功能强大的计算机辅助分析设计技术和工具才能实现。
MATLAB完成仿真,它由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
本设计主要研究数字通信过程中的调制解调过程。
从原理上说受调载波可以是任意的,只要已调信号适合心动的传输就可以了,但是实际上,大多数通信系统中,都选择正弦信号作为载波。
这是因为正弦信号简单,便于产生和接收。
1 绪论
1.1通信技术的历史和发展
1.1.1通信的概念
通信就是克服距离上的障碍,从一地向另一地传递和交换消息。
消息是信息源所产生的,是信息的物理表现,例如,语音、文字、数据、图形和图像等都是消息(Message)。
消息由模拟消息(如语音、图像等)以及数字消息(如数据、文字等)之分。
所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。
所以,信号(Signal)是传输消息的手段,信号是消息的物资载体。
相应的信号可以分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如机、电视摄像机输出的信号就是模拟信号。
数字信号的自变量可以是连续的或离散的,但幅度是离散的,如计算机等各种数字终端设备输出的信号就是数字信号。
数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。
因而,数字通信更能适应对通信技术的高要求。
1.1.2通信的发展史简介
远古时代,远距离的传递消息是以书信的形式来完成的,这种通信方式明显具有传递时间长的缺点。
为了在尽量短的时间传递尽量多的消息,人们不断地尝试所能找到的各种最新技术手段。
1837年发明的莫尔斯电磁式电报标志着电通信的开始。
之后,利用电进行通信的研究取得了长足的进步。
1866年利用海底电缆实现了跨大西洋的越洋电报通信。
1876年贝耳发明了,利用电信号实现了语音信号的有线传递,使信息的传递变得既迅速又准确,这标志着模拟通信的开始,由于它比电报更便于交流使用,所以直到20世纪前半叶这种采用模拟技术的通信技术比电报得到了更为迅速和广泛的发展。
1937年瑞威斯发明的脉冲编码调制标志数字通信的开始。
20世纪60年代以后集成电路、电子计算机的出现,使得数字通信迅速发展。
在70年代末在全球发展起来的模拟移动在90年代中期被数字移动所代替,现有的模拟电视也正在被数字电视所代替。
1.2数字调制的发展现状和趋势
进入20世纪以来,随着晶体管、集成电路的出现与普及、无线通信迅速发展。
特别是在20世纪后半叶,随着人造地球卫星的发射,大规模集成电路、电子计算机和光导纤维等现代技术成果的问世,通信技术在以下几个不同方向都取得了巨大的成功。
(1)微波中继通信使长距离、大容量的通信成为了现实。
(2)移动通信和卫星通信的出现,使人们随时随地可通信的愿望可以实现。
(3)光导纤维的出现更是将通信容量提高到了以前无法想象的地步。
(4)电子计算机的出现将通信技术推上了更高的层次,借助现代电信网和计算机的融合,人们将世界变成了地球村。
(5)微电子技术的发展,使通信终端的体积越来越小,成本越来越低,围越来越广。
例如2003年我国的移动用户首次超过了固定用户。
根据国家信息产业部的统计数据,到2005年底移动用户近4亿。
随着现代电子技术的发展,通信技术正向着数字化、网络化、智能化和宽带化的方向发展。
随着科学技术的进步,人们对通信的要求越来越高,各种技术会不断地应用于通信领域,各种新的通信业务将不断地被开发出来。
到那时人们的生活将越来越离不开通信。
本文中提到的调制方式大都是可以实用的,已经采用多年,并且至今仍然被采用着。
但是,这些调制方法还不是很完善,有许多值得改进之处。
因此,在这些基本的数字调制方法基础上,多年来不断研究出新的或改进的调制方法。
实际上,在基本的和先进的调制方法之间并没有明确的界限。
这些方法都是不间断地发展出来的,后来者自然比原有者更先进。
此外,随着技术的进步,特别是超大规模集成电路和数字信号处理技术的发展,使得复杂的电路设计得以用少量的几块即成电路模块实现,有些硬件电路的功能还可以用软件代替实现。
因此使得一些较复杂的调制技术能够容易地实现并投入使用。
这方面的条件使得新的更复杂的调制体制迅速地不断涌现。
目前,改进的数字调制方式主要有偏置正交相移键控, /4正交差分相移键控,最小频移键控,高斯最小频移键控,正交频分复用,网格编码调制等,这里对最小频移键控作一介绍。
2 QPSK调制解调的基本原理设计
2.1 2PSK数字调制原理
2PSK信号用载波相位的变化来表征被传输信息的状态,通常规定0相位载波和π相位载波分别表示传“1”和传“0”。
2PSK码元序列的波形与载频和码元持续时间之间的关系有关。
当一个码元中包含有整数个载波周期时,在相邻码元的边界处波形是不连续的,或者说相位是不连续的。
当一个码元中包含的载波周期数比整数个周期多半个周期时,则相位连续。
当载波的初始相位差90度时,即余弦波改为正弦波时,结果类似。
以上说明,相邻码元的相位是否连续与相邻码元的初始相位是否相同不可混为一谈。
只有当一个码元中包含有整数个载波周期时,相邻码元边界处的相位跳变才是由调制引起的相位变化[16]。
2PSK信号的产生方法主要有两种。
第一种叫相乘法,是用二进制基带不归零矩形脉冲信号与载波相乘,得到相位反相的两种码元。
第二种方法叫选择法,是用此基带信号控制一个开关电路,以选择输入信号,开关电路的输入信号是相位相差 的同频载波。
这两种方法的复杂程度差不多,并且都可以用数字信号处理器实现。
图1 2PSK及2DPSK的调制方框
2.24PSK的调制和解调
四进制绝对相移键控(4PSK)直接利用载波的四种不同相位来表示数字信息。
如下
01
270o
图2 4PSK信号相位φn矢量图
由于每一种相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。
两个二进制码元中的前一比特用a来表示,后一比特用b表示,则双比特ab与载波相位的关系入下图:
表1 双比特ab与载波相位的关系
四进制信号可等效为两个正交载波进行双边带调制所得信号之和。
这样,就把数字调相和线性调制联系起来,为四相波形的产生提供依据。
4PSK信号调制和解调
(1)4PSK调制原理:
4PSK的调制方法有正交调制方式(双路二相调制合成法或直接调相法)、相位选择法、插入脉冲法等。
这里我们采用正交调制方式。
4PSK的正交调制原理如图:
它可以看成是由两个载波正交的2PSK调制器构成的。
图中串/并变换器将输入的二进制序列分为速度减半的两个并行双极性序列a和b(a,b码元在事件上是对齐的),再分别进行极性变换,把极性码变为双极性码(0→-1,1→+1)然后分别调制到cosωc t 和sinωc t两个载波上,两路相乘器输出的信号是相互正交的抑制载波的双边带调制(DSB)信号,其相位与各路码元的极性有关,分别由a和b码元决定。
经相加电路
后输出两路的合成波形,即是4PSK信号。
图中两个乘法器,其中一个用于产生0o与180o两种相位状态,另一个用于产生90o与270o两种相位状态,相加后就可以得到45o,135o,225o,和315o四种相位
(2)4PSK解调原理
4PSK信号是两个载波正交的2PSK信号的合成。
所以,可以仿照2PSK相干检测法,用两个正交的相干载波分别检测两个分量a和b,然后还原成二进制双比特串行数字信号。
此法称作极性比较法(相干解调加码反变换器方式或相干正交解调发)
在不考虑噪声及传输畸变时,接收机输入的4PSK信元可表示为
y i(t)=A cos(ωc t+φn)
表2 抽样判决器的判决准则
判决器是按极性来判决的。
即正抽样值判为1,负抽样值判为0.两路抽样判决器输出a、b,经并/串变换器就可将并行数据恢复成串行数据。
3 QPSK调制解调系统仿真
3.1 MATLAB软件的介绍
MATLAB 软件是美国Math works 公司的产品,MATLAB 是英文MATrix LABoratory(矩阵实验室)的缩写。
MATLAB软件系列产品是一套高效强大的工程技术数值运算和系统仿真软件,广泛应用于当今的航空航天、汽车制造、半导体制造、电子通信、医学研究、财经研究和高等教育等领域,被誉为“巨人肩膀上的工具”。
研发人员借助MATLAB软件能迅速测试设想构想,综合评测系统性能,快速设计更好方案来确保更高技术要求。
同时MATLAB也是国家教委重点提倡的一种计算工具。
MATLAB主要由C语言编写而成,采用LAPACK 为底层支持软件包。
MATLAB的编程非常简单,它有着比其他任何计算机高级语言更高的编程效率、更好的代码可读性和移植性,以致被誉为“第四代”计算机语言,MATLAB是所有MathWorks公司产品的数值分析和图形基础环境。
此外MATLAB 还拥有强大的2D和3D甚至动态图形的绘制功能,这样用户可以更直观、更迅速的进行多种算法的比较,从中找出最好的方案。
从通信系统分析与设计、滤波器设计、信号处理、小波分析、神经网络到控制系统、模糊控制等方面来看,MATLAB提供了大量的面向专业领域的工具箱。
通过工具箱,以往需要复杂编程的算法开发任务往往只需一个函数就能实现,而且工具箱是开放的可扩展集,用户可以查看或修改其中的算法,甚至开发自己的算法。
目前,MATLAB已经广泛地应用于工程设计的各个领域,如电子、通信等领域;它已成为国际上最流行的计算机仿真软件设计工具。
现在的MATLAB不再仅仅是一个矩阵实验室,而是一种实用的、功能强大的、不断更新的高级计算机编程语言。
现在从电子通信、自动控制图形分析处理到航天工业、汽车工业,甚至是财务工程。
MATLAB都凭借其强大的功能获得了极大的用武之地。
广大学生可以使用MATLAB来帮助进行信号处理、通信原理、线性系统、自动控制等课程的学习;科研工作者可以使用MATLAB进行理论研究和算法开发;工程师可以使用MATLAB进行系统级的设计与仿真。
系统方框图
图5 运行结果如下:
图6
系统框图
图7 运行结果如下:
3.4利用MATLAB研究4PSK信号
系统方框图:
图8 运行结果如下:
图9
实际的传输系统不可能完全的满足无码间串扰传输条件,评价传输系统的一种定性而且简单的方法就是观察信号通过加有噪声的信道后的眼图上右图是信号没有通过任何的系统的眼图,下面是信号通过信噪比为26dB的高斯白噪声后的眼图。
最下面是信号通过信噪比为16dB后的眼图。
通过对比可以知道信噪比越大,信号的眼图越清晰,信噪比越小,眼图越模糊,没有噪声的话,眼图最清晰,近似线状。
眼图不仅反映信噪比对信号的影响,而且反映信号之间串扰的大小。
眼图中改变参数设置,可以发现最佳判决时刻的改变。
图10
图11
图12
总结
在通信和信息传输系统、工业自动化或电子工程技术中,调制和解调应用最为广泛。
本设计研究了2PSK和4PSK的调制和解调原理,以及利用MATLAB对其调制和解调进行了编程和编译仿真,得到的结论和理论上是一致的。
简单而且快捷。
同时利用MATLAB中的SIMYULINK对2PSK和4PSK的通信系统进行了仿真研究了其传输的特性,及传输中噪声对系统的影响。
而调制和解调的基本原理是利用信号与系统的频域分析和傅里叶变换的基本性质,将信号的频谱进行搬移,使之满足一定需要,从而完成信号的传输或处理。
调制与解调又分模拟和数字两种,在现代通信中,调制器的载波信号几乎都是正弦信号,数字基带信号通过调制器改变正弦载波信号的幅度、频率或相位,产生幅度键控(ASK)、相位键控(PSK)、频率键控(FSK)信号,或同时改变正弦载波信号的几个参数,产生复合调制信号。
本课程设计主要介绍基于Matlab对2PSK 和4PSK进制的调制仿真实现.
本研究具有可对比性,对比2PSK和4PSK的通信原理和星座图可发现其中的不同点,但是频谱图近似相同。
通信道的信噪比设置越大信噪传输越理想,与理论上是相符合的。
2PSK和4PSK的传输系统也具有对比性,本研究在文中列出了仿真过程中每个元件的仿真参数的设置。
比较其中不同点我们发现其中参数基本相似。
也说明了他们的传输原理基本相同,都利用了相位的不同表示了不同的码元传输。
参考文献
[1]《电子技术实验教程[M]》王紫婷西南交大 2001
[2]《通信原理》王福昌熊兆飞黄本雄清华大学 2006
[3]《MATLAB仿真技术与应用教程》钟麟王峰国防工业 2003
[4]《MATLAB通信仿真与技术应用》敏魏玲国防工业 2001
[5]《Simulink通信仿真开发手册》屹吴磊国防工业 2004
[6]《数字通信原理与技术》(第二版)王兴亮电子科技大学 2000
[8]《徐炳祥等通信原理(第5版) 》樊昌信国防工业 2005
[9]《精通MATLAB6.5版》志涌等航空航天大学 2003
[10]《MATLAB通信仿真及应用实例祥》邓华等解人民邮电 2003
通过本次计算机通信课程设计,让我在除了课本的知识之外的知识有了更好的理解,对QPSK调制解调的工作原理有了更好的理解,在设计之前,收集了很多的材料,但当真正深入设计时,却也遇到了诸多的问题,让我体会到了设计的要求在于系统性,可行性,准确性,诸多问题的出现给我们的设计带来了难度,也同时是更大的一次挑战,最终,在老师以及同学的帮助下,克服了种种困难,顺利的完成了本次计算机通信的课程设计,在此,首先要感谢学校安排此次课程设计,让我有机会对本次课程设计能够深入理解和设计,再次感谢老师的细心指导和改正,还有同组同学的相互团结和帮助,使我完成了本次计算机通信课程设计,使我在求学的道路上有了更多方面知识的获得。
设计过程中查阅了大量的有关QPSK调制解调设计的书籍,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合的必要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
再次感谢学校,感谢老师,感谢同学。
MATLAB程序
%QPSK simulation with Gray coding and simple Rayleigh (no LOS) multipath and AWGN added
%Run from editor debug(F5)
%JC-7/1/08
%The purpose of this m-file is to show a baseband simulated version of QPSK with
%Gray coding( Rayleigh multipath and AWGN added) which may give valid results %(still trying to figure out if this program is correct-multipath so subjective)
%when compared to theoritical/simulated AWGN MPSK analysis SER and BER.
%The simulation assumes a single channel(no diversity or FEC codes other than Gray)
%perfect system with perfect sync and no intersymbol interference. The program contains
%no Root Raised Cosine or Raised Cosine filters as they would just add delay.
I hope
%it will be useful to others to play with and give a basic understanding of the problems
%encountered in the channel with various types of multipath.
%I have provided comments, notes and references for review. You can also %download the file sim_qpskgray.m under JC file for BER and SER simulation %only in AWGN channel. What this all proves is that you need at least 17 dB %of fade margin at 10-3 BER with Rayleigh multipath when comparing only with AWGN
%at SNR of 7 to 8dB. Of course you can lower this with antenna diversity, FEC codes,etc
%or possibly with DSSS with psuedo random codes If you have the communications toolbox
%you can make comparisons with what it gives in it's plots(see references) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%
%TRANSMITTER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%
clear
%randn('state',0);%keeps bits the same on reruns
nr_data_bits=10000;% 0's and 1's, keep even number-Takes ~1 minute for a run of 1 million
%64000 allows bits and complex values to be shown in array editor
nr_symbols=nr_data_bits/2;
b_data = (randn(1, nr_data_bits) > .5);%random 0's and 1's
b = (b_data);
% Map the bits to be transmitted into QPSK symbols using Gray coding. The % resulting QPSK symbol is complex-valued, where one of the two bits in each % QPSK symbol affects the real part (I channel) of the symbol and the other % bit the imaginary part (Q channel). Each part is subsequently
% modulated to form the complex-valued QPSK symbol.
%
% The Gray mapping resulting from the two branches are shown where
% one symbol error corresponds to one bit error going counterclockwise.
% imaginary part (Q channel)
% ^
% |
% 10 x | x 00 (odd bit, even bit)
% |
% -------+-------> real part (I channel)
% |
% 11 x | x 01
% |
% Input:
% b = bits {0, 1} to be mapped into QPSK symbols
%
% Output:
% d = complex-valued QPSK symbols 0.70711 + 0.70711i, etc
d=zeros(1,length(b)/2);
%definition of the QPSK symbols using Gray coding.
for n=1:length(b)/2
p=b(2*n);
imp=b(2*n-1);
if (imp==0)&&(p==0)
d(n)=exp(j*pi/4);%45 degrees
end
if (imp==1)&&(p==0)
d(n)=exp(j*3*pi/4);% degrees
end
if (imp==1)&&(p==1)
d(n)=exp(j*5*pi/4);%225 degrees
end
if (imp==0)&&(p==1)
d(n)=exp(j*7*pi/4);%315 degrees
end
end
qpsk=d;
SNR=0:30;%change SNR values
BER1=[];
SNR1=[];
SER=[];
SER1=[];
sigma1=[];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%
%Rayleigh multipath/AWGN(Additive White Gaussian Noise) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%
for SNR=0:length(SNR);%loop over SNR-change SNR values (0,5,10 etc dB) sigma = sqrt(10.0^(-SNR/10.0));
sigma=sigma/2;%Required a division by 2 to get close to exact solutions(Notes)-WHY?
%Is dividing by two(2) legitimate?
%sigma1=[sigma1 sigma];
%add Rayleigh multipath(no LOS) to signal(qpsk)
x=randn(1,nr_symbols);
y=randn(1,nr_symbols);
ray=sqrt(0.5*(x.^2+y.^2));%variance=0.5-Tracks theoritical PDF closely
mpqpsk=qpsk.*ray;
%add noise to QPSK Gray coded signals with multipath
mpsnqpsk=(real(mpqpsk)+sigma.*randn(size(mpqpsk)))
+i.*(imag(mpqpsk)+sigma.*randn(size(mpqpsk))); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%
%Receiver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%
r=mpsnqpsk;%received signal plus noise and multipath
%Detector-When Gray coding is configured as shown, the detection process %becomes fairly simple as shown. A system without Gray coding requires a much %more complex algorithim detection method
bhat=[real(r)<0;imag(r)<0];%detector
bhat=bhat(:)';
bhat1=bhat;%0's and 1's
ne=sum(b~=bhat1);%number of errors
BER=ne/nr_data_bits;
SER=ne/nr_symbols;%consider this to be Ps=log2(4)*Pb=2*Pb
SER1=[SER1 SER];
BER1=[BER1 BER];
SNR1=[SNR1 SNR];
end
%Notes: Theoritical QPSK EXACT SOLUTION for several SNR=Eb/No points on BER/SER plot
%Assuming Gray coding and AWGN
%Pb=Q(sqrt(2SNRbit))
%Ps=2Q(sqrt(2SNRbit))[1-.5Q(sqrt(2SNRbit))]
%SNR=7dB
%SNRbit=10^(7/10)=5.0118 get ratio
%Pb=Q(sqrt(2*SNRbit))=Q(sqrt(10.0237))=7.7116e-4 (bit error rate)
%where Q=.5*erfc(sqrt(10.0237)/1.414)
%Ps=2*Q-Q^2=2*(7.7116e-4)-(7.7116e-4)^2=1.5e-3 (symbol error rate)
%SNR=9dB
%SNRbit=10^(9/10)=7.943 get ratio
%Pb=Q(sqrt(2*SNRbit))=Q(sqrt(15.866))=3.37e-5 (bit error rate)
%Ps=2*Q-Q^2=2*(3.37e-5)-(3.37e-5)^2=6.74e-5 (symbol error rate)
%0,1,2,3,4,5,6,8,10,11,12 You can do the rest of these with a loop and hold %or hand plot on "Simulation of BER/SER for QPSK with Gray coding
%(Rayleigh multipath and AWGN) graph 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%
%Plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%
figure(1);
plot(d,'o');%plot constellation without noise
axis([-2 2 -2 2]);
grid on;
xlabel('real'); ylabel('imag');
title('QPSK constellation');
figure(2);
semilogy(SNR1,BER1,'*',SNR1,SER1,'o');
grid on;
xlabel('SNR=Eb/No(dB)'); ylabel('BER/SER');
title('Simulation of BER/SER for QPSK with Gray coding( Rayleigh multipath and AWGN)');
legend('BER-simulated','SER-simulated');
figure(3)
plot(real(qpsk));
grid on;
axis([1 200 -2 2]);
title('QPSK symbols');
xlabel('symbols');ylabel('Amplitude');
figure(4)
plot(20*log10(abs(ray)));
grid on;
axis([1 200 -30 10]);
title('Rayleigh Fading Envelope(variance=0.5)');
xlabel('symbols');ylabel('Amplitude/RMS(dB)');
%References
%This website shows Matlab code for various fading channels that may be helpful %.urel.feec.vutbr.cz//RADIOENG/fulltexts/2003/03_04_12_16.pdf or
%search the web for "Mobile Radio Channels Modeling in Matlab-Nikolay KOSTOV". If
%you go through and understand this paper, I'm sure it will be helpful. I even learned
%how to use -inf.
%PROAKIS, Digital Communications 4th ed. (chapter 14)14.4.2 Fading Multiphase Signals。