Matlab及Simulink的QAM调制解调仿真.docx

上传人:b****8 文档编号:10944103 上传时间:2023-02-23 格式:DOCX 页数:23 大小:271.17KB
下载 相关 举报
Matlab及Simulink的QAM调制解调仿真.docx_第1页
第1页 / 共23页
Matlab及Simulink的QAM调制解调仿真.docx_第2页
第2页 / 共23页
Matlab及Simulink的QAM调制解调仿真.docx_第3页
第3页 / 共23页
Matlab及Simulink的QAM调制解调仿真.docx_第4页
第4页 / 共23页
Matlab及Simulink的QAM调制解调仿真.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Matlab及Simulink的QAM调制解调仿真.docx

《Matlab及Simulink的QAM调制解调仿真.docx》由会员分享,可在线阅读,更多相关《Matlab及Simulink的QAM调制解调仿真.docx(23页珍藏版)》请在冰豆网上搜索。

Matlab及Simulink的QAM调制解调仿真.docx

Matlab及Simulink的QAM调制解调仿真

天津理工大学计算机与通信工程学院

通信工程专业设计说明书

 

基于Matlab/Simulink

的16QAM调制解调仿真设计与研究

 

姓名

学号

班级

指导老师

日期

 

1.3Simulink与通信仿真.............................................4

4.1simulink仿真框图...............................................13

4.2simulink仿真参数设置...........................................13

4.3simulink仿真结果...............................................16

 

摘要

MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。

MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

正交振幅调制QAM(QuadratureAmplitudeModulation)就是一种频谱利用率很高的调制方式,其在中、大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统等领域得到了广泛应用。

数字调制具有3种基本方式:

数字振幅调制、数字频率调制、数字相位调制,这3种数字调制方式都存在不足之处,如:

频谱利用率低、抗多径抗衰弱能力差、功率谱衰减慢、带外辐射严重等。

关键词:

Matlab、simulink、调制、解调

 

第一章前言

1.1Matlab简介

MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。

MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。

尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。

另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

  MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。

1.2Matlab下的simulink简介

Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

所谓模型化图形输入是指Simulink提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),从而进行仿真与分析。

使用Simulink来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),将是一件非常轻松的事情。

它提供的图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写一行代码。

利用Simulink进行系统的建模仿真,其最大的优点是易学、易用,并能依托MATLAB提供的丰富的仿真资源。

Simulink的功能:

1.交互式、图形化的建模环境。

Simulink提供了丰富的模块库以帮助用户快速地建立动态系统模型。

建模时只需使用鼠标拖放不同模块库中的系统模块并将它们连接起来。

2.交互式的仿真环境。

Simulink框图提供了交互性很强的仿真环境,既可以通过下拉菜单执行仿真,也可以通过命令行进行仿真。

菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真如蒙特卡罗仿真非常有用。

3.专用模块库(Blocksets)。

作为Simulink建模系统的补充,MathWorks公司还开发了专用功能块程序包,如DSPBlockset和CommunicationBlockset等。

通过使用这些程序包用户可以迅速地对系统进行建模、仿真与分析。

更重要的是用户还可以对系统模型进行代码生成,并将生成的代码下载到不同的目标机上。

4.提供了仿真库的扩充和定制机制。

Simulink的开放式结构允许用户扩展仿真环境的功能:

采用MATLAB、FORTRAN和C代码生成自定义模块库,并拥有自己的图标和界面。

因此用户可以将使用FORTRAN或C编写的代码进来,或者购买使用第三方开发提供的模块库进行更高级的系统设计、仿真与分析。

Simulink具有以下特点:

1.基于矩阵的数值计算

2.高级编程语言

3.图形与可视化

4.工具箱提供面向具体应用领的功能

5.丰富的数据I/O工具

6.提供与其它高级语言的接口

7.开放与可扩展的体系结构

1.3Simulink与通信仿真

仿真是衡量系统性能的工具,它通过仿真模型的仿真结果来推断原系统的性能,从而为新系统的建立或原系统的改造提供可靠的参考。

仿真是科学研究和工程建设中不可缺少的方法。

