HDBn编解码原理 n阶高密度双极性码
/*------------------------------------------------------------------
HDB3 编码解码原理 // 转载
------------------------------------------------------------------*/
要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1半占空归零码表示的交替的脉冲。如:
NRZ码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1
AMI码:-1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1
/*-----------------------------------------------------------------
(1)当连“0”码的个数不大于3时,HDB3编码规律与AMI码相同,即“1”码变为“+1”、“-1”交替脉冲;
(2)当代码序列中出现4个连“0”码或超过4个连“0”码时,把连“0”段按4个“0”分节,即“0000”,并使第4个“0”码变为“1”码,用V脉冲表示。这样可以消除长连“0”现象。为了便于识别V脉冲,使V脉冲极性与前一个“1”脉冲极性相同。这样就破坏了AMI码极性交替的规律,所以V脉冲为破坏脉冲,把V脉冲和前3个连“0”称为破坏节“000V”;
(3)为了使脉冲序列仍不含直流分量,则必须使相邻的破坏点V脉冲极性交替;
(4)为了保证前面两条件成立,必须使相邻的破坏点之间有奇数个“1”码。如果原序列中破坏点之间的“1”码为偶数,则必须补为奇数,即将破坏节中的第一个“0”码变为“1”,用B脉冲表示。这时破坏节变为“B00V”形式。B脉冲极性与前一“1”脉冲极性相反,而B脉冲极性和V脉冲极性相同。
------------------------------------------------------------------*/
NRZ码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1
AMI码: -1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1
HDB3码: -1 0 0 0 -V +1 0 0 0 +V
-1 +1 –B 0 0 -V +1 -1
虽然HDB3码的编码规则比较复杂,但译码却比较简单。从上述原理看出:每一个破坏符号V总是与前一非0符号同极性(包括B在内)。这就是说,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面的3个符号必是连0符号,从而恢复4个连0码,再将所有-1变成+1后便得到原消息代码。
HDB3如此, HDBn是一样推的. 主要是破坏节的长度不同
// 这里记录一个自己理解的小概念
归零与不归零:
比如都是表示 "1"
-------------- // 像这种,在整个码元期间电平保持不变的 就是不归零
____|------ // 像这种在一个码元期间内发生变化的,比如先低后高,或者先高后低的就是归零的
HDBn编解码原理 n阶高密度双极性码的更多相关文章
- 编解码原理,Python默认解码是ascii
编解码原理,Python默认解码是ascii 首先我们知道,python里的字符默认是ascii码,英文当然没问题啦,碰到中文的时候立马给跪. 不知道你还记不记得,python里打印中文汉字的时候需要 ...
- SSD ECC中的LDPC编解码原理
转自:http://blog.csdn.net/zhuzongpeng/article/details/78899198 目前SSD中ECC纠错代码主要两种BCH和LDPC.不过,随着SSD对ECC纠 ...
- 蓝牙协议中的SBC编解码原理和仿真
一.SBC的原理 SBC是subband codec的缩写,中文叫做次频带编码,也叫子带编码.其基本原理是把信号的频率分为若干子带,然后对每个子带进行编码,并根据每个子带的重要性及特点分配不同的位数( ...
- 高速理解掌握node.js 字符编码,确码过程 以及base64编解码原理
var buf1 = new Buffer('a','ascii'); // 字符'a' -> ascii编码 -> 61 存在计算机中 console.log(buf1); var b ...
- 【视频编解码·学习笔记】4. H.264的码流封装格式
一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...
- 【视频编解码·学习笔记】4. H.264的码流封装格式 & 提取NAL有效数据
一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...
- Netty入门系列(3) --使用Netty进行编解码的操作
前言 何为编解码,通俗的来说,我们需要将一串文本信息从A发送到B并且将这段文本进行加工处理,如:A将信息文本信息编码为2进制信息进行传输.B接受到的消息是一串2进制信息,需要将其解码为文本信息才能正常 ...
- Netty 编解码技术 数据通信和心跳监控案例
Netty 编解码技术 数据通信和心跳监控案例 多台服务器之间在进行跨进程服务调用时,需要使用特定的编解码技术,对需要进行网络传输的对象做编码和解码操作,以便完成远程调用.Netty提供了完善,易扩展 ...
- MPEG 编解码相关资料收集
以下是我搜集的关于MPEG1/2的编解码相关的资料: (注:mpge帧内编码是基于jpeg编码的,所以请务必先理解jpeg的编解码原理.) 1:Introduction to MPEG 2 Video ...
随机推荐
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...
- mysql存储之int
开始之前给大家出个问题,数据库表test中两个字段 a int(2),b int(3),现在想执行下面的插入语句 ,) 思考是否可以插入? 答案是能插入 再看下面的语句 ,) 思考能不能插入?注意第 ...
- 基于ASP.Net Core学习Docker技术第一步:在CentOS7安装Docker平台
Docker技术几年前就火了,伴随着今年来devops的流行,这项技术一直被技术社区追捧.提起Docker很容易被默认为是Linux平台下的技术,.NET的技术跟他似乎没有沾边,不过那是对非.NET ...
- iOS选择相片优化
1.问题 在ios中有时需要选择本地图片或者拍照,有时候选择相片的时候会有多选和单选,所以需要首先封装相册选择,在之前的博客中也有写到IOS多选单选相册图片.这个只是对相册中选择图片的封装.我们在ap ...
- jquery里正则的使用方法及常用的正则验证
本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type ...
- WPF: RenderTransform特效
WPF中的变形(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放.旋转一个元素)的目的而设计的,RenderTransform包含的变形属性成员就是 ...
- 如鹏网学习笔记(九)JavaScript
JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...
- Rabbit安装(windows)
安装rabbit后,启动服务,浏览器打开控制台找不到.查百度说是要装插件.翻了好几篇都是互相抄,没有能用到. 多翻了几篇终于找到一个靠谱的.可以打开控制台了.记录下: 首先要安装Erlang语言支持, ...
- CentOS 7重装mysql8.0.15
查看是否安装有mysql rpm -qa | grep mysql 有的话先删除干净 下载MySQL yum源 wget https://dev.mysql.com/get/mysql80-commu ...
- order by 和group by同时使用