matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码
效果图




代码
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作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码的更多相关文章
- java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码
随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题 ...
- 详解JavaScript中的Url编码/解码,表单提交中网址编码
本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...
- java中文乱码解决之道(三)—–编码详情:伟大的创想—Unicode编码
原文出处:http://cmsblogs.com/?p=1458 随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于 ...
- 刨根究底字符编码之十二——UTF-8究竟是怎么编码的
UTF-8究竟是怎么编码的 1. UTF-8编码是Unicode字符集的一种编码方式(CEF),其特点是使用变长字节数(即变长码元序列.变宽码元序列)来编码.一般是1到4个字节,当然,也可以更长. 为 ...
- 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码
一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...
- Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
ASP程序在同一个站点中,如果有UTF-8编码的程序,又有GB2312编码的程序时,在浏览UTF-8编码的页面后,再浏览当前网站GB2312的页面,GB2312编码的页面就会出现乱码 出现这样的问题是 ...
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
随机推荐
- MySQL行构造器
子查询返回多列的办法 主要用途,项目中初版使用子查询返回一列用来限制主表,项目新版本中,表关联建改为多列时建议使用
- 分布式系统监视zabbix讲解九之使用snmp监控windows
zabbix监控windows演示 第一步:开启服务. 控制面板>程序>程序和功能>打开或关闭windows功能,勾选上简单网络管理协议(SNMP),以及下面的子程序.点击确定 第二 ...
- Docker镜像构建的两种方式(六)
镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命 ...
- java identityHashCode 和 hashCode
当类并没有重写Object#hashCode()时, 对于 System.identityHashCode(Object) 和 Object#hashCode() 的结果是一致的; 但对于类似Stri ...
- Go 里的函数
1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构.将一段功能复杂.很长的一段代码封装成多个代码片段(即函数),有助于提高代码可读性和可维护性. 在 Go 语言中,函数可以分为两种: 带 ...
- 解释器与JIT编译器
解释器 JVM设计者们的初衷仅仅只是单纯地为了满足Java程序实现跨平台特性,因此避免采用静态编译的方式直接生成本地机器指令,从而诞生了实现解释器在运行时采用逐行解释字节码执行程序的想法. 解释器真正 ...
- python ---倒酒!!
#!/usr/bin/env python3# -*- coding: utf-8 -*-import numbersimport numpyimport math'''三个容器分别为12升.8升.5 ...
- Jquery的一键上传组件OCUpload及POI解析Excel文件
第一步:将js文件引入页面 <script type="text/javascript" src="${pageContext.request.contextPat ...
- Python_快速安装第三方库-pip
如何快速安装第三方库? 通过python 豆瓣园源https://pypi.douban.com/simple/进行安装,利用国内网速 如何安装? pip -i install https://pyp ...
- 抛弃vue-webpack-template,踩坑Vue-Cli创建vue项目
官方指导网站https://cli.vuejs.org/ 一.全局安装@vue/cli //本人包管理工具使用yarn yarn global add @vue/cli 安装完成 二.创建vue项目 ...