Matlab程序设计课程总结
学院
班级
学号
姓名
成绩
1.Matlab的课程总结
随着对matlab的学习的深入,我对其了解也更加深入。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,MATLAB和Mathematica、Maple并称为三大数学软件它在数学类科技应用软件中在数值方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。此高级语言可用于技术计算,此开发环境可对代码、文件和数据进行管理,交互式工具可以按迭代的方式探查、设计及求解问题,数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等,二维和三维图形函数可用于可视化数据,各种工具可用于构建自定义的图形用户界面,各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及Microsoft Excel)集成。
应用matlab语言编程的方法来对复杂电路进行分析和计算,不仅节约计算时间、方便地调试电路参数,而且还可以非常直观地观察和测量电路中的电压、电流和功率等物理量。结论表明,matlab提供了高效简洁的编程方法,其强大而简易的绘图功能、矩阵和数组运算能力以及很强的扩充性,能充分的满足基本电路分析、计算的需要,从而可以大大地提高计算精度和工作效率,在电路理论学科研究与工程实践中具有很好的应用价值。
2.matlab的优势和应用
2.1 MATLAB的优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库以及图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++的代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
2.2matlab的应用
MATLAB的应用领域十分广阔,典型的应用举例如下:
(1) 数据分析
(2) 数值与符号计算;
(3) 工程与科学绘图;
(4) 控制系统设计;
(5) 航天工业;
(6) 汽车工业;
(7) 生物医学工程;
(8) 语音处理;
(9) 图像与数字信号处理;
(10) 财务、金融分析;
(11) 建模、仿真及样机开发;
(12) 新算法研究开发;
(13) 图形用户界面设计。
3.matlab在电路分析中的应用举例
在电路分析中,随着电路规模的加大,微分方程阶数以及联立方程的个数势必增多,给解算带来困难。传统的计算机编程语言,如FORTRAN、C语言等在处理高阶微分方程和大规模联立方程组问题时,大量的时间和精力都花在矩阵处理(如矩阵输入、求逆、稀疏矩阵处理等)和图形的生成分析等繁琐易错的细节上。而被誉为第四代计算机语言的MATLAB在矩阵处理和图形处理等方面有着得天独厚的优势。利用 MATLAB的M文件来求解电路 方程,只需一个或几个语句即可完成,同时MATLAB提供的 Simulink工具可直接建立电路模拟模型,随意改变模拟参数,并且立即可得到修改后的模拟结果(Scope显示),进一步省去了编程的步骤。
1.图一所示的电路中,Us=16V,R1=R3=R4=1Ω,R2=2Ω,K=4,求U10.:
求解此题的方程组为
对应的M文件为
A=[-7 -2 0;-3 2 0;1 0 1]; %定义方程组的系数矩阵A
B=[16 0 16]; %定义右端矩阵
C=A\B %求解未知变量矩阵C
C=4.000
6.000
12.000 此为U10值
2.在图3所示的电路中,R3=R6=1Ω,G8=1S,L1=1H,C4=1e-6F,C9=2e-6F,US7=10sin100tV,IS2=2sin100Ta,g=1.用2b法求各支路的变量。
与图3对应的2b方程的矩阵形式为
其M文件为
A=[-1 0 0 0 0 1 0 0 0;-1 1 0 0 0 1 0 0;0 1 0 0 0 -1 0 1 1;0 0 0 1 0 0 -1 0 0;0 0 0 0 -1 0 0 0 -1]
B=[1 1 0 0 0 1 0 0 0;0 0 1 -1 0 0 -1 0 0;0 -1 -1 0 0 0 0 1 0;0 0 0 0 -1 0 0 -1 1]
C=[-1 0 -1 j*1E -4 0 -1 1 1 j*2E -4]
Ye=diag(C)
Ye(5,6)=-1
D=[j*1 0 0 1 1 -1 1 1 0 -1 -1];
Ze=diag(D)
Us=[0 0 0 0 0 0 1 0+j* 0 0 0]'
Is=[0 -2+j*0 0 0 0 0 0 0 0]'
E=zeros(5,9)
F=zeros(4,9)
G=[0 0 0 0 0]'
H=[0 0 0 0]'
W=[E A;B F;Ye Ze]
N=[G;H;Us+Is]
Xn=W\N
第6条支路的电压向量为
1.0e+002*(-0.0000+0.0004i);
计算其峰值为:0.05656V。
3.图6所示的电路中,开关 s闭合前已达稳定状态。已知:R=0.1Q,C=1F,L=0.1H,e1(t)=10V,e(t)=5V,求开关s在时间t=0瞬时闭合后,电感支路上的电流iL(t)。
此题求解的二阶微分方程如下:
对应的M文件为
dsolve('D2y+10*Dy+10*y=1000','Dy(0)=100','Y(0)=0')
ans=100-101.6398*exp(-1.1270*t)+1.6398*exp(-8.8730*t)
其解为iL(t)=100-101.6398e-1.1270t+1.6398e-8.8730t.
第二篇:Matlab程序设计课程总结
Matlab课程总结
1.Matlab的课程总结
随着对matlab的学习的深入,我对其了解也更加深入。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
应用matlab语言编程的方法来对复杂电路进行分析和计算,不仅节约计算时间、方便地调试电路参数,而且还可以非常直观地观察和测量电路中的电压、电流和功率等物理量。结论表明,matlab提供了高效简洁的编程方法,其强大而简易的绘图功能、矩阵和数组运算能力以及很强的扩充性,能充分的满足基本电路分析、计算的需要,从而可以大大地提高计算精度和工作效率,在电路理论学科研究与工程实践中具有很好的应用价值。
2.matlab的优势和应用
2.1 MATLAB的优势
(1)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(2)出色的图形处理功能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(3)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
2.2matlab的应用
MATLAB的应用领域十分广阔,典型的应用举例如下:
(1) 数据分析
(2) 数值与符号计算;
(3) 工程与科学绘图;
(4) 语音处理;
(5) 图像与数字信号处理;
(6) 建模、仿真及样机开发;
(7) 新算法研究开发;
(8) 图形用户界面设计。
3.matlab在电路分析中的应用举例
在电路分析中,随着电路规模的加大,微分方程阶数以及联立方程的个数势必增多,给解算带来困难。传统的计算机编程语言,如FORTRAN、C语言等在处理高阶微分方程和大规模联立方程组问题时,大量的时间和精力都花在矩阵处理(如矩阵输入、求逆、稀疏矩阵处理等)和图形的生成分析等繁琐易错的细节上。而被誉为第四代计算机语言的MATLAB在矩阵处理和图形处理等方面有着得天独厚的优势。利用 MATLAB的M文件来求解电路 方程,只需一个或几个语句即可完成,同时MATLAB提供的 Simulink工具可直接建立电路模拟模型,随意改变模拟参数,并且立即可得到修改后的模拟结果(Scope显示),进一步省去了编程的步骤。
1.图一所示的电路中,Us=16V,R1=R3=R4=1Ω,R2=2Ω,K=4,求U10.:
求解此题的方程组为
对应的M文件为
A=[-7 -2 0;-3 2 0;1 0 1]; %定义方程组的系数矩阵A
B=[16 0 16]; %定义右端矩阵
C=A\B %求解未知变量矩阵C
C=4.000
6.000
12.000 此为U10值
2.在图3所示的电路中,R3=R6=1Ω,G8=1S,L1=1H,C4=1e-6F,C9=2e-6F,US7=10sin100tV,IS2=2sin100Ta,g=1.用2b法求各支路的变量。
与图3对应的2b方程的矩阵形式为
其M文件为
A=[-1 0 0 0 0 1 0 0 0;-1 1 0 0 0 1 0 0;0 1 0 0 0 -1 0 1 1;0 0 0 1 0 0 -1 0 0;0 0 0 0 -1 0 0 0 -1]
B=[1 1 0 0 0 1 0 0 0;0 0 1 -1 0 0 -1 0 0;0 -1 -1 0 0 0 0 1 0;0 0 0 0 -1 0 0 -1 1]
C=[-1 0 -1 j*1E -4 0 -1 1 1 j*2E -4]
Ye=diag(C)
Ye(5,6)=-1
D=[j*1 0 0 1 1 -1 1 1 0 -1 -1];
Ze=diag(D)
Us=[0 0 0 0 0 0 1 0+j* 0 0 0]'
Is=[0 -2+j*0 0 0 0 0 0 0 0]'
E=zeros(5,9)
F=zeros(4,9)
G=[0 0 0 0 0]'
H=[0 0 0 0]'
W=[E A;B F;Ye Ze]
N=[G;H;Us+Is]
Xn=W\N
第6条支路的电压向量为
1.0e+002*(-0.0000+0.0004i);
计算其峰值为:0.05656V。
扩频通信系统的建模与仿真
目的
1、 加深对扩频通信系统的理解
2、 了解直接序列扩频通信系统的抗噪声能力
3、 熟悉扩频码在直序扩频中的作用
内容
设计一个完整的扩频通信系统模型,包含信号的产生,扩频,调制,解扩,解调以及恢复的全过程,并通过信号的频谱对系统进行分析。
原理
1、 直接序列扩频通信系统
扩展频谱调制是指已调信号带宽远大于调制信号带宽的任何调制体制;在这类体制中已调信号的带宽基本上和调制信号带宽无关。
直接序列扩频发射机框图如图4-1所示,二进制数据源通过乘法器与PN序列相乘,由于PN序列的码元持续时间远小于数据源的码元持续时间,因此得到的信号频谱将大大扩展,接下来将扩展了频谱的数字信号通过数字调制进行发送,得到发射的扩频信号。其中,发射信号的表达式为
图4-1 直接序列扩频的发射机系统结构
直接序列扩频系统的信道以及接收机结构如图所示
图4-2 直接序列扩频的接收机系统框图
接收方接收到的信号由扩频信号,噪声信号以及干扰信号组成,由此可以得到接收信号的表达式:
当接收机达到同步要求时,其本地扩频序列与发射机扩频序列相同。解扩也是以乘法器完成的,因此解扩输出信号为:
由于扩频序列 ,故上式第一项为,后面两项属于宽频分量,可以通过滤波器滤除。
步骤
直接序列扩频发射机的设计:
为保证频谱的平滑,仿真参数如下图所示:
图4-3 系统仿真参数设置
1、二进制随机数发生器模块产生基带二进制信号,其采样时间设置为0.01,这样就可以得到数据率为100bps的基带信号,由于扩频时,需要与数据率高于自己的扩频码相乘,因此通过Rate Transition模块进行速率调整,并通过Unipolar to Bipolar Converter模块进行双极性转换,得到双极性信号。
2、扩频码由PN序列发生器产生,其中PN序列的生成多项式为[1 0 0 0 0 1 1],初始状态设置为[0 0 0 0 0 1]。由于采样时间设定为1/2000,这样,就能够产生数据率为2Kbps的扩频码
3、利用乘法器进行扩频,然后将扩频信号送入到BPSK调制模块进行数字调制,并经过速率转换后按照1/8000的采样时间进行采样保持(Unit Delay模块),最后通过频谱仪显示频谱
4、为了观察扩频前的信号频谱,再将二进制基带信号通过采样,然后观察频谱,其中Unit Delay模块与第三步中的Unit Delay模块设置一致。
图4-4 直接序列扩频发射机仿真模型
完整的直接序列扩频通信系统的设计与仿真
1、 将发射机模型封装为一个子系统,如下图所示:
图4-5 扩频信号发射机子系统
2、将直序扩频信号送到高斯白噪声信道中进行传输,设置高斯噪声信道的噪声方差为10。并通过加法器叠加单频干扰(设置为300Hz的正弦波,采样时间为1/2000)。
3、产生本地解扩码序列,解扩码与扩频码一致,可参照扩频码进行设置
4、扩频信号与解扩码相乘,产生解扩信号,然后送入到BPSK中进行解调,极性变换,最后观察信号频谱。
5、解调后的信号与原始二进制基带信号进行误码率计算,其中二进制基带信号的产生与发射机相同,可参照后者进行设置。
下图为完整的直序扩频的模型,其中所有的采样保持序列的采样时间均设置为1/8000
图4-6 直序扩频系统仿真模型
结果
分析扩频通信系统的频谱特性,并测试其抗噪声性能。
通信1001班
黎利丽