【Matlab】BASK的调试与解调仿真
索引
- 一、BASK的调制
- 1.1 曼彻斯特码
- 1.2 增益控制
- 1.3 常量求和
- 1.4 与载波相乘
- 1.5 波形预览
- 1.6 参数设置(参考)
- 二、BASK的解调
- 2.1 滤波
- 2.2 信号比较
- 2.3 波形预览
- 2.4 参数设置(参考)
- 三、常见问题
一、BASK的调制
根据BASK调制的原理,信号处理的步骤如下:
ManchesterCode["曼彻斯特码"]
gainControl["增益控制<br />(调制深度处理)"]
Sum["与常量1求和"]
Times["与载波相乘"]
BASK["BASK信号"]
ManchesterCode --> gainControl --> Sum --> Times --> BASK
下面我们使用Matlab/Simulink进行模型的分步实现。
1.1 曼彻斯特码
曼彻斯特码可以通过NRZ码和时钟信号进行异或获取。假设\(Manchester(t)\)为曼彻斯特码,NRZ(t)为NRZ码,Clock(t)为时钟信号,则有:
\]
在Simulink中,我们可以使用Bernoulli Binary Geneator来随机生成二进制流,即NRZ码。类似地,我们可以使用Pulse Generator来生成时钟脉冲信号。
上述的两个模块,以及接下来将要使用到的模块,都可以在Library Browser中找到。
因此,我们可以建立一个生成曼彻斯特码的模型:

注:Scope为示波器。
1.2 增益控制
为了实现幅度变化,我们需要使用Gain对曼彻斯特码进行增益控制。在进行增益控制前,我们需要将二进制数字信号转换成浮点型(双精度浮点型),以便更好的处理增益值。下面给出一种实现增益控制的解决方案:

1.3 常量求和
增益控制后,为了处理信号发生器产生的信号,避免后续过程持续出现0信号,需要对受增益控制的信号进行加1处理。我们可以使用Constant来生成常量。

1.4 与载波相乘
求和后,使用Product与载波进行乘法运算,即可得到BASK信号。我们可以使用Signal Geneator来生成载波。

1.5 波形预览
使用Scope模块,我们可以观察到各个阶段中信号的波形。将曼彻斯特信号和BASK调制信号连接到示波器,我们可以观察到下图:

上图中,图例XOR表示的为曼彻斯特码的波形图,图例Product表示的是BASK调制信号的波形图。需要注意的是,由于Bernoulli Binary Geneator产生的是随机信号,每次仿真所产生的波形图也是随机的。
1.6 参数设置(参考)
我们可以调节各模块的参数来控制BASK调制信号的形状,下面给出各模块的参考参数:
| 模块名 | 参数 | 设置值 |
|---|---|---|
| Pulse Generator | Gain | 0.5 |
| Pulse Width (% of period) | 50 | |
| Gain | Period (secs) | 1 |
| Signal Generator | Frequency | 50*pi |
注:未列出的模块参数按默认处理。
二、BASK的解调
根据BASK解调的原理,信号处理的步骤如下:
BASK["BASK信号"]
Times["与载波相乘"]
LowPassFilter["低通滤波器"]
Comparator["比较器"]
DemodulatedSignal["解调信号"]
BASK --> Times --> LowPassFilter --> Comparator --> DemodulatedSignal
下面我们使用Matlab/Simulink进行模型的分步实现。
2.1 滤波
为了将高频信号与低频信号分开,我们需要使用Analog Filter Design对BASK信号进行滤波处理。在滤波前,为了保证信号值恒为正数,需要与载波相乘。上一章的调制电路被封装成BASK Generator模块,用于生成BASK信号。
特别地,低通滤波器的截止频率需低于两倍的载波频率。

2.2 信号比较
BASK通过低通滤波器后,产生的波形可大致描述解调信号的形状。

上图中,图例XOR表示的为曼彻斯特码的波形图,图例Analog Filter Design表示的是滤波后的信号的波形图。由于们需要更加稳定的数字信号,所以可以使用比较器将波形抽离成数字信号。

以上就是BASK信号解调的模拟电路。
2.3 波形预览
使用Scope模块,我们可以观察到各个阶段中信号的波形。将曼彻斯特信号和BASK解调信号连接到示波器,我们可以观察到下图:

