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开发过程中遇到的各种问 ...
随机推荐
- Badboy脚本录制工具
Badboy 目录 Badboy 1.Badboy安装 2.脚本的录制 1.Badboy安装 下载地址: http://www.badboy.com.au/download/index 安装其实傻瓜式 ...
- 解决IDEA打包出现中文乱码的问题
这主要是maven编译时编码问题导致的. 解决办法: 1.在IDEA的File里面打开Settings. 2.找到Runner,在VM Options输入-DarchetypeCatalog=inte ...
- HBase shell的使用记录
1. list命令 该命令列出hbase中所有的表 hbase(main):007:0* list TABLE SYSTEM:CATALOG SYSTEM:FUNCTION SYSTEM:MUTEX ...
- Linux里隐藏的计算器,你知道它的奥秘吗?
Linux里隐藏的计算器,你知道它的奥秘吗? 大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它.但是,你可知Linux下也同样有个计算器吗? 当然,良许说的是命令行下的计算器工 ...
- Netty中的一些注意事项--底层基础
转载自http://www.mamicode.com/info-detail-1215305.html 最近开发了一个纯异步的redis客户端,算是比较深入的使用了一把netty.在使用过程中一边优化 ...
- 4.Scala语法02 - 函数
- 你还不会ES的CUD吗?
近端时间在搬砖过程中对es进行了操作,但是对es查询文档不熟悉,所以这两周都在研究es,简略看了<Elasticsearch权威指南>,摸摸鱼又是一天. es是一款基于Lucene的实时分 ...
- docker zookeeper 集群搭建
#创建集群目录 mkdir /opt/cluster/zk cd /opt/cluster/zk #清理脏数据[可跳过] docker stop zk-2181 docker stop zk-2182 ...
- Dynamically allocated memory 动态分配内存【malloc】Memory leaks 内存泄漏
内存泄露Memory leaks :没有指针指向原来a分配出来的那段空间了
- 为cmd中的命令添加别名,以解决java:错误: 编码 GBK 的不可映射字符 (0xAF)
使用sublineText3编写了java代码,通过cmd javac编译 提示 错误:编码GBK的不可映射字符 解决方法 使用javac -encoding UTF-8 Person.java 结果 ...