Matlab 在通信原理中的应用Word格式文档下载.docx
- 文档编号:6199057
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:36
- 大小:320.53KB
Matlab 在通信原理中的应用Word格式文档下载.docx
《Matlab 在通信原理中的应用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Matlab 在通信原理中的应用Word格式文档下载.docx(36页珍藏版)》请在冰点文库上搜索。
目次
1引言............................................1
2Matlab简介......................................2
2.1Matlab的发展史..............................2
2.2Matlab软件的组成.............................2
2.3Matlab的功能与特点...........................4
2.4Simulink的简介...............................4
3通信原理简介....................................6
3.1通信的概念....................................6
3.2通信系统模型..................................6
4Matlab在通信原理中的应用........................8
4.1Matlab的符号积分运算.........................8
4.2用Matlab绘出周期波的频谱.....................9
4.3模拟调制.....................................12
4.4数字调制.....................................17
4.5观察眼图.....................................23
4.6Simulink仿真.................................27
结论..............................................28
参考文献..........................................29
致谢..............................................30
1引言
现代社会中通信系统功能越来越强,性能越来越高,构成越来越复杂,通信原理理论知识也在逐渐得到完善和深化,另一方面,要求通信系统技术研究和产品的开发周期缩短、成本降低、水平提高。
这样尖锐对立的两个方面,只有通过使用强大的计算机辅助分析设计工具才可以实现。
而大量优秀的计算机仿真软件的研究成功,对通信原理的发展起到了极大的推动作用。
我们所学的《通信原理》是一门理论性与实践性都很强的专业基础课,它主要讲述了模拟和数字通信系统的基本原理,在专业课程体系结构中起着非常重要的作用。
然而《通信原理》这门课非常抽象,许多问题都需要在并不熟悉的频率域内进行分析、推理,算式较多。
若将Matlab融入其中,可简化计算过程,把计算结果以图的形式形象的显示出来,同时在通信系统的设计与仿真中,一些常用的模型都可以在Matlab中找到相应的函数或函数的组合加以求解,使用户能够轻松地进行通信方面的分析与处理,用户也可以自己编程解决问题。
本文首先介绍了Matlab和通信原理的相关知识,而后介绍了Matlab在通信原理中的应用,通过引例我们会感受到Matlab在通信原理中的强大作用,而且能够发现Matlab应用于通信原理这一领域的良好的发展前景。
2Matlab简介
2.1Matlab的发展史[1]
Matlab由Matrix(矩阵)和Laboratory(试验室)俩词的前3个字母组合而成。
20世纪70年代后期,时任美国新墨西哥大学计算机系主任的CleveMoler博士讲授线性代数课程时,发现应用其它高级编程语言极为不方便,为了减轻学生编程负担,于是CleveMoler博士和他的同事构思并为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,这就是用FORTRAN编写萌芽状态的Matlab.之后几年,Matlab作为免费软件在大学里被广泛使用,深受大学生的欢迎。
MatlabR系列是从2006年开始发布的,MathWorks公司在技术层面上实现了一次飞跃。
从那以后产品发布模式也发生了改变,每年的3月和9月进行俩次产品发布,产品及版本的命名方式为“R+年份+代码”,对应上下半年的代码分别是a和b.每一次发布都包含所有的产品模块,如产品的newfeature、bugfixes和新产品模块的推出。
例如,MatlabR2008a是MathWorks公司2008年3月份推出的产品。
目前最新版本是MatlabR2009B.
2.2Matlab软件的组成
Matlab作为MathWorks产品家族的核心,它主要由5大部分组成,分别为Matlab语言(theMatlablanguage)、Matlab工作环境(theMatlabWorkingEnvironment)、Matlab数学函数库(theMatlabMathlibrary)、Matlab应用程序接口(theMatlabApplicationInterface)和图形句柄系统(HandleGraphics)[2].
Matlab语言:
Matlab语言是一种以矩阵(Matrix)和阵列(Array)为基本编程单元,拥有完整的控制语句、数据结构、函数编写与调用格式和输出功能,具有面向对象程序设计特征的高级程序语言。
使用Matlab语言不但可以方便快捷地完成小规模的算法验证、程序开发和调试工作,而且可以进行大规模、高效的复杂应用程序设计。
Matlab工作环境:
简单来说,Matlab工作环境就是一系列实用工具的集合,它不但包括了各种操作工作空间中变量的工具和管理数据输入输出的方法,而且包括了开发调试M文件和Matlab应用程序的集成环境。
使用起来极为方便。
Matlab数学函数库:
Matlab数学函数库是大量的各种形式的数学函数和算法的集合,它不仅包括了最基本的初等函数,如sum、sine、cosine和复数运算等,而且包含了大量复杂的高级函数和算法,如贝塞尔(Bassel)函数,快速傅里叶变
换和矩阵求逆等。
用户在编写自己的Matlab程序时,可以轻松地调用这些函数和算法,从而极大地方便了算法的开发。
所有这些函数按类别分别存放在Matlab工具箱下的8个子目录中,如表1所示。
表1Matlab数学函数库的分类和组织
目录名
函数功能
elmat
对矩阵和矩阵元素的操作
elfun
初等数学函数
matfun
矩阵函数—数值线性代数
funfun
功能函数和ODE求解
specfun
专门数学函数
sparfun
稀疏矩阵函数
datafun
数值分析和傅里叶变换
polyfun
插值和多边形近似
Matlab应用程序窗口:
Matlab的外部接口使得Matlab可与外部设备和程序实现数据交互和程序移植,可以扩充Matlab强大的数值计算和图形显示功能,从而弥补了其执行效率较低的缺点,同时增强了其它应用程序进行软件开发的功能,提高了软件开发效率。
Matlab接口工具不仅使得Matlab可以十分方便地与其他应用程序交换数据和信息,还实现了与其他程序函数和算法的交互。
所以,通过Matlab接口编程,可以充分利用现有资源,能更容易地编写出功能强大、结构简洁的应用程序。
Matlab主要提供了MEX文件、MAT文件、Matlab计算引擎、COM和DDE、Web服务、硬件接口和Excel生成器、Java生成器和.NET生成器等形式的接口。
图形句柄系统:
HandleGraphics为MathWorks公司的注册商标,是Matlab的图形系统。
它在包含了大量高级的2D和3D数据可视化、图形显示、动画生成和图像处理命令的同时,还提供了许多低级的图形命令,允许用户按照自己的需求显示图形和定制应用程序图形用户接口,既方便又灵活。
具体的函数分为5大类,分别放置在工具箱下5个不同的目录内,如表2所示[3]。
表2Matlab图形函数的分类和组织
函数功能
graph2d
二维图形函数
graph3d
三维图形函数
graphics
图形句柄函数
uitools
图形用户界面工具
specgraph
专门图形函数
2.3Matlab的功能与特点
Matlab是现在很流行的用于科学计算的软件工具,它集数值分析、矩阵运算、信号处理、图像显示等多种功能于一体,提供了一个高性能的科学计算环境,因此在通信、自动化等领域都得到了广泛的应用。
它最初是作为“矩阵理论”和“数据分析”等课程的计算工具,经过十几年的发展和完善,目前已成为世界各国在科学分析和计算领域的主要软件,并被IEEE评述为国际公认的最优秀的科技应用软件。
它的主要特点是[4]:
(1)Matlab可以用来解线性方程组、进行矩阵变换与运算、数据插值运算等,能使用户从繁杂的数学运算分析中解脱出来。
(2)Matlab中有许多高级的绘图函数,包括二维、三维、专用图形函数、图形句柄、用户图形界面工具等,利用这些函数可以轻松地完成各种图形的绘制和编辑工作,实现计算结果和编程的可视化。
(3)友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。
(4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱、控制系统工具箱等)为用户提供了大量方便实用的处理工具。
Matlab的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真等领域不可缺少的基础软件。
目前,国内很多理工院校已经或者正在把该软件作为学生必须掌握的一种软件。
针对信号与系统课程内容的特点,利用Matlab的信号处理工具箱和图形处理及数据可视化,教师可以将结论直接用图形来演示,从而让学生对抽象的概念和定理以及结论有直观的认识,并加深对一些重要概念的理解。
2.4Simulink简介
Simulink是MATLAB提供的用于动态系统进行建模、仿真和分析的工具包。
Simulink提供了专门用于显示输出信号的模块,可以在仿真过程中随时观察仿真结果。
同时,通过Simulink的存储模块,仿真数据可以方便地以各种形式保存在工作区或文件中,供用户在仿真结束之后对数据进行分析和处理。
另外,Simulink把具有特定功能的代码组织成模块的方式,并且这些模块可以组织成具有等级结构的子系统,因此具有内在的模块化设计要基于MATLAB的通信系统仿真研究要求。
基于上述优点,Simulink成为一种通用的仿真建模工具,广泛应用于通信系统仿真、数字信号处理、模糊逻辑、神经网络、机械控制和虚拟现实等领域。
根据输出信号与输入信号的关系,Simulink提供3种类型的模块:
连续模块、离散模块和混合模块。
连续模块是指输出信号随着输入信号发生连续变化的模块,离散模块则是输出信号以固定间隔变化的模块。
对于连续模块,Simulink采用积分方式计算输出信号的数值,因此,连续模块主要涉及导数的计算及其积分。
离散模块的输出信号在下一个抽样时刻到来之前保持恒定,这时候Simulink只需以一定的间隔计算输出信号的数值。
混合模块是根据输入信号的类型来确定输出信号类型的,它既能够产生连续输出信号,也能够产生离散输出信号。
Simulink包含有SINKS(输出方式)、SOURCE(输入源)、LINEAR(线性环节)、NONLINEAR(非线性环节)、CONNECTIONS(连接与接口)和EXTRA(其他环节)子模型库,而且每个子模型库中包含有相应的功能模,用户也可以定制和创建用户自己的模块。
用Simulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。
用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。
在定义完一个模型后,用户可以通过Simulink的菜单或Matlab的命令窗口键入命令来对它进行仿真。
菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。
采用SCOPE模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。
除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。
仿真的结果还可以存放到Matlab的工作空间里做事后处理[5]。
模型分析工具包括线性化和平衡点分析工具、Matlab的许多工具及Matlab的应用工具箱。
由于Matlab和Simulink的集成在一起的,因此用户可以在这两种环境下对自己的模型进行仿真、分析和修改。
3通信原理简介
3.1通信的概念
通信就是克服距离上的障碍,从一地向另一地传递和交换消息。
消息是信息源所产生的,是信息的物理表现,例如,语音、文字、数据、图形和图象等都是消息(Message)。
消息有模拟消息(如语音、图象等)以及数字消息(如数据、文字等)之分。
所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。
所以,信号(Signal)是传输消息的手段,信号是消息的物质载体。
相应的信号可分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如电话机、电视摄像机输出的信号就是模拟信号。
数字信号的自变量可以是连续的或离散的,但幅度是离散的,如电船传机、计算机等各种数字终端设备输出的信号就是数字信号[6]。
通信的目的是传递消息,但对受信者有用的是消息中包含的有效内容,也即信息(Information)。
消息是具体的、表面的,而信息是抽象的、本质的,且消息中包含的信息的多少可以用信息量来度量。
3.2通信系统模型
通信系统就是传递信息所需要的一切技术设备和传输媒质的总和,包括信息源、发送设备、信道、接收设备和信宿(受信者),它的一般模型如图1所示。
图1通信系统的一般模型
各种通信系统中传输的消息可以分为离散消息和连续消息。
离散消息也称为数字消息,它的消息状态是可数的或离散的。
连续消息也称为模拟消息,其状态是连续变化的。
按照信道中传输的消息是模拟消息还是数字消息可以把通信系统分为两类:
模拟通信系统和数字通信系统,它们的模型如图2和图3所示。
图2模拟通信系统
图3数字通信系统
4Matlab在通信原理中的应用
4.1Matlab的符号微积分运算
在通信原理课程中,一些公式都会或多或少地涵盖表达式的微积分运算,通过使用Matlab会使这些运算更方便快捷,在Matlab中,实现符号积分运算的常用指令有[7]
int(s,v)%求符号表达式s对变量v的不定积分
int(s,v,a,b)%求符号表达式s对变量v从a到b的定积分
实现微分的运算指令有
diff(s,v)%以v为自变量,对符号表达式进行微分运算
diff(s,v,n)%以为自变量,对符号表达式进行n次微分运算
例1积分运算
解:
编制如下程序
clear;
clc;
symsx
F=[cos(t*x)*sin(t*x),cos(t*x)+sin(t*x)]
IF1=int(F,x)
IF2=int(F,x,0,pi)
运行结果为
F=
[cos(t*x)*sin(t*x),cos(t*x)+sin(t*x)]
IF1=
[-1/2*cos(t*x)^2/t,1/t*sin(t*x)-cos(t*x)/t]
IF2=
[-1/2*(-1+cos(pi*t)^2)/t,(1+sin(pi*t)-cos(pi*t))/t]
例2微分运算
解:
symsxt
F1=sin(x^3+2*x^2+6)
F2=t^5+sin(t)
DF1=diff(F1,x)
DF2=diff(F2,t,5)
F1=
sin(x^3+2*x^2+6)
F2=
t^5+sin(t)
DF1=
cos(x^3+2*x^2+6)*(3*x^2+4*x)
DF2=
120+cos(t)
4.2用Matlab绘出周期波的频谱
我们可以利用Matlab强大的符号运算功能来进行运算,再根据Matlab的可视化结果进行分析。
信号频谱是将信号源发出的信号强度按频率顺序展开,使其成为频率的函数,并考察变化规律,称为频谱分析。
频谱分析主要分析信号是由哪些频率的正弦信号叠加得到的,以及得到这些正弦信号的振幅,信号的谱分析可以说就是计算信号的傅里叶变换。
连续信号的傅里叶分析显然不便于用计算机直接计算,使其应用受到限制。
而DFT是一种时域和频域均离散化的变换,适合数值运算,成为计算机分析离散信号的有力工具。
对连续信号可以通过时域采样,应用DFT进行近似谱分析[8]。
周期信号的频谱由不连续的线条组成,每一条线代表一个正弦量,故称为离散频谱;
周期信号频谱的每条谱线只能出现在基波频率的整数倍频率上,这就是周期信号频谱的谐波性;
各次谐波的振幅,总的趋势是随着谐波次数的增高而逐渐减小,所以周期信号的频谱具有收敛性。
以上就是周期信号频谱的三个特点:
离散性、谐波性、收敛性。
这是所有周期信号共有的特点。
例3用Matlab绘出三角波的频谱图。
运用如下Matlab程序:
%[ex8.5]周期三角波双边脉冲频谱
function[A_sym,B_sym]=CTFSsjbshb(T,Nf)
%采用符号计算求[0,T]内时间函数的三角级数展开系数
%函数的输入输出都是数值量
%Nf谐波的阶数
%Nn输出数据的准确位数
%A_sym第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
%B_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数
symstnky
T=5;
ifnargin<
4;
Nf=input('
plearInput所需展开的最高谐波次数:
'
);
end
5;
Nn=32;
y=time_fun_s(t);
A0=2*int(y,t,0,T)/T;
As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);
Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);
A_sym
(1)=double(vpa(A0,Nn));
fork=1:
Nf
A_sym(k+1)=double(vpa(subs(As,n,k),Nn));
B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));
ifnargout==0
S1=fliplr(A_sym)%对A_sym阵左右对称交换
S1(1,k+1)=A_sym
(1)%A_sym的1*k阵扩展为1*(k+1)阵
S2=fliplr(1/2*S1)%对扩展后的S1阵左右对称交换回原位置
S3=fliplr(1/2*B_sym)%对B_sym阵左右对称交换
S3(1,k+1)=0%B_sym的1*k阵扩展为1*(k+1)阵
S4=fliplr(S3)%对扩展后的S3阵左右对称交换回原位置
S5=S2-i*S4;
%用三角函数展开系数A、B值合成付立叶指数系数
S6=fliplr(S5);
%对付立叶指数复系数S6阵左右对称交换位置
N=Nf*2*pi/T;
k2=-N:
2*pi/T:
N;
%形成-N:
N的变量
S7=[S6,S5(2:
end)];
N的付立叶指数对称复系数
figure
(1);
subplot(3,3,3)
x=sjb_timefun(t,T)%调用连续时间函数-周期三角波脉冲
t=-2*T:
0.01:
2*T;
plot(t,x)
title('
连续时间函数-周期三角波脉冲'
)
axis([-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 在通信原理中的应用 通信 原理 中的 应用