上图中,图例XOR表示的为曼彻斯特码的波形图,图例GreaterThanOrEqual表示的是BASK解调信号的波形图。
2.4 参数设置(参考)
我们可以调节各模块的参数来控制BASK调制信号的形状,下面给出各模块的参考参数:
| 模块名 | 参数 | 设置值 |
|---|---|---|
| Signal Generator | Frequency | 50*pi |
| Constant | Constant value | 0.6 |
| Analog Filter Design | Passband edge frequency (rad/s) | 50*pi |
注:未列出的模块参数按默认处理。
三、常见问题
Q:仿真过程中遇到正弦波畸变(包括幅度和形状),该怎么处理?
A:若在仿真过程中遇到正弦波畸变(包括幅度和形状),可以在Simulink工程空白处右键,选择Model Configuration Parameters,进入页面后,在选项卡Solver -> Solver details中进行如下参数设置:
| 参数 | 设置值 |
|---|---|
| Max step size | 1e-5 |
| Relative tolerance | 1e-5 |
【Matlab】BASK的调试与解调仿真的更多相关文章
- 【Matlab】BFSK的调制与解调仿真
写在前面 本篇是[Matlab]BASK的调制与解调仿真的下篇,考虑到阅读体验,故另开一篇分享将BFSK的调制与解调仿真. 索引 写在前面 一.BFSK的调制 1.1 异频载波生成 1.2 信号合并 ...
- DVB-C系统中QAM调制与解调仿真
本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...
- MATLAB基本使用及SIMULINK建模仿真实验
MATLAB基本使用及SIMULINK建模仿真实验 这是我总结的操作方法: 1 ) M脚本文件的编写 1.新建M-file: 2.输入指令: 3.保存(注意:保存路径需要与工作路径一致) 2 )在S ...
- 基于MATLAB的单级倒立摆仿真
有关代码及word文档请关注公众号“浮光倾云”,后台回复A010.02即可获取 一.单级倒立摆概述 倒立摆是处于倒置不稳定状态,人为控制使其处于动态平衡的一种摆,是一类典型的快速.多变量.非线性.强耦 ...
- MATLAB应用专题part2-电力电子仿真技术
有匪君子,如切如磋,如琢如磨. --<诗经·卫风·淇奥> 这篇博客知识我记录一下我在仿真学习中积累到的知识和遇到的坑. 第一部分:知识部分 1.为什么电阻与电感串联电路中电流的波形比电压的 ...
- MATLAB应用专题part1-电力电子仿真技术
士不可以不弘毅,任重而道远.仁以为己任,不亦重乎?死而后已,不亦远乎? --曾参 C语言系列需要过一段时间才能更新了.这些天学习C语言我感觉有点崩溃了,所以我先开另外一个专题-matlab应用专题. ...
- MATLAB设计模糊控制器并用simulink仿真
一.设计模糊控制器1.1 创建项目文件夹在此路径如图 1.2 打开MATLAB打开MATLAB R2012a切换当前目录为上一步路径,如图 1.3 设计模糊控制器打开模糊控制器设计对话框 根据模糊控制 ...
- Matlab下多径衰落信道的仿真
衰落信道参数包括多径扩展和多普勒扩展.时不变的多径扩展相当于一个延时抽头滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱.高斯.均匀功率谱. 多径衰落信道由单径信道叠加而成,而单径 ...
- matlab 调用C程序进行simulink仿真
文章目录 simulink仿真 创建C程序 编译C程序 运行结果 simulink仿真 simulink仿真中需要使用S-Function模块,可以实现调用C程序进行仿真,下面先建立一个简单的仿真: ...
随机推荐
- RabbitMQ 入门 (Go) - 1. 简介和安装
Message Broker(消息代理) 维基百科对 Message Broker 的定义是:Message broker 是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息 ...
- Java程序员都要懂得知识点:反射
摘要:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...
- Maven项目中resources配置总结
目录 背景 第一部分 基本配置介绍 第二部分 具体配置和注意事项 第三部分 读取resources资源 参考文献及资料 背景 通常Maven项目的文件目录结构如下: # Maven项目的标准目录结构 ...
- PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 目录 PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) ...
- ON DUPLICATE KEY UPDATE作用
ON DUPLICATE KEY UPDATE作用 先声明一点,ON DUPLICATE KEY UPDATE为Mysql特有语法,这是个坑 语句的作用,当insert已经存在的记录时,执行Updat ...
- 201871010130-周学铭 实验二 个人项目—D{0-1}问题项目报告
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验二 软件工程个人项目 我的课程学习目标 掌握软件项目个人开发流程.掌握Github发布软件项目的操作方法. 这个作业在哪些方面帮助我实 ...
- [面试仓库]CSS面试题汇总-定位篇
一,relative.absolute 的区别 我们还是来说常见的地方.首先就是relative,absolute的区别: relative是依据自身来定位的 absolute则是依据离其最近一层 ...
- 前端 JS 问题记录
立即执行函数 !function(){}() function 前面增加符号 ! ~ + - 之类,都是告诉浏览器自动执行这个匿名函数,因为这些符号的运算级别都是高的 (function(){... ...
- springboot项目配置logback日志系统
记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...
- 所谓 ICMP,不过将军与士卒而已
什么是 ICMP 协议 关于这点我们在 IP 协议那篇文章中提过一嘴,IP 协议作为一种提供不可靠数据交付的网络层协议,在传输的过程中,其 IP 数据报可能会发生丢失.重复.延迟和乱序等各种情况, 但 ...