基于matlab的M-QAM通信系统的仿真 - 图文

更新时间:2023-10-31 08:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课 程 设 计 任 务 书

学生班级: 通信0802班 学生姓名: 学号: 设计名称:基于matlab的M-QAM通信系统的仿真 起止日期:2011.6.21-2011.7.3 指导教师:

设计要求: 1. 取M=16,产生随机消息序列; 2. 调用Matlab函数,根据矩形星座图对消息序列进行QAM调制; 3. 加噪声; 4. 解调QAM; 5. 计算误码率,并与理论误码率比较,作图表示出16QAM的信噪比与误码率的关系曲线。

课 程 设 计 学 生 日 志

时间 6.28—6.28 6.29—6.29 6.30—7.3 7.4—7.4 7.5—7.5 查阅资料,确定方案 设计总体方案 功能和要求的具体设计 完成设计报告 答辩 设计内容 课 程 设 计 考 勤 表

星期一 星期二 星期三 星期四 星期五 课 程 设 计 评 语 表

指导教师评语: 成绩: 指导教师: 年 月 日 基于matlab的M-QAM通信系统

的仿真

一、 设计目的和意义

从信号平面自用率方面看,单独使用幅度或相位携带信息时,不能最充分地利用信号平面。而M-QAM调制则正是解决这一问题的一种调制方式,采用幅度相位相结合的调制方式,可以使同样大的信息平面内有更多的信息点。

从抗干扰方面看,在星座图上,采用M-QAM调制的信息的各点的距离要大于采用其它调制的,由星座图上点的特性可知,距离越大,抗干扰能力越强,所以在抗干扰能力方面,QAM调制也优于其它几种调制方式。

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

二、 设计原理

本设计中所采用的16QAM为16进制的幅度相位相结合调制。16QAM 是用两路独立的正交 4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。它是 2ASK 体制的推广,和 2ASK 相比,这种体制的优点在于信息传输速率高。其星座图如图1所示。

图1 16QAM矩形星座图

进制的正交振幅调制是一种振幅相位联合键控信号。16QAM 的产生有 2 种方法:

(1)正交调幅法,它是有 2 路正交的四电平振幅键控信号叠加而成; (2)复合相移法:它是用 2 路独立的四相位移相键控信号叠加而成。 16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的 16QAM 信号进行正交相干解调,一路与 cos ω c t 相乘,一路与 sin ω c t 相乘。然后经过低通滤波器,低通滤波器 LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。

在本次设计中,16QAM的调制和解调均调用matlab中的QAM专用调制解调函数qammod()和qamdemod()。其中qammod()用于QAM调制,qamdemod()用于QAM解调。再分别用两个子函数完成调制前的串并转换和解调后的并串转换。

三、 详细设计步骤

1) 首先进行系统的分析的设计,整个设计分为如下几个部分:随机序列的产生,序列的串并和并串转换,16QAM调制,星座图的绘制,16QAM解调,加入噪声,误码率的测量及绘图。

2) 第一步是编写程序代码,产生一个“0”“1”随机序列,设定长度N为5000,代码如下: N=5000;

SendIn=randint(1,N);%产生5000个随机的01序列

3) 对产生的二进制随机序列进行串并转换,实现将每连续的4位二进制码组合在一起,由于是调用matlab系统函数调制解调,在此将转换后边的序列进行十进制转换,方便后面的调制,再将转换好的序列通过调用qammod()函数进行16qam调制,具体代码如下: [Send,n]=t2f(SendIn);%二进制换到十进制

SendMod=qammod(Send,16);QAM调制 串并转换子函数代码如下: function [y,n]=t2f(x) n=1; y=[]; j=length(x); k=mod(j,4); j=j-k; for i=1:4:j;

y(n)=x(i)*8+x(i+1)*4+x(i+2)*2+x(i+3)*1; n=n+1; end n=n-1;

4) 绘制星座图,此处选择绘制出三幅星座图,第一幅为原始无噪声情况下的星座图,第一幅为信噪比为10dB情况下的星座,第三幅为信噪比为0dB情况下的星座图。其中加入指定信噪比的噪声通过awgn()函数来实现。通过星座图,可以很直观地看出16QAM的特点,通过三幅图的比较,可以观察出噪声对信号的干扰影响。代码如下: %绘星座图

scatterplot(SendMod); title('原始信号星座图');

SNRTest=awgn(SendMod,10);%加噪声

scatterplot(SNRTest); title('10dB信噪比时星座图'); SNRTest=awgn(SendMod,0);%加噪声 scatterplot(SNRTest); title('0dB信噪比时星座图');

5) 接收解调受噪声干扰的QAM信号,通过循环接收并统计受到不同信噪比干扰的QAM信号,然后对收到的信号进行并串转换。再计算出不同信噪比情况下的接收端的误码率。并绘制出误码率跟信噪比的关系曲线。代码如下: Count=[];

for SNR=-20:1:20;%信噪比从-10到10 sum=0;%统计误码数

Receive=awgn(SendMod,SNR);%加噪声

ReceiveDemod=qamdemod(Receive,16);QAM解调 [ReceiveOut,m]=f2t(ReceiveDemod);%十进制换到二进制 for k=1:m

if ReceiveOut(k)~=SendIn(k); sum=sum+1; end end

Count(SNR+21)=sum/m;

end h3=figure;

h3=plot(-20:20,Count); xlabel('信噪比(dB)'); ylabel('误码率');

title('信噪比与误码率的关系'); 并串转换子函数代码如下: function [y,n]=f2t(x) j=length(x); n=1; for i=1:j; if x(i)>15; y(n)=1; y(n+1)=1; y(n+2)=1; y(n+3)=1; elseif x(i)<0; y(n)=0; y(n+1)=0; y(n+2)=0;

y(n+3)=0; else

y(n)=fix(x(i)/8);

y(n+1)=fix((x(i)-y(n)*8)/4);

y(n+2)=fix((x(i)-y(n)*8-y(n+1)*4)/2); y(n+3)=mod(x(i),2); n=n+4; end end n=n-1;

四、 设计结果及分析

在matlab中运编写好的qam函数,观察并分析结果。 原始无噪声的信号星座图:

图2 原始信号星座图

信噪比为10dB情况下的星座图:

图3 信噪比为10dB情况下信号星座图

信噪比为0dB情况下的星座图:

图4 信噪比为10dB情况下信号星座图

信噪比与误码率关系曲线图:

图5 信噪比与误码率关系曲线

五、 体会

完成本设计之后对QAM调制有了很清楚的认识,明白了QAM调制的意义和重要性,了解了QAM的调制过程和基本步骤,对二进制在数字通信中的重要性也有所认识。另一方面,在matlab的使用过程中也学到了很多的关于matlab的使用技巧和方法,同时也存在一些问题。学会了用图表曲线去直观地反映问题,反映事物的动态变化教程,预测变化趋势。对今后的学习和工作都有很大帮助。

六、 参考文献

[1] 曹志刚、钱亚生.现代通信原理.清华大学出版社,1994 [2] 程佩青.数字信号处理教程(第三版).清华大学出版社,2007.2 [3] 张威.MATLAB基础与编程入门(第二版).西安电子科技大学出版社,2008.1 [4] http://baike.http://www.wodefanwen.com//view/2015412.htm

本文来源:https://www.bwwdw.com/article/m6h2.html

Top