效果图







代码

import matplotlib.pyplot as plt

config = {
'color': 'black',
'lw': 5,
} def init():
plt.figure(figsize=(13, 4))
plt.ylim(-0.5, 1.5)
plt.yticks([0, 1])
plt.gca().xaxis.set_major_locator(plt.MultipleLocator(1))
plt.grid() def RZ(code):
init()
plt.title('归零编码方式', fontsize=20)
plt.xlim(0, len(code))
for i, bit in enumerate(code):
plt.text(i + 0.4, -0.4, bit, fontsize=25)
if bit == "1":
plt.plot([i, i, i + 0.5, i + 0.5, i + 1], [0, 1, 1, 0, 0], **config)
else:
plt.plot([i, i + 1], [0, 0], **config) def NRZ(code):
init()
plt.title('非归零编码方式', fontsize=20)
plt.xlim(0, len(code))
prev = "0"
for i, bit in enumerate(code):
plt.text(i + 0.4, -0.4, bit, fontsize=25)
if bit == "1":
if bit != prev:
prev = "1"
plt.plot([i, i], [0, 1], **config)
plt.plot([i, i + 1], [1, 1], **config)
else:
if bit != prev:
prev = "0"
plt.plot([i, i], [1, 0], **config)
plt.plot([i, i + 1], [0, 0], **config) def Manchester(code):
init()
plt.title('曼切斯特', fontsize=20)
plt.xlim(0, len(code))
prev = "0"
for i, bit in enumerate(code):
plt.text(i + 0.4, -0.4, bit, fontsize=25)
if bit == "1":
if bit == prev:
plt.plot([i, i], [0, 1], **config)
prev = "1"
plt.plot([i, i + 0.5, i + 0.5, i + 1], [1, 1, 0, 0], **config)
else:
if bit == prev:
plt.plot([i, i], [1, 0], **config)
prev = "0"
plt.plot([i, i + 0.5, i + 0.5, i + 1], [0, 0, 1, 1], **config) def Diff_Manchester(code):
init()
plt.title('差分曼切斯特', fontsize=20)
plt.xlim(0, len(code))
change = False
for i, bit in enumerate(code):
plt.text(i + 0.4, -0.4, bit, fontsize=25)
if bit == "1":
change = not change
if change:
if bit == "0":
plt.plot([i, i], [0, 1], **config)
plt.plot([i, i + 0.5, i + 0.5, i + 1], [1, 1, 0, 0], **config)
else:
if bit == "0":
plt.plot([i, i], [1, 0], **config)
plt.plot([i, i + 0.5, i + 0.5, i + 1], [0, 0, 1, 1], **config) RZ("10011010")
plt.savefig("rz.png")
NRZ("10011010")
plt.savefig("nrz.png")
Manchester("10011010")
plt.savefig("m.png")
Diff_Manchester("10011010")
plt.savefig("dm.png")

matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码的更多相关文章

  1. java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码

    随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题 ...

  2. 详解JavaScript中的Url编码/解码,表单提交中网址编码

    本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...

  3. 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...

  4. java中文乱码解决之道(三)—–编码详情:伟大的创想—Unicode编码

    原文出处:http://cmsblogs.com/?p=1458 随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于 ...

  5. 刨根究底字符编码之十二——UTF-8究竟是怎么编码的

    UTF-8究竟是怎么编码的 1. UTF-8编码是Unicode字符集的一种编码方式(CEF),其特点是使用变长字节数(即变长码元序列.变宽码元序列)来编码.一般是1到4个字节,当然,也可以更长. 为 ...

  6. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码

    一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...

  7. Java文件编码自动转换工具类(只改变编码,不会改变文件内容)

    本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...

  8. ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明

    ASP程序在同一个站点中,如果有UTF-8编码的程序,又有GB2312编码的程序时,在浏览UTF-8编码的页面后,再浏览当前网站GB2312的页面,GB2312编码的页面就会出现乱码 出现这样的问题是 ...

  9. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

随机推荐

  1. IDEA使用 live template添加groovy脚本给方法,类,js方法添加注释(转载)

    IDEA添加Live Template: File->Setting->Editor->Live Templates Abbreviation: * Template text: * ...

  2. Express下ejs的视图模板引擎的建立

    写在前面 由于Express升级到4.0,将ejs的用法忽略,改为用户自定义形式,所以要引入库index.js作为引擎,来支持ejs的模板引擎(点击下载). 首先是建立一个名字叫nodeitem,引擎 ...

  3. SSO单点登录可以自己实现吗?--开源软件诞生10

    ERP与SSO的恩怨情仇--第10篇 用日志记录“开源软件”的诞生 赤龙 ERP 开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com/redrag ...

  4. yum管理——linux字符界面安装图形化及两种界面的切换(3)

    1.查看yum软件包组 yum groups list 2.选择安装带 GUI 的服务器 yum groups install "带 GUI 的服务器" 3.字符界面切换为图形化界 ...

  5. 关于windows服务器的Security安全类日志的导出

    对于windows服务器,日志的分类会有很多,可以通过wevtutil el 列出 有时可能会对Security安全类日志进行审计,这里简单讲一下安全类日志的导出方法 1.直接在cmd中执行 wevt ...

  6. 趣图:普通人讲故事 VS 程序员讲故事

      扩展阅读 趣图:我说自己菜 vs 大佬说自己菜 趣图:客户需求VS客户预算 趣图:在外行人眼中的程序员 如何处理前任程序员留下的代码 一个故事讲清楚NIO

  7. 使用DynamicExpresso实现表达式求值

    之前写了一篇Z.Expressions表达式计算的博客,直到最近才发现Z.Expressions不是免费的.Z.Expressions从2.0开始支持了NetCore,使用一段时期后会提示许可证到期, ...

  8. Apollo系列(二):Apollo在ASP.NET Core 3.1中使用

    关于Apollo怎么安装,我就不介绍,可以看这篇文章:https://www.cnblogs.com/vic-tory/p/13736192.html 一.Apollo使用: 1.创建项目 2.添加配 ...

  9. Python-变量-字符串

    str 字符串如何表示字符串? 单行 单引号 '' 如果字符串中有单引号就需要双引号表示,反之亦然 双引号 " " 换行表示 \ one_str = "简洁胜于优雅&qu ...

  10. K8S环境的Jenkin性能问题处理

    环境信息 在K8S环境通过helm部署了Jenkins(namespace为helm-jenkins),用于日常Java项目构建: kubernetes:1.15 jenkins:2.190.2 he ...