不归零、曼彻斯特、差分曼彻斯特编码的c++实现
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++实现相关推荐
- 计算机网络---非归零码、曼彻斯特编码和差分曼彻斯特编码
题目: 在数据通信技术中,将利用模拟信道通过调制解调器传输模拟信号的方法称为频带传输:将利用数字信道直接传输数字信号的方法称为基带传输. 基带传输中,数字信号的编码方式主要有三种:非归零码.曼彻斯特编 ...
- 常用数字信号编码之反向不归零码码、曼彻斯特编码、差分曼彻斯特编码
数字信号编码是要解决数字数据的数字信号表示问题,即通过对数字信号进行编码来表示数据.数字信号编码的工作一般由硬件完成,常用的编码方法有以下:反向不归零码码.曼彻斯特编码.差分曼彻斯特编码. 反向不归零 ...
- 不归零法编码、曼彻斯特编码和差分曼彻斯特编码
数字信号和数位化编码的数据之间存在着自然的联系.数位化存储的数据表现为0和1的序列.由于数字信号能够在两个恒量之间交替变换,所以可以简单地把0赋予其中的一个恒量,而把1赋予另一个恒量.这里恒量的具体取 ...
- 计算机网络.第二节课.笔记.奈氏准则、香农公式、差分曼彻斯特编码、曼彻斯特码、单工通信、半双工通信、双工通信、码元
物理层 特性 描述 机械特性 硬件生产规格 电气特性 各个线上的电压范围 功能特性 某一线上的某一电平的电压的意义 过程特性 各种可能事件的发生顺序 数据通信 通信的目答是传送消息,数据是运送消息的实 ...
- 数据通信基础 - 数据编码(曼彻斯特编码 和 差分曼彻斯特编码)
文章目录 1 概述 2 常见编码方案 2.1 曼彻斯特编码 和 差分曼彻斯特编码 2.2 4B/5B 编码 2.3 各种编码效率 3 扩展 3.1 单极性码 和 极性码 3.2 双极性码 3.3 归零 ...
- 曼彻斯特编码,差分曼彻斯特编码和NRZI编码
曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码( Phase Encode,简写PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据. 在曼 ...
- 曼彻斯特编码 差分曼彻斯特编码 计算机网络
数字信号编码是要解决数字数据的数字信号表示问题,即通过对数字信号进行编码来表示数据.数字信号编码的工作一般由硬件完成,常用的编码方法有以下三种:不归零码码.曼彻斯特编码.差分曼彻斯特编码. 差分曼彻斯 ...
- 五、数据编码:曼侧斯特编码,差分曼彻斯特编码的区别 , 4B/5B编码 ——网络工程师成长之路
计算机网络常见的八大数据编码 单极性码 与 极性码 双极性码 归零编码 不归零码 1变 0 不变 双相码 曼侧斯特编码 : 差分曼侧斯特编码 : 差分曼彻斯特编码: 有 0 无 1 两种曼彻斯特编码的 ...
- 【曼彻斯特编码/差分曼彻斯特编码】
曼彻斯特编码/差分曼彻斯特编码_walker snapshot的技术博客_51CTO博客_曼彻斯特编码详解
最新文章
- jar包导出无法显示图片或者音乐_音乐曲谱软件-Guitar Pro 7 for Mac
- float double 的存储方式
- HH SaaS电商系统的商品发货策略设计
- 20100921 学习记录:关于sqlserver2005与ASP中 转换日期格式
- http响应状态码大全
- 数据结构-----链表的实现
- day20 python常用模块
- 写插件代码查看单据简单示例分享
- centos 6 与 centos 7 服务开机启动、关闭设置的方法
- Excel表格数据生成ECharts图表
- 模拟电路和数字电路区别
- Dubbo Remoting模块详解
- vue图片懒加载 以及 页面刷新加载不显示大括号{{}}
- Fundamental of 4G LTE - 学习笔记(1)Duplexing - TDD vs FDD
- 合成游戏中的数学原理
- Linux可以打开cdr文件吗,CDR是什么格式
- vue 批量下载图片并打包成压缩包
- 思源笔记局域网内访问【使用教程】
- 「ROS Kinetic」发布速度消息cmd_vel
- 杂散发射干扰和阻塞干扰
热门文章
- 搭建学习环境(七)——Webug4.0
- oracle强制关闭session,Oracle终止session
- Linux Command trap 信号捕捉
- 青岛计算机操作员初级考试时间,青岛市2021年初级会计考试时间安排在这里!...
- 无须买手机,在电脑上体验Android
- 2022年php真实面试题整理
- 域控服务器怎么导出,windows 2003 域控服务器导出全部hash的方法
- Qt之读取qss文件
- HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像
- Python爬虫 | 反爬机制:IP限制高匿代理 IP 突破(爬虫 IP 被禁怎么办?)