《QAM调制与解调的MATLAB实现及调制性能分析(共15页).doc》由会员分享,可在线阅读,更多相关《QAM调制与解调的MATLAB实现及调制性能分析(共15页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上2009级通信工程专业通信原理课程设计通信原理课程设计报告书课题名称16QAM调制与解调的MATLAB实现及调制性能分析姓 名学 号 学 院通信与电子工程学院专 业通信工程指导教师李梦醒2012年 01 月 01日一、设计任务及要求:设计任务:利用MATLAB设计一个16QAM调制与解调系统,并对其进行性能分析。要 求: 1. 设计一个16QAM调制与解调系统。2. 设计程序时必须使得程序尽可能的简单。3. 利用MATLAB进行程序编写并对系统进行仿真分析。指导教师签名: 20 年 月 日 二、指导教师评语:指导教师签名: 2010 年 月 日 三、成绩 验收盖章 2
2、010年 月 日 16QAM调制与解调的MATLAB实现及调制性能分析1 设计目的(1) 掌握16QAM调制与解调的原理。(2) 掌握星座图的原理并能熟悉星座图的应用。(3) 熟悉并掌握MATLAB的使用方法。(4) 通过对16QAM调制性能的分析了解16QAM调制相对于其它调制方式的优缺点。2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM)是一种振幅和相位联合键控。虽然MPSK和MDPSK等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。但是由图1可见,在MPSK体制中,随着 图 1 8PSK信号相位M的增大,相邻相位的距离
3、逐渐减小,使噪声容限随之减小,误码率难于保证。为了改善在M大时的噪声容限,发展出了QAM体制。在QAM体制中,信号的振幅和相位作为两个独立的参量同时受到调制。这种信号的一个码元可以表示为 (21)式中:k=整数;和分别可以取多个离散值。 式(21)可以展开为 (22)令 Xk = Akcosqk, Yk = -Aksinqk则式(21)变为 (23)和也是可以取多个离散的变量。从式(23)看出,可以看作是两个正交的振幅键控信号之和。在式(21)中,若qk值仅可以取p/4和-p/4,Ak值仅可以取+A和-A,则此QAM信号就成为QPSK信号,如图2所示:图2 4QAM信号矢量图所以,QPSK信号
4、就是一种最简单的QAM信号。有代表性的QAM信号是16进制的,记为16QAM,它的矢量图示于下图中:Ak图3 16QAM信号矢量图图中用黑点表示每个码元的位置,并且示出它是由两个正交矢量合成的。类似地,有64QAM和256QAM等QAM信号,如图4、图5所示。它们总称为MQAM 图4 64QAM信号矢量图 图5 256QAM信号矢量图调制。由于从其矢量图看像是星座,故又称星座调制。16QAM信号的产生方法主要有两种。第一种是正交调幅法,即用两路独立的正交4ASK信号叠加,形成16QAM信号,如图6所示。第二种方法是复合相AM图6 正交调幅法移法,它用两路独立的QPSK信号叠加,形成16QAM信
5、号,如图7所示。图中 AMAM图7 复合相移法虚线大圆上的4个大黑点表示一个QPSK信号矢量的位置。在这4个位置上可以叠加上第二个QPSK矢量,后者的位置用虚线小圆上的4个小黑点表示。3 设计过程 设计思路 由设计原理中可知MQAM调制又称为星座调制,故我们在设计16QAM调制系统时就可以星座图来进行编程。下面我们就借用如图8所示的星座图设计一个16QAM调制系统。图 8 16QAM星座在图中共有16个点,每个点用4个比特表示,代表调制以后的一个矢量位置(这个点拥有唯一的振幅与相位)。因此我们可以把横轴看作是实轴,纵轴看作虚轴。由于每个点与跟它相邻的四个点是等距,且设为2,则每个点都可用一个虚
6、数进行表示。例如点0000可用-1-j表示,这个虚数的模就是相当于16QAM信号的振幅,相角就相当于16QAM信号的相位。所以16QAM的调制过程就可以用如下语句进行描述:if A(1,b:c)=0 0 0 0 B(k)=-1-1i; elseif A(1,b:c)=0 0 0 1 B(k)=-3-1i; elseif A(1,b:c)=0 0 1 0 B(k)=-1-3i; elseif A(1,b:c)=0 0 1 1 B(k)=-3-3i; elseif A(1,b:c)=0 1 0 0 B(k)=1-1i; elseif A(1,b:c)=0 1 0 1 B(k)=1-3i; else
7、if A(1,b:c)=0 1 1 0 B(k)=3-1i; elseif A(1,b:c)=0 1 1 1 B(k)=3-3i; elseif A(1,b:c)=1 0 0 0 B(k)=-1+1i; elseif A(1,b:c)=1 0 0 1 B(k)=-1+3i; elseif A(1,b:c)=1 0 1 0 B(k)=-3+1i; elseif A(1,b:c)=1 0 1 1 B(k)=-3+3i; elseif A(1,b:c)=1 1 0 0 B(k)=1+1i; elseif A(1,b:c)=1 1 0 1 B(k)=3+1i; elseif A(1,b:c)=1 1
8、1 0 B(k)=1+3i; elseif A(1,b:c)=1 1 1 1 B(k)=3+3i; end当调制以后的信号经过信道加噪以后,我们必须对其进行解调。由于加噪了的缘故,调制以后的信号不再是原来的信号,而应该有不同。因此在解调时不能简单的将上述过程逆转,即不能由-1-j就判断为0000。而应该对虚数的实部和虚部设定一个范围后再进行判断。这个范围边界的选取原理我们可以借用量化的概念,取相邻虚数的实部的平均数和虚部的平均数。以下为16QAM解调过程的程序语句:if (real(D(n)-2)&(imag(D(n)-2) C(1,d:e)=0 0 1 1; elseif (real(D(n
9、)-2)&(imag(D(n)0) C(1,d:e)=0 0 0 1; elseif (real(D(n)-2)&(imag(D(n)2) C(1,d:e)=1 0 1 0; elseif (real(D(n)=2) C(1,d:e)=1 0 1 1; elseif (real(D(n)0)&(imag(D(n)-2) C(1,d:e)=0 0 1 0; elseif (real(D(n)0)&(imag(D(n)0) C(1,d:e)=0 0 0 0; elseif (real(D(n)0)&(imag(D(n)2) C(1,d:e)=1 0 0 0; elseif (real(D(n)=2
10、) C(1,d:e)=1 0 0 1; elseif (real(D(n)2)&(imag(D(n)-2) C(1,d:e)=0 1 0 1; elseif (real(D(n)2)&(imag(D(n)0) C(1,d:e)=0 1 0 0; elseif (real(D(n)2)&(imag(D(n)2) C(1,d:e)=1 1 0 0; elseif (real(D(n)=2) C(1,d:e)=1 1 1 0; elseif (real(D(n)=2)&(imag(D(n)=2)&(imag(D(n)=2)&(imag(D(n)=2)&(imag(D(n)=2) C(1,d:e)=1
11、 1 1 1;end 设计总程序clear all;close all;N=40000;K=4*N;%信息长度L=7*N;W=7*N/4;E=randsrc(1,K,0,1);%信源B=zeros(1,W);%16QAM调制后的信号C=zeros(1,L);%16QAM解调后的信号num=zeros(20,1);%误比特数ber=zeros(20,1);%误比特率for SNR=1:1:20%汉明编码A=encode(E,7,4,hamming/binary);%16QAM调制过程for k=1:W b=4*k-3; c=4*k; if A(1,b:c)=0 0 0 0 B(k)=-1-1i;
12、 elseif A(1,b:c)=0 0 0 1 B(k)=-3-1i; elseif A(1,b:c)=0 0 1 0 B(k)=-1-3i; elseif A(1,b:c)=0 0 1 1 B(k)=-3-3i; elseif A(1,b:c)=0 1 0 0 B(k)=1-1i; elseif A(1,b:c)=0 1 0 1 B(k)=1-3i; elseif A(1,b:c)=0 1 1 0 B(k)=3-1i; elseif A(1,b:c)=0 1 1 1 B(k)=3-3i; elseif A(1,b:c)=1 0 0 0 B(k)=-1+1i; elseif A(1,b:c)
13、=1 0 0 1 B(k)=-1+3i; elseif A(1,b:c)=1 0 1 0 B(k)=-3+1i; elseif A(1,b:c)=1 0 1 1 B(k)=-3+3i; elseif A(1,b:c)=1 1 0 0 B(k)=1+1i; elseif A(1,b:c)=1 1 0 1 B(k)=3+1i; elseif A(1,b:c)=1 1 1 0 B(k)=1+3i; elseif A(1,b:c)=1 1 1 1 B(k)=3+3i; endend%信道加噪 D=awgn(B,SNR);%16QAM解调过程for n=1:W d=4*n-3; e=4*n; if (r
14、eal(D(n)-2)&(imag(D(n)-2) C(1,d:e)=0 0 1 1; elseif (real(D(n)-2)&(imag(D(n)0) C(1,d:e)=0 0 0 1; elseif (real(D(n)-2)&(imag(D(n)2) C(1,d:e)=1 0 1 0; elseif (real(D(n)=2) C(1,d:e)=1 0 1 1; elseif (real(D(n)0)&(imag(D(n)-2) C(1,d:e)=0 0 1 0; elseif (real(D(n)0)&(imag(D(n)0) C(1,d:e)=0 0 0 0; elseif (re
15、al(D(n)0)&(imag(D(n)2) C(1,d:e)=1 0 0 0; elseif (real(D(n)=2) C(1,d:e)=1 0 0 1; elseif (real(D(n)2)&(imag(D(n)-2) C(1,d:e)=0 1 0 1; elseif (real(D(n)2)&(imag(D(n)0) C(1,d:e)=0 1 0 0; elseif (real(D(n)2)&(imag(D(n)2) C(1,d:e)=1 1 0 0; elseif (real(D(n)=2) C(1,d:e)=1 1 1 0; elseif (real(D(n)=2)&(imag(
16、D(n)=2)&(imag(D(n)=2)&(imag(D(n)=2)&(imag(D(n)=2) C(1,d:e)=1 1 1 1; endend%汉明译码F=decode(C,7,4,hamming/binary);%求误比特率num(SNR,1),ber(SNR,1)=biterr(F,E);end%误比特数图plot(num); figure%误比特率图plot(ber); 系统仿真结果图 图9 不同SNR下的误比特率4 系统性能分析 图10 三种调制方式在AWGN信道中的误码性能比较 分析:将QPSK,BPSK,16QAM,FSK四种调制方式,包括理论值与实际值,放在同一个图下,对他
17、们进行对比,可以很清晰地发现,QPSK在信噪比较小时,仿真值和理论值就有了偏离,且两者数值都比较大,当信噪比越来越大时,仿真值成直线几乎没变化,而实际值的Pe值逐渐变小,这种调制方式不是很可取;16QAM的性能跟QPSK相比,在低信噪比时,Pe值较大(还要大于QPSK的),随着信噪比逐渐增大,16QAM的Pe值逐渐减小,且理论值与实际值比较契合,在大信噪比情况下,误码性能略逊与QPSK的;FSK的理论值和实际值在各种信噪比下都比较契合,两者几乎没有大的差距,无论是在低,高信噪比下,性能都要比QPSK的优越一些;BPSK性能最优!理论值与实际值契合得比较理想,而在低,高信噪比情况下,Pe值都是最
18、低的,且随着信噪比逐渐增大,Pe实际值迅速减小,实现起来性能十分优越。因此在选择对误码性能要求较高的系统时,BPSK可作为首选,FSK次之,QPSK和16QAM再考虑实际情况选择,而在其他状态时,也可优先选择BPSK。5 主要仪器与设备 装有MATLAB的PC机一台。6 设计体会 课程设计做完了,总结一下,我想我还是收获了不少。从一开始选题时的不自信(怕自己做不出)到最后我比较圆满的完成这次课程设计,正好应征了一句老话:“功夫不负有心人”。选完题后,我并不知道该如何动手,所以我只有看书。通过看书,我掌握了16QAM调制与解调的原理并决定从星座图开始入手。从而最终将系统程序编写出来。除了掌握了课本上的知识外,通过这次课程设计我更加熟练了MATLAB的使用方法。从以前一看到MATLAB就郁闷到现在渐渐地喜欢上MATLAB编写程序,我知道了学习的乐趣。“功夫不负有心人”,即使你遇到了世上再难的事情,只要你有心,你就都会迎刃而解。 参考文献1 樊昌信,曹丽娜. 通信原理. 北京:国防工业出版社,1980:238-241. 2 别志松,别红霞. 系统与通信系统仿真. 北京:北京邮电大学出版社,2010.专心-专注-专业