实际的通信系统是一个功能结构相当复杂的系统,对于这个系统作出的任何改变都可能影响到整个系统的性能和稳定。

而Simulink作为Matlab提供的用于对动态系统进行建模、仿真和分析的工具包,提供了仿真所需的信源编码、纠错编码、信道、调制解调以及其它所用的全部库函数和模块。

可见,不管对任何复杂的通信系统,用Simulink对其仿真都是一个不错的选择。

 

第二章16QAM

2.1QAM介绍

在现代通信中,提高频谱利用率一直是人们关注的焦点之一。

近年来,随着通信业务需求的迅速增长,寻找频谱利用率高的数字调制方式已成为数字通信系统设计、研究的主要目标之一。

正交振幅调制QAM(QuadratureAmplitudeModulation)就是一种频谱利用率很高的调制方式,其在中、大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统等领域得到了广泛应用。

在移动通信中,随着微蜂窝和微微蜂窝的出现,使得信道传输特性发生了很大变化。

过去在传统蜂窝系统中不能应用的正交振幅调制也引起人们的重视。

QAM数字调制器作为DVB系统的前端设备,接收来自编码器、复用器、DVB网关、视频服务器等设备的TS流,进行RS编码、卷积编码和QAM数字调制,输出的射频信号可以直接在有线电视网上传送,同时也可根据需要选择中频输出。

它以其灵活的配置和优越的性能指标,广泛的应用于数字有线电视传输领域和数字MMDS系统。

作为国际上移动通信技术专家十分重视的一种信号调制方式之一,随着微蜂窝(Microcell)和微微蜂窝(Picocell)系统的出现,使得信道的传输特性发生了很大变化,接收机和发射机之间通常具有很强的支达分量,以往在蜂窝系统中不能应用的但频谱利用率很高的WAM已引起人们的重视,许多学者已对16QAM及其它变型的QAM在PCN中的应用进行了广泛深入地研究。

2.2QAM调制解调原理

在发送端调制器中串/并变换使得信息速率为Rb的输入二进制信号分成两个速率为Rb/2的二进制信号,2/L电平转换将每个速率为Rb/2的二进制信号变为速率为Rb/(2lbL)的电平信号,然后分别与两个正交载波相乘,再相加后即得MQAM信号。

在接收端解调器中可以采用正交的相干解调方法。

接受到的信号分两路进入两个正交的载波的相干解调器,再分别进入判决器形成L进制信号并输出二进制信号,最后经并/串变换后得到基带信号。

2.3QAM调制解调原理框图

QAM的调制解调框图如图1和2所示。

 

图1调制

图2解调

2.4正交振幅调制系统

数字调制具有3种基本方式:

数字振幅调制、数字频率调制、数字相位调制,这3种数字调制方式都存在不足之处,如:

频谱利用率低、抗多径抗衰弱能力差、功率谱衰减慢、带外辐射严重等。

为了改善这些不足,近几十年来人们不断提出一些新的数字调制解调技术,以适应各种通信系统的要求。

其主要研究容围绕着减小信号带宽以提高信号频谱利用率;提高功率利用率以增强抗噪声性能;适应各种随参信道以增强抗多径抗衰落能力等。

例如,在恒参信道中,正交振幅调制(QAM)方式具有高的频谱利用率,因此正交振幅调制(QAM)在卫星通信和有线电视网络高速数据传输等领域得到广泛应用。

所谓正交振幅调制是用两个独立的基带波形对两个互相正交的同频载波进行抑制载波的双边带调制。

在这种调制中,已调载波的振幅和相位都随两个独立的基带信号变化。

采用多进制正交振幅调制,可记为MQAM(M>2)。

增大M可提高频率利用率,也即提高传输有效性。

 

第三章16QAM的Matlab仿真

3.1Matlab仿真

(1)生成一个随机且长度为10000的二进制比特流,画出了前50个比特的信号图。

(2)在MATLAB中16QAM调制器要求输入的信号为0-15这16个值,所以需要用函数reshape和bi2de将二进制的比特流转换为对应的十六进制信号。

