基于MATLAB的M-QAM数字基带通信系统仿真报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的M-QAM数字基带通信系统仿真报告

学院:电光学院专业:姓名:学号:

题目要求:

Please use Matlab programming to implement some digital baseband communication systems , and plot the BEF(bit error probability) versus Eb/N0(from -5dB to 20dB) curves for 4QAM , 16QAM(one person)

一、设计目的和意义

随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注。在频谱资源非常有限的今天,传统通信系统的容量已经不能满足当前用户的要求。正交幅度调制QAM(Quadrature Amplitude Modulation)

以其高频谱利用率、高功率谱密度等优势,成为宽带无线接入和无线视频通信的重要技术方案。

从信号平面自用率方面看,单独使用幅度或相位携带信息时,不能最充分地利用信号平面。而M-QAM调制则正是解决这一问题的一种调制方式,采用幅度相位相结合的调制方式,可以使同样大的信息平面内有更多的信息点。从抗干扰方面看,在星座图上,采用M-QAM调制的信息的各点的距离要大于采用其它调制的。由星座图上点的特性可知,距离越大,抗干扰能力越强,所以在抗干扰能力方面,QAM调制也优于其它几种调制方式。

由上可知,在现代数字通信系统中,幅度与相位相结合的多进制调制有着重要的意义,并且运用也日益广泛。

MATLAB是一种编程语言和可视化工具,它能对数据以图形的方式显示出来,使数据间的关系明了MATLAB所包含的应用工具箱的功能非常丰富,提供SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包,支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,其中通信系统工具箱中包含了对通信系统进行分析和仿真所需的信源编码、纠错编码、信道、

调制解调以及其他所用的库函数和模块。文中利用MATLAB对数字基带传输系统进行了建模和仿真并对结果进行了分析,结果表明所建立的仿真系统达到了较高的精度。

二、QAM简介

正交振幅调制(QAM)是一种矢量调制,它是将输入比特先映射(一般采用格雷码)到一个复平面(星座)上,形成复数调制符号。正交调幅信号有两个相同频率的载波,但是相位相差90度(四分之一周期,来自积分术语)。一个信号叫I信号,另一个信号叫Q信号。从数学角度将一个信号可以表示成正弦,另一个表示成余弦。两种被调制的载波在发射时已被混和。到达目的地后,载波被分离,数据被分别提取然后和原始调制信息相混和。这样与之作幅度调制(AM)相比,其频谱利用率高出一倍。

QAM是用两路独立的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有二进制QAM(4QAM)、四进制QAM(l6QAM)、八进制QAM(64QAM)、…,对应的空间信号矢量端点分布图称为星座图,分别有4、16、64、…个矢量端点。目前QAM最高已达到1024QAM。样点数目越多,其传输效率越高。但并不是样点数目越多越好,随着样点数目的增加,QAM系统的误码率会逐渐增大,所以在对可靠性要求较高的环境,不能使用较多样点数目的QAM。对于4QAM,当两路信号幅度相等时,其产生、解调、性能及相位矢量均与4PSK相同。

图1 4QAM星座图

图2 16QAM星座图

QAM采用格雷编码,采用格雷码的好处在于相邻相位所代表的两个比特只有一位不同,由于因相位误差造成错判至相邻相位上的概率最大,故这样编码使之仅造成一个比特误码的概率最大。下图以16QAM为例,显示了编码:

图3 16QAM编码星座图

三、设计原理框图

图4 程序设计原理框图

四、MATLAB程序代码

clc;

clear all;

close all;

nsymbol=100000;%每种信噪比下的发送符号数

M=4;%4-QAM

N=16;%16-QAM

graycode=[0 1 3 2];%格雷码编码规则

graycode1=[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10];%格雷码编码规则

EbN0=-5:20;%信噪比的范围

snr1=10.^(EbN0/10);%将dB值转化成线性值

msg=randint(1,nsymbol,M);%由0-15的整数值组成的均匀随机数

msg1=graycode(msg+1);%将随机数映射成格雷码

msgmod=qammod(msg1,M);%4-QAM调制

spow=norm(msgmod).^2/nsymbol;%求出每个符号的平均功率

nsg=randint(1,nsymbol,N);%由0-15的整数值组成的均匀随机数

nsg1=graycode1(nsg+1);%将随机数映射成格雷码

nsgmod=qammod(nsg1,N);%16-QAM调制

spow1=norm(nsgmod).^2/nsymbol;%求出每个符号的平均功率

for indx=1:length(EbN0)

sigma=sqrt(spow/(2*snr1(indx))) ;%4-QAM根据符号功率求出噪声功率

sigma1=sqrt(spow1/(2*snr1(indx))) ;%16-QAM根据符号功率求出噪声功率

rx=msgmod+sigma*(randn(1,length(msgmod))+j*randn(1,length(msgmod))); %4-QAM 混入高斯加性白噪声

rx1=nsgmod+sigma1*(randn(1,length(nsgmod))+j*randn(1,length(nsgmod))); %16-QAM 混入高斯加性白噪声

y=qamdemod(rx,M);%4-QAM的解调

y1=qamdemod(rx1,N);%16-QAM的解调

decmsg=graycode(y+1);%格雷码的逆映射

decnsg=graycode1(y1+1);%格雷码的逆映射

%4-QAM

[err,ser(indx)]=symerr(msg,decmsg);%求实际误码率

%16-QAM

相关文档
最新文档