当前位置:文档之家› QAM调制与解调的MATLAB实现及调制性能分析

QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称 16QAM 调制与解调 的MATLAB 实现及调制性能分析姓 名学 号 学 院 通信与电子工程学院专 业 通信工程 指导教师李梦醒2012年 01 月 01日※※※※※※※※※ ※※ ※※ ※※2009级通信工程专业通信原理课程设计16QAM调制与解调的MATLAB实现及调制性能分析1 设计目的(1)掌握16QAM调制与解调的原理。

(2)掌握星座图的原理并能熟悉星座图的应用。

(3)熟悉并掌握MATLAB的使用方法。

(4)通过对16QAM调制性能的分析了解16QAM调制相对于其它调制方式的优缺点。

2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM)是一种振幅和相位联合键控。

虽然MPSK和MDPSK等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。

但是由图1可见,在MPSK体制中,随着8/ 5π8/3π8/π8/7π8/9π8/11π8/13π8/15π图 1 8PSK 信号相位M 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。

为了改善在M 大时的噪声容限,发展出了QAM 体制。

在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。

这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。

式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cos k , Y k = -A k sink则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。

从式(2—3)看出,()k s t 可以看作是两个正交的振幅键控信号之和。

在式(2—1)中,若k 值仅可以取/4和-/4,A k 值仅可以取+A 和-A ,则此QAM 信号就成为QPSK 信号,如图2所示:图2 4QAM 信号矢量图所以,QPSK 信号就是一种最简单的QAM 信号。

有代表性的QAM 信号是16进制的,记为16QAM ,它的矢量图示于下图中:图3 16QAM 信号矢量图图中用黑点表示每个码元的位置,并且示出它是由两个正交矢量合成的。

类似地,有64QAM 和256QAM 等QAM 信号,如图4、图5所示。

它们总称为MQAM调制。

由于从其矢量图看像是星座,故又称星座调制。

16QAM 信号的产生方法主要有两种。

第一种是正交调幅法,即用两路独立的正交4ASK 信号叠加,形成16QAM 信号,如图6所示。

第二种方法是复合相图4 64QAM 信号矢量图图5 256QAM 信号矢量图图6 正交调幅法移法,它用两路独立的QPSK信号叠加,形成16QAM信号,如图7所示。

图中图7 复合相移法虚线大圆上的4个大黑点表示一个QPSK信号矢量的位置。

在这4个位置上可以叠加上第二个QPSK矢量,后者的位置用虚线小圆上的4个小黑点表示。

3设计过程设计思路由设计原理中可知MQAM调制又称为星座调制,故我们在设计16QAM调制系统时就可以星座图来进行编程。

下面我们就借用如图8所示的星座图设计一个16QAM调制系统。

图8 16QAM星座在图中共有16个点,每个点用4个比特表示,代表调制以后的一个矢量位置(这个点拥有唯一的振幅与相位)。

因此我们可以把横轴看作是实轴,纵轴看作虚轴。

由于每个点与跟它相邻的四个点是等距,且设为2,则每个点都可用一个虚数进行表示。

例如点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;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)==[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;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))<-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)&&(imag(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))<0)&&(imag(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)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 1 1];elseif (real(D(n))>=2)&&(imag(D(n))<0)C(1,d:e)=[0 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 1];elseif(real(D(n))>=2)&&(imag(D(n))>=2)C(1,d:e)=[1 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:Wb=4*k-3;c=4*k;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;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)==[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:Wd=4*n-3;e=4*n;if (real(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)&&(imag(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))<0)&&(imag(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)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 1 1];elseif (real(D(n))>=2)&&(imag(D(n))<0)C(1,d:e)=[0 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 1];elseif (real(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);系统仿真结果图0.0050.010.0150.020.0250.030.0350.04SNRPe图9 不同SNR下的误比特率4 系统性能分析图10 三种调制方式在AWGN信道中的误码性能比较分析:将QPSK,BPSK,16QAM,FSK四种调制方式,包括理论值与实际值,放在同一个图下,对他们进行对比,可以很清晰地发现,QPSK在信噪比较小时,仿真值和理论值就有了偏离,且两者数值都比较大,当信噪比越来越大时,仿真值成直线几乎没变化,而实际值的Pe值逐渐变小,这种调制方式不是很可取;16QAM的性能跟QPSK相比,在低信噪比时,Pe值较大(还要大于QPSK的),随着信噪比逐渐增大,16QAM的Pe值逐渐减小,且理论值与实际值比较契合,在大信噪比情况下,误码性能略逊与QPSK的;FSK的理论值和实际值在各种信噪比下都比较契合,两者几乎没有大的差距,无论是在低,高信噪比下,性能都要比QPSK的优越一些;BPSK性能最优!理论值与实际值契合得比较理想,而在低,高信噪比情况下,Pe值都是最低的,且随着信噪比逐渐增大,Pe实际值迅速减小,实现起来性能十分优越。

相关主题