MATLAB-仿真技术
MATLAB仿真技术

MATLAB仿真技术作业合集页脚内容1页脚内容1第1章 习题5.利用直接输入法和矩阵编辑器创建矩阵A=⎥⎦⎤⎢⎣⎡642531。
解:⑴利用直接输入法输入程序A=[1 3 5;2 4 6]按Enter 键后,屏幕显示A = 1 3 52 4 6⑵用矩阵编辑器创建矩阵,如图1.1所示。
图1.1 MATLAB 编辑器7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。
页脚内容2a=⎥⎦⎤⎢⎣⎡642531⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡098706540321⇒a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡0000098706540321 解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。
图1.2 图1.3图1.4 图1.5图1.6页脚内容39.已知矩阵B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。
解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序B1=B([1,2],[2,4,5])按Enter 键后,屏幕显示B1 = 0 0 155 14 16②输入程序B2=B([1,3],:)按Enter 键后,屏幕显示B2 = 17 0 1 0 15 4 0 13 0 22③第一行和第三行的第2;4个元素原本就为0。
④输入程序如下C=B(1,:)<5; %将B矩阵第一行中小于5 的值标记为1D=B(1,C) %去B矩阵第一行中标为1的元素按Enter键后,屏幕显示D= 0 1 011.已知矩阵a为4阶魔方阵,令a+3赋值给b,a+b赋值给c,求b和c。
Matlab仿真建模的基本原理与技术

Matlab仿真建模的基本原理与技术Matlab(Matrix Laboratory)是一种高级编程语言和环境,广泛应用于科学与工程领域。
它具备强大的数值计算和数据可视化功能,能够帮助工程师和科学家解决各种实际问题。
本文将探讨Matlab仿真建模的基本原理与技术。
一、Matlab的基本特点Matlab是一款强大的数学工具,具有以下特点:1. 矩阵运算能力:Matlab的核心功能是进行矩阵数学运算。
它提供了简洁而强大的语法,使得矩阵和向量的计算变得方便且高效。
2. 大量的内置函数:Matlab拥有丰富的内置函数库,包括数值计算、信号处理、图像处理、优化、统计等领域。
这些函数可以极大地简化复杂问题的求解过程。
3. 可视化功能:Matlab提供了丰富的数据可视化工具,能够直观地显示和分析数据。
用户可以通过绘制曲线、制作动画等方式,深入了解数据的规律。
4. 兼容性:Matlab是跨平台的,可以在多个操作系统上运行,如Windows、Linux和MacOS等。
这使得用户可以在不同的计算环境下无缝切换和共享代码。
5. 可扩展性:Matlab支持用户自定义函数和工具箱的开发。
这样,用户可以根据自己的需求进行定制和扩展,使Matlab更适应各种应用场景。
二、Matlab仿真建模的基本步骤Matlab中的仿真建模可以分为以下步骤:1. 确定仿真建模目标:首先,需要明确仿真的目标是什么,例如系统性能评估、控制策略设计等。
这有助于确定仿真的范围和需要建立的模型。
2. 收集输入数据:仿真建模需要用到输入数据,在确定仿真目标后,需收集和准备相应的输入数据。
输入数据可以是实验数据、统计数据或者通过其他模型得到的数据。
3. 建立模型:根据仿真的目标,使用Matlab编写代码,建立合适的数学模型。
在建立模型过程中,可借助Matlab提供的内置函数和工具箱,以及自己编写的辅助函数。
4. 设定参数和初始条件:模型的运行需要设定相应的参数和初始条件。
matlab系统仿真