(3)利用MATLAB中的modem.qammod函数生成16QAM调制器,再通过其对信号进行调制并画出信号的星座图。

(4)通过awgn信道在16QAM信号中加入高斯白噪声(假设Eb/No=15db)。

(5)利用MATLAB中的scatterplot函数画出通过信道后接受到的信号的星座图。

(6)利用MATLAB中的eyediagram函数生成经过信道后的眼图。

(7)利用MATLAB中的demodulate和modem.qamdemod函数生成解调器对16QAM信号的解调,并将十六进制信号转化成二进制比特流信息。

(8)用得到比特流信息除以原始发送的比特流信息来计算误码率。

3.2Matlab仿真结果

运用函数编写程序,分别出现8个图如下:

图1前50个比特的信号图(二进制的比特流)

图2前50个比特的信号图(十六进制的比特流)

图316QAM调制器调制后的信号星座图

图4含白噪声的信号星座图

图5不含白噪声的信号星座图

图6眼图

图716进制的比特流

图8二进制的比特流

第四章16QAM的Matlab-simulink仿真

4.1simulink仿真框图

通过选择的器件组成仿真图,分别出现2个图如下:

图1simulink仿真框图(星座图)

图2simulink仿真框图(波形)

4.2simulink仿真参数设置

如下参数设置,可以正常的运行。

图3RandomIntegerGenerator(随机整数产生器)参数设置

图4RectangularQAMModulatorBaseband(矩形QAM调制器基带)参数设置

图5AwgnChannel(AWGN信道)参数设置

图6RectangularQAMDemodulatorBaseband(矩形QAM解调基带)参数设置

图7ErrorRateCalculation(错误率的计算)参数设置

图8Display(显示器)参数设置

图9Discrete-TimeScatterPlotScope(离散时间散点图的围)参数设置

4.3simulink仿真结果

通过连接器件及设置参数完成仿真图,运行分别出现3个图如下:

图10调制星座图

图11解调星座图

图12调制前与解调后对比波形图

当信噪比较大时,误码率接近为0。

调制前与解调后图形几乎一致。

4.416QAM通信系统性能分析

在仿真过程中有许多的因素决定着16QAM调制解调系统的抗噪声性能,例如滤波器的性能以及它的通频带的设计、抽样判决的位置、判决门限的设定和时间延迟等都或大或小的影响着它的结果。

通过MATLAB仿真出16qam的误码率曲线。

从曲线中可以看出随着信噪比的增大,误码率在缓慢减小。

当信噪比增大到一定程度时,误码率减小较快。

图1316QAM误码率曲线

 

第五章结论

本文研究的重点是对基于MATLAB/SIMULINK的16QAM调制解调系统进行设计与仿真,得到以下的结论:

1.对16QAM调制解调系统基本原理进行了较为深入地理解与分析,并且根据其原理构建了Simulink的仿真模型。

2.熟悉地掌握Matlab/Simulink软件在通信系统设计与仿真的基本步骤与方法。

3.利用Matlab/Simulink实现了16QAM调制与解调系统的设计,实现与仿真,并得到相应的调制解调波形,发现解调信号波形与输入信号波形存在一定时延,所以该系统的实时性有不足,但并不影响对误码率的检测,以及系统能够的抗噪声性能。

4.对16QAM调制解调系统的抗噪声性能进行分析,通过仿真得到了16QAM系统的误码率曲线,曲线趋势与理论曲线基本一致。

在本文所涉及的设计仿真工作存在一些不完善的地方,需要进行改进和完善,主要包括以下几个方面:

1、Matlab/Simulink软件虽然功能齐全,但不适用于对复杂通信系统的模块化设计,主要体现在仿真速度缓慢,设计模型的方式不够灵活。

2、系统设计中解调输出波形与输入信号波形有较长时延,不利于通信的实时性。

需要进行改进模型,减小时延。

最后,感老师和同学的帮助,使我学到了很多知识。

 

参考文献

[1]樊昌信丽娜,《通信原理》国防工业2001年

[2]辉等,《现代通信原理与技术》电子科技大学2002年

