第1页:8.1 SIMULINK基础知识
8.1 SIMULINK基础知识 8.1.1 求解器的选择:涉及以下几类信号与处理方式。
- 标量信号
- 矢量信号
- 矩阵信号
- 模块采样时间
- 基于帧的处理
- 基于样值的处理
- 处理标量、矢量和矩阵信号时遵守的规则
第2页:信号属性参数设置
参数设置:信号属性
- 基于样值的一维输出,所使用模块中的其它矢量参数都应是行而不是列向量
- 基于样值的行向量输出,所使用模块中的其它矢量参数都应是列而不是行向量
- 基于样值的列向量输出
- 设置 Samples per frame 参数为输出帧每帧的采样值个数,也就是信号中行的个数
- 基于帧:根据需要产生的信号类型来设置相应的参数
说明:源文件该页「基于样值的一维」与「基于样值的行向量」两句关于其它矢量参数应为行向量还是列向量的表述相互矛盾,且文字抽取存在串行,此处按原文顺序如实保留,建议对照原课件插图核对。
第3页:例8-1 基于样值的处理(一)
例8-1:对随机源模块参数的设置说明基于样值的处理和基于帧的处理。
- 基于样值一维输出
- 基于样值的行向量输出
- 基于样值的列向量输出
第4页:例8-1 基于帧的处理(二)
例8-1:对随机源模块参数的设置说明基于样值的处理和基于帧的处理。
- 基于帧且每帧一个采样值输出
- 基于帧且每帧多个采样值输出
第5页:8.1.2 求解器的类型
8.1.2 求解器的类型
- 固定步长求解器
- 步长大小在整个仿真过程中保持不变;而变步长求解器根据模型的动态变化逐步改变步长大小。
- 固定步长离散求解器
- 在当前采样点上加上所选择的固定步长得到下一个采样点的值。
- 固定步长连续求解器
- Simulink提供的一组固定步长连续求解器也是在当前的采样点上加上固定步长得到下一个采样点。
- 可变步长求解器
- 分为可变步长离散求解器与可变步长连续求解器两类。
第6页:可变步长连续求解器一览
下表列出可变步长连续求解器的类型与应用特征。
可变步长连续求解器的类型与应用特征| 求解器 | 类型 | 应用特征 |
|---|
| Ode45 | Runge-Kutta(4,5)一步求解器 | Simulink的缺省求解器,适用于仿真精度要求较低的情况 |
|---|
| Ode23 | Runge-Kutta(2,3)一步求解器 | 适用于有严格误差指标要求的情况 |
|---|
| Ode113 | 可变阶 Adams-Bashforth-Moulton PECE 多步求解器 | 当使用 Ode45 效果很差时采用 |
|---|
| Ode15s | 基于数字差分公式的可变阶多步求解器 | 在大容差下使用,尤其是对于「僵硬」模型 |
|---|
| Ode23s | 基于修正型的二阶 Rosenbrock 公式一步求解器 | Ode15s 效果不好时使用,用于中等「僵硬」模型 |
|---|
| Ode23t | 采用自由内插的梯型法则 | 与 Ode23s 类似,对大容差的「僵硬」型问题更有效 |
|---|
| Ode23tb | 采用间接式 Runge-Kutta 公式,其第一级采用梯型法则,第二级采用二阶后差分公式 | — |
|---|
说明:源文件中该求解器公式名写作 Rosenbrook,标准写法为 Rosenbrock(Rosenbrock公式),此处按标准写法列出。
第7页:配置参数对话框 求解器面板
8.1.3 配置参数对话框设置 求解器面板(Solver)
- 定义仿真起始与终止时间,选择和配置仿真器
- 求解器选项定义了可以使用的求解器的类型以及该求解器的一些仿真指标
第8页:输出面板与优化面板
输出面板(Data Import/Export):输出面板允许输入/输出数据到MATLAB工作空间。
- Load from workspace:定义来自MATLAB工作空间的数据
- Save to workspace:定义输出到MATLAB工作空间的数据
- Save options:定义数据保存和导入的格式
- Output options:控制仿真的输出,仿真输出有三种方式,包括选择细化输出并定义细化因数、产生额外的输出、产生指定的输出
优化面板(Optimization):选择各种选项来改善仿真性能和模型产生的代码性能从而提高执行速度。
第9页:诊断面板、硬件实现与模型参考面板
诊断面板(Diagnostics):定义在模型编译或仿真过程中出现不正常的情况时,Simulink应该采取什么诊断,并显示警告或错误信息;警告信息不会停止仿真,错误信息可以。
硬件实现面板(Hardware Implementation):定义系统模型所代表的系统的硬件特征,这样在仿真时可检测到目标硬件上可能出现的错误,如硬件溢出。
模型参考面板(Model Referencing):模型参考面板允许将其它模型包含到该模型里以及将该模型包含到其它模型中。
第10页:8.1.4 仿真诊断浏览器
8.1.4 仿真诊断浏览器:仿真诊断浏览器包含一个错误摘要面板和一个错误信息面板。
- 错误摘要面板对于每个错误显示的信息包括:信息类型(Message)、出现错误的模块名字(Source)、报告错误的组件(Reported by)、简化的错误信息(Summary)
- 错误信息面板一开始显示列在错误摘要面板中的第一条错误信息的内容
- Simulink在显示浏览器的同时还打开了包含第一个错误的子系统并高亮显示错误模块
第11页:仿真诊断浏览器界面
本页为仿真诊断浏览器的界面示意,上方为错误摘要面板,下方为错误信息面板。
第12页:8.1.5 数据输出的方式
8.1.5 数据输出的方式
- 将信号送入 Scope 和 XY Graph 模块
- 将输出写入返回变量中,用MATLAB绘图命令
- 用 To Workspace 模块将输出写入工作空间,再用MATLAB绘图命令画出结果
第13页:8.1.6 模型编辑器
8.1.6 模型编辑器:模型编辑器由以下部分组成。
第14页:8.1.7 Simulink基本库模块
8.1.7 Simulink基本库模块
- Simulink的基本模块
- 这些模块是系统建模的最基本单元,它包括了各个专业在建模仿真时都会用到的模块。
- 与专业领域相关的模块集
- 如Simulink信号处理模块集(digital signal processing blockset)和通信模块集,分别含有建立信号处理系统和通信系统所需要的基本模块和常用模块。
第15页:8.2.1 启动Simulink
8.2 SIMULINK基本操作 8.2.1 Simulink基本建模过程 启动Simulink
- 在MATLAB的命令窗口输入命令 Simulink
- 从MATLAB任务栏上点击 Start 按钮,然后选择 Simulink > Library Browser
然后打开模型编辑器。
第16页:SIMULINK基本建模过程
SIMULINK基本建模过程
- 画框图:挑选模块,连接模型窗口中的模块
- 设置模块和配置参数:设置参数对话框中的系统参数,设置模型中每个模块的参数
- 运行模型
- 保存模型
第17页:8.2.2 调整模块位置
8.2.2 调整模块位置
第18页:8.2.3 常用鼠标和键盘操作
8.2.3 常用鼠标和键盘操作
- 对模块的操作
- 对连线操作
- 对模块的信号标签操作
- 对模块标注的操作
第19页:信源库、信道库与通信滤波器库
8.3 SIMULINK扩展集——通信模块集
- 信源库(Comm Sources)
- 产生随机数据的子库(Random Data Sources)、噪声产生器子库(Noise Generators)、序列产生器。
- 信道库(Channels)
- 高斯白噪声信道模块(AWGN Channel)、衰落信道子模块库、二进制对称信道模块(Binary Symmetric Channel)。
- 通信滤波器库(Comm Filters)
- 该库所包含的模块可以用于滤波或脉冲成型,提供的滤波功能包括升余弦滚降滤波器滤波、高斯滤波器滤波。
第20页:信宿库与均衡器库
- 信宿库(Comm Sinks)
- 计算错误统计数据模块(Error Rate Calculation)、画眼图模块(Discrete-Time Eye Diagram Scope)、生成散点图模块(Discrete-Time Scatter Plot Scope)、画信号的轨迹图模块(Discrete-Time Signal Trajectory Scope)。
- 均衡器库(Equalizers)
- 包含三类均衡器:线性均衡器、判决反馈均衡器和用于维特比算法的 MLSE(最大似然估计)均衡器。该模块集支持自适应算法:最小均方(LMS)算法、归一化最小均方算法、带符号的最小均方算法、变步长大小的最小均方算法、递归最小平方(RLS)算法、恒模算法(CMA)。
第21页:检纠错库、交织库与调制库
- 检纠错库(Error Detection and Correction)
- 分组编码(block coding),包括循环码、BCH码、汉明码、Reed-Solomon码;卷积编码(convolutional coding);循环冗余检测编码(cyclic redundancy check,CRC)。
- 交织库(Interleaving)
- 分组交织,包括矩阵、随机、代数以及螺旋扫描交织器;卷积交织,包括多路复用交织器和螺旋交织器。
- 调制库(Modulation)
- 模拟通带调制子库(Analog Passband Modulation),提供模拟调制技术;以及数字基带调制子库(Digital Baseband Modulation),提供数字调制技术。
第22页:射频损害库、序列变换库与信源编码库
- 射频损害库(RF Impairments)
- 非线性和同相分量/正交分量不平衡;相位/频率偏移和相位噪声;接收机的热噪声和自由空间路径损耗。
- 序列变换库(Sequence Operations)
- 对序列进行补零(insert zero)、打孔(puncture)、加扰(scrambler)、解扰(descrambler)等操作。
- 信源编码库(Source Coding)
- 支持标量量化、压缩扩张器以及差分编码,不支持矢量量化;库中的模块可以用划分和码簿来量化信号,用 μ-law 或 A-law 压缩器或扩张器来压扩信号,用差分编码对信号编码或解码。
第23页:同步库与功能模块库
同步库(Synchronization):该库中的模块实现了几种用于定时恢复与载波恢复的算法,还包含了一些底层的器件,可以用它们来构建自己的锁相环。
功能模块库(Utility Blocks):
- Align Signals
- 对齐两个信号的符号时钟
- Bipolar to Unipolar Converter
- 将双极性信号映射成单极性信号
- Bit to Integer Converter
- 将比特向量映射为整数向量
- Complex Phase Difference
- 输出两个复信号的相位差
- Complex Phase Shift
- 对信号进行相移
- Data Mapper
- 实现编码方案的改变
- Find Delay
- 求两信号之间的延时
- Integer to Bit Converter
- 将整数向量映射为比特向量
- Unipolar to Bipolar Converter
- 将单极性信号映射成双极性信号
第24页:8.4.1 信道噪声模型
8.4 通信系统基本模型 8.4.1 信道噪声模型
- 用 Bernoulli Binary Generator 模块来模拟信源,产生随机二进制随机序列
- 用 Binary Symmetric Channel 模块来模拟有噪声的信道,它通过参数 Error probability 定义错误概率将随机错误引入传输的信号中
- 通过 Error Rate Calculation 模块来计算信道的错误率
- Display 模块显示了 Error Rate Calculation 模块(来自于 Simulink Sinks 库)的输出
第25页:8.4.2 数字通信系统
8.4.2 数字通信系统 数字基带调制系统
- 带通信号低通等效原理
- 数字调制系统模型的数据类型变换
高斯白噪声信道下的二进制相移键控(BPSK)模型:在数字基带 BPSK 中,符号0和1被分别调制到了复数 exp(jt) 和 -exp(jt) 上,这里 t 是一个固定的角度;在下面的例子中 t=0,因此这些复数只是 1 和 -1。
第26页:BPSK模型组成
该模型用 BPSK Modulator Baseband 模块、AWGN Channel 模块、BPSK Demodulator Baseband 模块来模拟有噪声的信道。
第27页:8.4.3 模拟通信系统
8.4.3 模拟通信系统
- 信号采样时间
- Communications Blockset 中的所有模拟解调器产生离散时间的输出而不是连续时间的输出,这些模块要求在参数对话框中定义输出采样时间;在MATLAB较低版本中,一些模拟调制器也要求定义采样时间,如调频模块(FM Modulator Passband)和单边带调制模块(SSB AM Modulator Passband)。为了在系统中准确地了解各模块输出信号的采样时间,完成系统的正确仿真,可以使用探针模块(Probe)。
- 滤波器截止频率
- 在许多情况下,合适的滤波器截止频率一般选为载波频率的一半;如果截止频率太高,载频就可能不被滤除;如果截止频率太低,它有可能会减小消息信号的带宽,损失消息信号频谱分量,造成恢复的信号波形畸变。
第28页:8.4.4 汉明码信道编码模型
8.4.4 信道编码模型 汉明码信道编码模型组成:将 Hamming Encoder 模块和 Hamming Decoder 模块加入到信道噪声模型中,两模块都来自 Error Detection and Correction 库。
第29页:8.4.5 Simulink与MATLAB互连(一)
8.4.5 Simulink与MATLAB互连:如何使Simulink建模仿真与MATLAB强大的图形数据处理功能进行优势互补呢?即完成 Simulink 与 MATLAB 的互连。
Signal to workspace 模块将 Simulink 仿真产生的数据发送给 MATLAB。
第30页:8.4.5 From workspace模块
From workspace 模块是将MATLAB丰富的函数库产生的信号送给 Simulink。