第七章系统仿真的MATLAB实现由于计算机技术的高速发展,我们可以借助计算机完成系统的数字仿真。
综前所述,数字仿真实质上是根据被研究的真实系统的模型,利用计算机进行实验研究的一种方法。
仿真的主要过程是:建立模型、仿真运行和分析研究仿真结果。
仿真运行就是借助一定的算法,获得系统的有关信息。
MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。
MATLAB是一个高度集成的系统,MATLAB提供的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统。
在过去几年里,Simulink已经成为数学和工业应用中对动态系统进行建模时使用得最为广泛的软件包。
MATLAB仿真有两种途径:(1)MATLAB可以在SIMULINK窗口上进行面向系统结构方框图的系统仿真;(2)用户可以在MATLAB的COMMAND窗口下,用运行m文件,调用指令和各种用于系统仿真的函数,进行系统仿真。
这两种方式可解决任意复杂系统的动态仿真问题,前者编辑灵活,而后者直观性强,实现可视化编辑。
下面介绍在MATLAB上实现几类基本仿真。
7.1 计算机仿真的步骤在学习计算机仿真以前,让我们先总结一下计算机仿真的步骤。
计算机仿真,概括地说是一个“建模—实验—分析”的过程,即仿真不单纯是对模型的实验,还包括从建模到实验再到分析的全过程。
因此进行一次完整的计算机仿真应包括以下步骤:(1)列举并列项目每一项研究都应从说明问题开始,问题由决策者提供或由熟悉问题的分析者提供。
(2)设置目标及完整的项目计划目标表示仿真要回答的问题、系统方案的说明。
项目计划包括人数、研究费用以及每一阶段工作所需时间。
(3)建立模型和收集数据模型和实际系统没有必要一一对应,模型只需描述实际系统的本质或者描述系统中所研究部分的本质。
matlab电机仿真精华50例

matlab电机仿真精华50例Matlab是一种功能强大的仿真软件,它被广泛应用于电机仿真领域。
在这篇文章中,我们将介绍Matlab电机仿真的50个精华例子,帮助读者更好地了解和应用电机仿真技术。
1. 直流电机的仿真:通过Matlab可以模拟直流电机的性能,包括转速、扭矩和电流等。
2. 交流电机的仿真:使用Matlab可以模拟交流电机的工作原理,包括转子和定子的相互作用。
3. 同步电机的仿真:通过Matlab可以模拟同步电机的运行特性,包括电压和频率的控制。
4. 步进电机的仿真:利用Matlab可以模拟步进电机的运行过程,包括步进角度和步进速度等。
5. 无刷直流电机的仿真:通过Matlab可以模拟无刷直流电机的工作原理,包括转子和定子的相互作用。
6. 电机控制系统的仿真:利用Matlab可以模拟电机控制系统的运行过程,包括速度和位置的闭环控制。
7. 电机噪声的仿真:通过Matlab可以模拟电机噪声的产生和传播过程,帮助优化电机的设计。
8. 电机故障诊断的仿真:利用Matlab可以模拟电机故障的发生和诊断过程,提供故障检测和排除的方法。
9. 电机热仿真:通过Matlab可以模拟电机的热传导和散热过程,帮助优化电机的散热设计。
10. 电机振动的仿真:利用Matlab可以模拟电机的振动特性,帮助优化电机的结构设计。
11. 电机效率的仿真:通过Matlab可以模拟电机的能量转换过程,评估电机的效率和能耗。
12. 电机启动过程的仿真:利用Matlab可以模拟电机的启动过程,包括起动电流和启动时间等。
13. 电机负载仿真:通过Matlab可以模拟电机在不同负载条件下的工作特性,帮助优化电机的设计。
14. 电机饱和仿真:利用Matlab可以模拟电机在饱和状态下的工作特性,提供更准确的仿真结果。
15. 电机电磁干扰的仿真:通过Matlab可以模拟电机产生的电磁干扰对其他设备的影响,提供干扰抑制的方法。
16. 电机电磁场的仿真:利用Matlab可以模拟电机内部的电磁场分布,帮助优化电机的设计。
matlab 控制系统仿真

摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。
MATLAB GUI 是MATLAB的人机交互界面。
由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI 对于控制系统仿真的平台设计显得十分合适。
GUI对于每个用户窗口生成.fig和.m 文件。
前者负责界面的设计信息,后者负责后台代码的设计。
本文所做的研究主要是基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。
本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。
在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。
关键词:控制系统;MATLAB GUI;计算机辅助设计AbstractMATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limited spend more valuable time to solve scientific problems.The MATLAB GUI is the interactive interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user. Fig and.M file. The former is responsible for the design of the interface information,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control system theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software. The main functions of the software: the realization of transfer function model input,the state equation model input,the model fitted for the control system stability analysis,system observability controllability judgments、rendering the system Nyquist diagram、Bode plots、root locus and Pole-zero distribution. While continuing to improve based on the principle of automatic control can be used for undergraduate teaching course experiments and scientific research in general.Key words:Control System;MATLAB GUI; Computer-assistant design目录第1章概述 (1)1.1 论文选题背景和意义 (1)1.2 计算机辅助分析与设计在控制系统仿真中的发展现状 (1)1.3 本文主要内容 (3)第2章控制系统与MATLAB语言 (4)2.1 控制系统理论基础 (4)2.2 MATLAB语言与控制系统工具箱 (5)第3章 MATLAB GUI简介及应用 (9)3.1 MATLAB GUI (9)3.2 软件设计步骤 (10)第4章仿真系统测试与演示 (16)4.1 控制系统的模型输入 (16)4.2 控制系统的稳定性分析 (19)4.3 控制系统可控可观性分析 (20)4.4 控制系统频率响应 (23)4.5 控制系统时域响应 (27)4.6 控制系统根轨迹绘制 (28)结论 (31)参考文献 (32)致谢 (33)第1章概述1.1 论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。
Matlab中的模拟与仿真技术详解

Matlab中的模拟与仿真技术详解引言Matlab是一种被广泛应用于科学研究和工程领域的高级计算环境和编程语言。
它提供了丰富的函数库和工具箱,使得模拟和仿真技术得以在各种科学和工程应用中发挥出色的作用。
本文将详细介绍Matlab中的模拟与仿真技术,并深入探讨其在不同领域的应用。
一、Matlab中的模拟技术1.1 数学模型的建立在Matlab中进行模拟,首先需要建立相应的数学模型,以描述系统的行为。
数学模型可以是一组方程、差分方程、微分方程等,用于描述系统的输入、输出和中间变量之间的关系。
Matlab提供了强大的数学工具,如符号计算工具箱,可以帮助用户更方便地建立和求解各种数学模型。
1.2 信号与系统模拟信号与系统模拟是Matlab中常见的一种模拟技术。
通过模拟信号的输入、处理和输出过程,可以对系统进行分析和验证。
在Matlab中,可以使用信号处理工具箱中的函数来生成、操作和分析各种类型的信号。
例如,可以生成正弦波、方波、脉冲信号等,并对它们进行滤波、频谱分析、时频分析等操作。
1.3 电路模拟电路模拟是Matlab中另一个常用的模拟技术。
通过建立电路模型,可以对电路的行为进行仿真和分析。
Matlab提供了电路仿真工具箱,用户可以通过搭建电路拓扑结构和设置元器件参数,实现对电路的模拟和分析。
这种电路模拟技术在电子电路设计、性能评估和故障诊断等领域有广泛的应用。
1.4 机械系统模拟除了信号与系统和电路模拟外,Matlab还可以进行机械系统的模拟。
通过建立机械系统的动力学模型,可以预测物体的运动规律、受力情况等。
Matlab提供了机械系统建模和仿真工具箱,用户可以建立刚体系统、弹簧阻尼系统等,并进行仿真和动态分析。
这种机械系统模拟技术在机械工程、工业设计等领域具有重要的应用价值。
二、Matlab中的仿真技术2.1 数值仿真数值仿真是Matlab中最常见的仿真技术之一。
它通过数值计算方法对系统进行仿真,并得到系统的数值解。
机器人matlab仿真课程设计