[3]志刚等,《现代通信原理》淸华大学

[4]贺冰等,《Simulink通信仿真教程》国防工业2006年

 

附录

一、程序如下:

M=16;

k=log2(M);

n=100000;%比特序列长度

samp=1;%过采样率

x=randint(n,1);%生成随机二进制比特流

stem(x(1:

50),'filled');%画出相应的二进制比特流信号

title('二进制随机比特流');

xlabel('比特序列');ylabel('信号幅度');

x4=reshape(x,k,length(x)/k);%将原始的二进制比特序列每四个一组分组,并排列成k行length(x)/k列的矩阵

xsym=bi2de(x4.','left-msb');%将矩阵转化为相应的16进制信号序列

figure;

stem(xsym(1:

50));%画出相应的16进制信号序列

title('16进制随机信号');

xlabel('信号序列');ylabel('信号幅度');

y=modulate(modem.qammod(M),xsym);%用16QAM调制器对信号进行调制

scatterplot(y);%画出16QAM信号的星座图

text(real(y)+0.1,imag(y),dec2bin(xsym));

axis([-55-55]);

EbNo=15;

snr=EbNo+10*log10(k)-10*log10(samp);%信噪比

yn=awgn(y,snr,'measured');%加入高斯白噪声

h=scatterplot(yn,samp,0,'b.');%经过信道后接收到的含白噪声的信号星座图

holdon;

scatterplot(y,1,0,'k+',h);%加入不含白噪声的信号星座图

title('接收信号星座图');

legend('含噪声接收信号','不含噪声信号');

axis([-55-55]);

holdon;

eyediagram(yn,2);%眼图

yd=demodulate(modem.qamdemod(M),yn);%此时解调出来的是16进制信号

figure;

stem(yd(1:

50));%画出相应的16进制信号序列

title('16进制信号');

xlabel('信号序列');ylabel('信号幅度');

z=de2bi(yd,'left-msb');%转化为对应的二进制比特流

z=reshape(z.',numel(z),1');

figure;

stem(z(1:

50));%画出相应的16进制信号序列

title('二进制信号');

xlabel('信号序列');ylabel('信号幅度');

[number_of_errors,bit_error_rate]=biterr(x,z)

 

number_of_errors=

0

 

bit_error_rate=

0

误码率曲线程序:

clearall;

Fd=1;Fs=1;

N=70000;%Numberofsimulatedpoints

method='qask';%Quadratureamplitudemodulation

set

(1)=4;set

(2)=16;set(3)=64;%Sizesofconstellations

j=2;

M=set(j);%SizeofM-QAMconstellation

l=1:

1:

M;

aux=sum(abs(modmap(l-1,Fd,Fs,method,M)).^2)/M;

energy(j)=aux

(1)+aux

(2);

i=1;

foresno=0:

2:

26;

sigma=sqrt(10^(-esno/10)/2)*sqrt(energy(j));

x=randint(N,1,M);%Randominformationsymbols(integers)

y=modmap(x,Fd,Fs,method,M);%Mappedsignal

ynoisy=y+normrnd(0,sigma,N*Fs,2);%Gaussiannoiseadded

z=demodmap(ynoisy,Fd,Fs,method,M);%Demappednoisysignal

s=symerr(x,z);%Numberofsymbolerrorsafterdemapping

ber(j,i)=(s/N)/log2(M);%Biterrorrate(BER)withGraymapping

snr(i)=esno;

i=i+1;

end

semilogy(snr,ber(2,:

),'-bo');

gridon;

ylabel('BER');

xlabel('E/N_0(dB)');

legend('16-QAM','16-QAM','64-QAM',1);

title('16QAM抗噪声性能');

二、Matlab-simulink仿真器件名称

RandomIntegerGenerator随机整数产生器

RectangularQAMModulatorBaseband矩形QAM调制器基带

AwgnChannelAWGN信道

RectangularQAMDemodulatorBaseband矩形QAM解调基带

ErrorRateCalculation错误率的计算

Discrete-TimeScatterPlotScope离散时间的散点图的围

Display显示器

Scope作用域

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1