1)不归零编码
信号电平由0、1表示,并且在表示完一个码元后,电压不需回到0
数字信号可以直接采用基带传输(未对载波信号称为基带信号,也就是不许需要搬移基带信号频谱的传输方式,近距离的局域网常采用这种方式)
对于不归零编码的缺点
1.很难说清信号的开始和结束
2.发送和接受必须要时钟同步
3.多个连续的数字可能会出现累计误差
4.容易发生传播错误
由于NZR不具有自同步的特性,需要先发送一个同步头,比如0101010的方波信号,让接收者通过这个同步头计算出发送者的频率,然后再用这个频率来采样之后的数据信号

2)曼彻斯特编码
每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示“1”,从低到高跳变表示“0”。
优点:克服了NRZ编码的缺点;用作时钟的自同步
缺点:增加了信道频率带宽的要求,同时高频率的噪音增加,容易受到噪音的干扰
二义性

3)差分曼彻斯特编码
每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示“0”或“1”,有跳变为“0”,无跳变为“1”。

对于他们的c++实现,可以依据定义来进行输出
代码如下

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
void NRZ(const char* num);
void Mcoding(const char* num);
void CMcoding(const char* num);
int changenum(int num);
int main()
{char num[40];cout << "请输入" << endl;cin >> num;NRZ(num);Mcoding(num);CMcoding(num);getchar();return 0;
}
void NRZ(const char *num)
{int length = strlen(num);for (int i = 0; i < length; i++){cout << num[i] << "  ";}cout << endl;
}
void Mcoding(const char* num)
{int length = strlen(num);for (int i = 0; i < length; i++){if (num[i] == '0'){cout << "0  1" << "  ";}else{cout << "1  0" << "  ";}}cout<<endl;
}
void CMcoding(const char* num)
{//假定前面为1int length = strlen(num);vector<int> kkk;kkk.push_back(1);for (int i = 0;i<length;i++){if (num[i]=='0')//不相同{kkk.push_back(changenum(kkk[2 * i]));kkk.push_back(kkk[2 * i]);}else{kkk.push_back(kkk[2 * i]);kkk.push_back(changenum(kkk[2 * i]));}}for (int i = 0; i < length; i++){cout << kkk[2 * i + 1] << "  " << kkk[2 * i + 2] << "  ";}cout << endl;
}
int changenum(int num)
{return num > 0 ? 0 : 1;
}

运行结果如下图
第一个为不归零编码
第二个为曼彻斯特编码
第三个为差分曼彻斯特编码

不归零、曼彻斯特、差分曼彻斯特编码的c++实现相关推荐

  1. 计算机网络---非归零码、曼彻斯特编码和差分曼彻斯特编码

    题目: 在数据通信技术中,将利用模拟信道通过调制解调器传输模拟信号的方法称为频带传输:将利用数字信道直接传输数字信号的方法称为基带传输. 基带传输中,数字信号的编码方式主要有三种:非归零码.曼彻斯特编 ...

  2. 常用数字信号编码之反向不归零码码、曼彻斯特编码、差分曼彻斯特编码

    数字信号编码是要解决数字数据的数字信号表示问题,即通过对数字信号进行编码来表示数据.数字信号编码的工作一般由硬件完成,常用的编码方法有以下:反向不归零码码.曼彻斯特编码.差分曼彻斯特编码. 反向不归零 ...

  3. 不归零法编码、曼彻斯特编码和差分曼彻斯特编码

    数字信号和数位化编码的数据之间存在着自然的联系.数位化存储的数据表现为0和1的序列.由于数字信号能够在两个恒量之间交替变换,所以可以简单地把0赋予其中的一个恒量,而把1赋予另一个恒量.这里恒量的具体取 ...

  4. 计算机网络.第二节课.笔记.奈氏准则、香农公式、差分曼彻斯特编码、曼彻斯特码、单工通信、半双工通信、双工通信、码元

    物理层 特性 描述 机械特性 硬件生产规格 电气特性 各个线上的电压范围 功能特性 某一线上的某一电平的电压的意义 过程特性 各种可能事件的发生顺序 数据通信 通信的目答是传送消息,数据是运送消息的实 ...

  5. 数据通信基础 - 数据编码(曼彻斯特编码 和 差分曼彻斯特编码)

    文章目录 1 概述 2 常见编码方案 2.1 曼彻斯特编码 和 差分曼彻斯特编码 2.2 4B/5B 编码 2.3 各种编码效率 3 扩展 3.1 单极性码 和 极性码 3.2 双极性码 3.3 归零 ...

  6. 曼彻斯特编码,差分曼彻斯特编码和NRZI编码

    曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码( Phase Encode,简写PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据. 在曼 ...

  7. 曼彻斯特编码 差分曼彻斯特编码 计算机网络

    数字信号编码是要解决数字数据的数字信号表示问题,即通过对数字信号进行编码来表示数据.数字信号编码的工作一般由硬件完成,常用的编码方法有以下三种:不归零码码.曼彻斯特编码.差分曼彻斯特编码. 差分曼彻斯 ...

  8. 五、数据编码:曼侧斯特编码,差分曼彻斯特编码的区别 , 4B/5B编码 ——网络工程师成长之路

    计算机网络常见的八大数据编码 单极性码 与 极性码 双极性码 归零编码 不归零码 1变 0 不变 双相码 曼侧斯特编码 : 差分曼侧斯特编码 : 差分曼彻斯特编码: 有 0 无 1 两种曼彻斯特编码的 ...

  9. 【曼彻斯特编码/差分曼彻斯特编码】

    曼彻斯特编码/差分曼彻斯特编码_walker snapshot的技术博客_51CTO博客_曼彻斯特编码详解

最新文章

  1. jar包导出无法显示图片或者音乐_音乐曲谱软件-Guitar Pro 7 for Mac
  2. float double 的存储方式
  3. HH SaaS电商系统的商品发货策略设计
  4. 20100921 学习记录:关于sqlserver2005与ASP中 转换日期格式
  5. http响应状态码大全
  6. 数据结构-----链表的实现
  7. day20 python常用模块
  8. 写插件代码查看单据简单示例分享
  9. centos 6 与 centos 7 服务开机启动、关闭设置的方法
  10. Excel表格数据生成ECharts图表
  11. 模拟电路和数字电路区别
  12. Dubbo Remoting模块详解
  13. vue图片懒加载 以及 页面刷新加载不显示大括号{{}}
  14. Fundamental of 4G LTE - 学习笔记(1)Duplexing - TDD vs FDD
  15. 合成游戏中的数学原理
  16. Linux可以打开cdr文件吗,CDR是什么格式
  17. vue 批量下载图片并打包成压缩包
  18. 思源笔记局域网内访问【使用教程】
  19. 「ROS Kinetic」发布速度消息cmd_vel
  20. 杂散发射干扰和阻塞干扰

热门文章

  1. 搭建学习环境(七)——Webug4.0
  2. oracle强制关闭session,Oracle终止session
  3. Linux Command trap 信号捕捉
  4. 青岛计算机操作员初级考试时间,青岛市2021年初级会计考试时间安排在这里!...
  5. 无须买手机,在电脑上体验Android
  6. 2022年php真实面试题整理
  7. 域控服务器怎么导出,windows 2003 域控服务器导出全部hash的方法
  8. Qt之读取qss文件
  9. HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像
  10. Python爬虫 | 反爬机制:IP限制高匿代理 IP 突破(爬虫 IP 被禁怎么办?)