机器人matlab仿真课程设计一、教学目标本课程的教学目标是使学生掌握机器人Matlab仿真基本原理和方法,能够运用Matlab进行简单的机器人系统仿真。
具体分解为以下三个目标:1.知识目标:学生需要了解机器人Matlab仿真的基本原理,掌握Matlab在机器人领域中的应用方法。
2.技能目标:学生能够熟练使用Matlab进行机器人系统的仿真,包括建立仿真模型、设置仿真参数、运行仿真实验等。
3.情感态度价值观目标:通过课程学习,培养学生对机器人技术的兴趣和热情,提高学生解决实际问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容教学内容主要包括以下几个部分:1.Matlab基础知识:介绍Matlab的基本功能和操作,包括数据处理、图形绘制、编程等。
2.机器人数学模型:介绍机器人的运动学、动力学模型,以及传感器和执行器的数学模型。
3.机器人仿真原理:讲解机器人仿真的一般方法和步骤,包括建立仿真模型、设置仿真参数、运行仿真实验等。
4.机器人控制系统仿真:介绍机器人控制系统的结构和原理,以及如何使用Matlab进行控制系统仿真。
5.机器人路径规划仿真:讲解机器人在复杂环境中的路径规划方法,以及如何使用Matlab进行路径规划仿真。
三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:通过讲解和演示,使学生了解机器人Matlab仿真的基本原理和方法。
2.案例分析法:通过分析实际案例,使学生掌握Matlab在机器人领域中的应用。
3.实验法:让学生亲自动手进行机器人仿真实验,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养学生的团队合作意识和解决问题的能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:《机器人Matlab仿真教程》。
2.参考书:相关领域的研究论文和书籍。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、Matlab软件、机器人仿真实验平台。
Matlab建模仿真

