索引

  • 一、BASK的调制

    • 1.1 曼彻斯特码
    • 1.2 增益控制
    • 1.3 常量求和
    • 1.4 与载波相乘
    • 1.5 波形预览
    • 1.6 参数设置(参考)
  • 二、BASK的解调
    • 2.1 滤波
    • 2.2 信号比较
    • 2.3 波形预览
    • 2.4 参数设置(参考)
  • 三、常见问题

一、BASK的调制

根据BASK调制的原理,信号处理的步骤如下:

graph LR
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)为时钟信号,则有:

\[Manchester(t)=NRZ(t)\otimes 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解调的原理,信号处理的步骤如下:

graph LR
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的调试与解调仿真的更多相关文章

  1. 【Matlab】BFSK的调制与解调仿真

    写在前面 本篇是[Matlab]BASK的调制与解调仿真的下篇,考虑到阅读体验,故另开一篇分享将BFSK的调制与解调仿真. 索引 写在前面 一.BFSK的调制 1.1 异频载波生成 1.2 信号合并 ...

  2. DVB-C系统中QAM调制与解调仿真

    本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...

  3. MATLAB基本使用及SIMULINK建模仿真实验

    MATLAB基本使用及SIMULINK建模仿真实验 这是我总结的操作方法: 1 )  M脚本文件的编写 1.新建M-file: 2.输入指令: 3.保存(注意:保存路径需要与工作路径一致) 2 )在S ...

  4. 基于MATLAB的单级倒立摆仿真

    有关代码及word文档请关注公众号“浮光倾云”,后台回复A010.02即可获取 一.单级倒立摆概述 倒立摆是处于倒置不稳定状态,人为控制使其处于动态平衡的一种摆,是一类典型的快速.多变量.非线性.强耦 ...

  5. MATLAB应用专题part2-电力电子仿真技术

    有匪君子,如切如磋,如琢如磨. --<诗经·卫风·淇奥> 这篇博客知识我记录一下我在仿真学习中积累到的知识和遇到的坑. 第一部分:知识部分 1.为什么电阻与电感串联电路中电流的波形比电压的 ...

  6. MATLAB应用专题part1-电力电子仿真技术

    士不可以不弘毅,任重而道远.仁以为己任,不亦重乎?死而后已,不亦远乎?  --曾参 C语言系列需要过一段时间才能更新了.这些天学习C语言我感觉有点崩溃了,所以我先开另外一个专题-matlab应用专题. ...

  7. MATLAB设计模糊控制器并用simulink仿真

    一.设计模糊控制器1.1 创建项目文件夹在此路径如图 1.2 打开MATLAB打开MATLAB R2012a切换当前目录为上一步路径,如图 1.3 设计模糊控制器打开模糊控制器设计对话框 根据模糊控制 ...

  8. Matlab下多径衰落信道的仿真

    衰落信道参数包括多径扩展和多普勒扩展.时不变的多径扩展相当于一个延时抽头滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱.高斯.均匀功率谱. 多径衰落信道由单径信道叠加而成,而单径 ...

  9. matlab 调用C程序进行simulink仿真

    文章目录 simulink仿真 创建C程序 编译C程序 运行结果 simulink仿真 simulink仿真中需要使用S-Function模块,可以实现调用C程序进行仿真,下面先建立一个简单的仿真: ...

随机推荐

  1. RabbitMQ 入门 (Go) - 1. 简介和安装

    Message Broker(消息代理) 维基百科对 Message Broker 的定义是:Message broker 是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息 ...

  2. Java程序员都要懂得知识点:反射

    摘要:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...

  3. Maven项目中resources配置总结

    目录 背景 第一部分 基本配置介绍 第二部分 具体配置和注意事项 第三部分 读取resources资源 参考文献及资料 背景 通常Maven项目的文件目录结构如下: # Maven项目的标准目录结构 ...

  4. PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 目录 PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) ...

  5. ON DUPLICATE KEY UPDATE作用

    ON DUPLICATE KEY UPDATE作用 先声明一点,ON DUPLICATE KEY UPDATE为Mysql特有语法,这是个坑 语句的作用,当insert已经存在的记录时,执行Updat ...

  6. 201871010130-周学铭 实验二 个人项目—D{0-1}问题项目报告

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验二 软件工程个人项目 我的课程学习目标 掌握软件项目个人开发流程.掌握Github发布软件项目的操作方法. 这个作业在哪些方面帮助我实 ...

  7. [面试仓库]CSS面试题汇总-定位篇

    一,relative.absolute 的区别   我们还是来说常见的地方.首先就是relative,absolute的区别: relative是依据自身来定位的 absolute则是依据离其最近一层 ...

  8. 前端 JS 问题记录

    立即执行函数 !function(){}() function 前面增加符号 ! ~ + - 之类,都是告诉浏览器自动执行这个匿名函数,因为这些符号的运算级别都是高的 (function(){... ...

  9. springboot项目配置logback日志系统

    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...

  10. 所谓 ICMP,不过将军与士卒而已

    什么是 ICMP 协议 关于这点我们在 IP 协议那篇文章中提过一嘴,IP 协议作为一种提供不可靠数据交付的网络层协议,在传输的过程中,其 IP 数据报可能会发生丢失.重复.延迟和乱序等各种情况, 但 ...