例:
求解Lorenz模型的状态方程,初值为 x1(0)=x2(0)=0,x3(0)=1e-10;
8/ 3, 10, 28
求解Lorenz模型的状态方程,
x 1(t ) x1(t ) x 2(t ) x3(t ) x 2(t ) x 2(t ) x3(t )
模块连接解释
0.5
Gain
×
Product 1
x´=∂x/∂t =bx-px²
-
+
-
S
Sum
Integrator
Scope
Gain1
LOGO
微分方程的Simulink求解 及Matlab数字电路仿真
微分方程的Simulink建模与求解
建立起微分方程的 Simulink 模型 可以用 sim( ) 函数对其模型直接求解 得出微分方程的数值解
3.计算机仿真
计算机仿真是在研究系统过程中根据相似原理, 利用计算机来逼真模拟研究对象。研究对象可以 是实际的系统,也可以是设想中的系统。在没有 计算机以前,仿真都是利用实物或者它的物理模 型来进行研究的,即物理仿真。物理仿真的优点 是直接、形象、可信,缺点是模型受限、易破坏 、难以重用。
计算机作为一种最重要的仿真工具,已经推出了 模拟机、模拟数字机、数字通用机、仿真专用机 等各种机型并应用在不同的仿真领域。除了计算 机这种主要的仿真工具外还有两类专用仿真器: 一类是专用物理仿真器,如在飞行仿真中得到广 泛应用的转台,各种风洞、水洞等;另一类是用 于培训目的的各种训练仿真器,如培训原子能电 站、大型自动化工厂操作人员和训练飞行员、宇 航员的培训仿真器、仿真工作台和仿真机舱等
当然我们可以直接观察Matlab工具箱原有的 Lorenz
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB-仿真技术作业合集第1章习题5.利用直接输入法和矩阵编辑器创建矩阵A=⎥⎦⎤⎢⎣⎡642531。
解:⑴利用直接输入法输入程序A=[1 3 5;2 4 6]按Enter 键后,屏幕显示A = 1 3 52 4 6⑵用矩阵编辑器创建矩阵,如图1.1所示。
图1.1 MATLAB 编辑器7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。
a=⎥⎦⎤⎢⎣⎡642531⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡098706540321⇒a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡0000098706540321解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。
图1.2 图1.3图1.4图1.5图1.69.已知矩阵B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。
解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序B1=B([1,2],[2,4,5])按Enter 键后,屏幕显示B1 = 0 0 155 14 16②输入程序B2=B([1,3],:)按Enter 键后,屏幕显示B2 = 17 0 1 0 15 4 0 13 0 22③第一行和第三行的第2;4个元素原本就为0。
④输入程序如下C=B(1,:)<5; %将B 矩阵第一行中小于5 的值标记为1D=B(1,C) %去B 矩阵第一行中标为1的元素按Enter 键后,屏幕显示D= 0 1 011.已知矩阵a 为4阶魔方阵,令a+3赋值给b ,a+b 赋值给c ,求b 和c 。
解:程序如下。
>> a=magic(4) %建立4阶魔方矩阵a = 16 2 3 135 11 10 89 7 6 124 14 15 1>> b=a+3 %将a 中各元素加3b = 19 5 6 168 14 13 1112 10 9 157 17 18 4>> c=a+b %将a,b 中对应元素相加c = 35 7 9 2913 25 23 1921 17 15 2711 31 33 513.已知A 为3×3的均匀分布随机矩阵,B 为3×2的均匀分布随机矩阵,C 为2×3的均匀分布随机矩阵,求Q=C *A^2*B 。
解:程序如下。
>> A=rand(3,3) %A 为3×3的均匀分布随机矩阵A = 664/815 717/785 408/14651298/1433 1493/2361 1324/2421751/5914 694/7115 338/353>> B=rand(3,2) %B 为3×2的均匀分布随机矩阵B = 687/712 581/607589/3737 614/12656271/6461 1142/1427>> C=rand(2,3) %C 为2×3的均匀分布随机矩阵C = 689/4856 1065/1163 1966/2049407/965 61/77 3581/5461>> Q1=C*A^2*BQ1 = 1444/357 6485/15441263/311 699/16315.指出下列矩阵函数所实现的具体运算。
⑴A=rand(5);⑵B=rank(A);⑶C=eig(A);⑷D=sqrtm(A);⑸E=det(A)解:⑴A=rand(5)建立5x5的均匀分布随机矩阵;⑵B=rank(A)求A 矩阵的秩;⑶C=eig(A)是求的A 矩阵的全部特征值;⑷D=sqrtm(A)是按矩阵乘法的方式对A 矩阵开平方根;⑸E=det(A)是求矩阵A 的行列式。
17.利用MATLAB 的roots 函数求ƒ(x)=5x +44x +103x +162x +17x +12=0的根。
解:程序运行如下>> p=[1,4,10,16,17,12]p = 1 4 10 16 17 12>> x=roots(p)x = -1.6506-1.0000 + 1.4142i-1.0000 - 1.4142i-0.1747 + 1.5469i-0.1747 - 1.5469i19.画出一个幅度为2、频率为4Hz 、相位为3π的正弦信号。
解:程序如下>> A=2;>> phi=pi/3;>> omega=2*pi/12;>> n=-10:10;>> x=A*sin(omega*n+phi);>> stem(n,x,'fill');>> grid on;运行结果如图1.7所示。
图1.7 离散正弦信号图第2章习题1.系统的微分方程为'x(t)=-4x(t)+2u(t),其中u(t)是幅度为1、角频率为1rad/s 的方波输入信号,试建立系统的Simulink模型并进行仿真。
解:利用模块库中的模块建立系统模型,如图2.1所示。
图2.1 求解微分方程的模型在Scope窗口中看到仿真曲线如图2.2所示。
图2.2 仿真结果3.某单位反馈控制系统如图2.3(a)所示,引人反馈如图2.3(b)所示。
F⊗Y F(a)控制系统结构图 (b)图2.3(1)在Simulink环境下构建原始系统的结构图,输入阶跃信号,进行仿真,并对结果进行分析。
(2)在原系统中引人比例反馈,在Simulink环境下构建引人比例反馈后的系统结构图,进行仿真,并对结果进行分析。
解:(1)在Simulink环境下构建原始系统的结构图如图2.4所示,仿真结果如图2.5所示。
图2.4 仿真模型图2.5 仿真结果(2)在Simulink环境下构建引人比例反馈后的系统结构图如图2.6所示,仿真结果如图2.7所示。
图2.6 仿真模型图2.7 仿真结果5.使用Simulink 仿真求下列系统的单位脉冲响应(Simulink 中没有单位冲激信号模块,所以要利用阶跃信号模块经微分来产生)。
(1)H (s )=)5)(2()1(5+++s s s s (2)H (s )=115232++++s s s s 解:(1)建立的系统仿真模型如图2.8所示,仿真结果如图2.9所示。
图2.8 系统仿真模型图2.9 仿真结果(2)建立的系统仿真模型如图2.10所示,仿真结果如图2.11所示。
图2.10 系统仿真模型图2.11 仿真结果第3章习题2.利用信号处理模块库中的模块,构造并仿真信号:ƒ(n)=δ(n)+2u(n-1)-δ(n-3)解:图3.1 仿真框图选择模块搭建好的模型如图3.1所示。
接着设置各个模块的参数,Discrete Impulse模块参数如图3.2所示,Discrete Impulse1模块参数如图3.3所示,Buffer中Output Buffer Size设置为20,Gain模块Gain参数设为-1,Constant模块中Constant Value设为2,Delay模块中Delay参数设为1。
仿真结果如图3.4所示。
图3.2 Discrete Impulse模块参数图3.3 Discrete Impulse1模块参数图3.4 仿真结果5.设计一个巴特沃斯数字低通滤波器,使其满足:通带截止频率为0.4π,通带波纹小于0.5dB;阻带截止频率为06π,阻带最小衰减为50dB,试用FDAtool设计该数字滤波器,并生成脉冲响应曲线和频率响应曲线。
解:按3.5图设计滤波器参数。
图13.5滤波器设计界面点击Impulse选项得到冲激响应曲线如图3.6所示。
图3.6 冲激响应频率响应曲线如图3.7所示。
图3.7 幅频特性和相频特性12.自行录入一段语言信号,并对其做4倍抽取运算,观测抽取前与抽取后的频谱变化。
解:选择模块构造仿真框图如图3.8所示。
图3.8 仿真模型框图在matlab工作空间输入命令[x,fs]=wavread('E:\yinyue\xuyong.wav');设置各个模块参数。
Buffer模块参数如图3.9所示。
Signal from work space参数如图3.10所示。
图3.9 Buffer参数设置图3.10 Signal from work space参数设置仿真结果如下:图3.11 仿真前图3.12 仿真后第4章习题2.对四进制差分相移键控(DPSK)通信系统进行建模和蒙特卡罗仿真。
解:程序如下:clear all;SNRindB1=0:2:12;SNRindB2=0:0.1:12;for i=1:length(SNRindB1)simu_err_prb(i)=snr2ps(SNRindB1(i)); %仿真误码率endfor i=1:length(SNRindB2)SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=2*qfunc(sqrt(SNR));endsemilogy(SNRindB1,simu_err_prb,'*');hold on;semilogy(SNRindB2,theo_err_prb);xlabel('Eb/N0(dB)');ylabel('误码率');legend('仿真符号误码率','理论符号误码率');function [p]=snr2ps(snr_in_dB)N=10000;Es=1;snr=10^(snr_in_dB/10);sigma=sqrt(Es/(4*snr));for i=1:2*Ntemp=rand;if (temp<0.5)dsource(i)=0;elsedsource(i)=1;endendmapping=[0 1 3 2];M=4;[diff_enc_output]=cm_dpske(Es,M,mapping,dsource);for i=1:N[n(1) n(2)]=gausamp(sigma);r(i,:)=diff_enc_output(i,:)+n;endnumoferr=0;prev_theta=0;for i=1:Ntheta=angle(r(i,1)+j*r(i,2));delta_theta=mod(theta-prev_theta,2*pi);if ((delta_theta<pi/4)|(delta_theta>7*pi/4))decis=[0 0];elseif (delta_theta<3*pi/4)decis=[0 1];elseif (delta_theta<5*pi/4)decis=[1 1];elsedecis=[1 0];endprev_theta=theta;if ((decis(1)~=dsource(2*i-1))|(decis(2)~=dsource(2*i))) numoferr=numoferr+1;endendp=numoferr/N;endfunction [enc_comp]=cm_dpske(E,M,mapping,sequence)k=log2(M);N=length(sequence);remainder=rem(N,k);if(remainder~=0)for i=N+1:N+k-remaindersequence(i)=0;endN=N+k-remainder;endtheta=0;for i=1:k:Nindex=0;for j=i:i+k-1index=2*index+sequence(j);endindex=index+1;theta=mod(2*pi*mapping(index)/M+theta,2*pi);enc_comp((i+k-1)/k,1)=sqrt(E)*cos(theta);enc_comp((i+k-1)/k,2)=sqrt(E)*sin(theta);endfunction [y1 y2]=gausamp(sigma)y1=sigma*randn(1);y2=sigma*randn(1);end运行结果如图4.1所示。