一、HDB3码简介

HDB3码全称是三阶高密度双极性码(High Density Bipolar of Order 3 Code),是一种适用于基带传输的编码方式,它是为了克服AMI码的缺点而出现的。HDB3码具有能量分散,抗破坏性强的特点。

二、编码规则

1)当连续0的个数不超过3时,规则与AMI码相同,即0不变,1变为-1、+1交
替;
2)若连续0的个数超过3,则将每4个0看成一小节,定义为B00V,B可以是-1、
0、+1,V可以是-1,+1;
3)B和V具体值满足以下条件:V和前面相邻的非0符号极性相同;不看V时极
性交替;V与V之间极性交替;
4)一般第一个B取0,第一个非0符号取-1;

三、MATLAB实现

利用MATLAB程序实现上述编码规则,并对消息码1101001000000111编码后的
结果如下:

消息码
1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1
AMI码
-1 1 0 -1 0 0 1 0 0 0 0 0 0 -1 1 -1
HDB3码
-1 1 0 -1 0 0 1 0 0 0 -2 0 0 -1 1 -1
clear;
close all;
clc;
% 生成AMI码
input = [1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1];
disp('原码');
disp(input);AMI = zeros(size(input));
% number1记录原码中1的数量
number1 = 0;
% number0记录原码中0的数量
number0 = 0;
% 生成AMI码
for i=1:length(input)if input(i)==1number1 = number1+1;if mod(number1,2)==0AMI(i) = +1;endif mod(number1,2)==1AMI(i) = -1;endendif input(i)==0number0 = number0+1;AMI(i) = 0;end
end
disp('AMI码');
disp(AMI);
clear i;
% 生成HDB3码
HDB = zeros(size(input));
% 给每个0000小节加V
i=0;
while(i<=length(input))i = i+1;if i>length(input)break;end% AMI中的-1和+1保持不变if abs(AMI(i))==1HDB(i) = AMI(i);end% if AMI(i) == 0HDB(i) = 0;if AMI(i+1) == 0HDB(i+1) = 0;if AMI(i+2) == 0HDB(i+2) = 0;if AMI(i+3) == 0% 用2代表VHDB(i+3) = 2;i = i+3;endendendendend% 每两个V极性相反
number2 = 0;
for i=1:length(input)if HDB(i)==2number2 = number2+1;if mod(number2,2)==0HDB(i) = +2;endif mod(number2,2)==1HDB(i) = -2;endend
end% 统计每2个V之间非零脉冲个数,若偶数,则第2个V所在小节的第1个0变为B
firstV=0;
secondV=0;
for i=1:length(input)% 找到第一个Vif abs(HDB(i)) == 2firstV = i;for j=i+1:length(input)if abs(HDB(j)) == 2% 找到第二个VsecondV = j;endendif secondV ~= 0% 计算非0脉冲的个数number3 = sum(abs(HDB(firstV+1,secondV-1)));if mod(number3,2) == 0if HDB(secondV)==-2HDB(secondV-3)==-3;%用-3代表-Bendif HDB(secondV)==+2HDB(secondV-3)==+3;%用+3代表+Bendendendend
end
disp('HDB3码');
disp(HDB);

MATLAB实现AMI码和HDB3码相关推荐

  1. cmi编码实验_【2017年整理】实验及HDB3码CMI码编码.ppt

    [2017年整理]实验及HDB3码CMI码编码 实验地点: 三楼最西边 通信工程系办公室 HDB3码(三阶高密度双极性码) 编码规则: 把消息代码变换成AMI码.检查AMI码的连0串情况. 当没有4个 ...

  2. 详解图像直方图均衡化原理,附MATLAB、C、C++源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 提问:图像直方图均衡化有啥效果? 答:看了下面的 ...

  3. matlab数据转换为tecplot格式[ASCII码格式下的plt文件]

    matlab数据转换为tecplot格式[ASCII码格式下的plt文件] 1 tecplot能读取的的常见ASCII格式 1.1 文件格式与文件头 1.2 zone相关的格式 2 一维数据 3 二维 ...

  4. matlab中asc格式,matlab将图片转换成asc码txt文本格式 | 学步园

    matlab将图片转换成asc码 function img2txt(imfile,varargin); % using an ASCII character for every stepx pixel ...

  5. 【老生谈算法】matlab实现灰度图处理源码——灰度图处理

    matlab灰度图的处理源码 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab灰度图的处理程序.doc 2.算法详 ...

  6. 【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改

    [MATLAB第11期]#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 绘图问题解决方案 1.导入数据方式(识别时间数据) 2.案例展示 (1)打开数据 (2)定义时间和数据 ( ...

  7. MATLAB视频运动目标检测参考源码

    MATLAB视频运动目标检测参考源码 将视频截取成帧 fileName = 'q.avi'; %此处输入视频名称,要带后缀,注意好像只有wmv和avi格式 obj = VideoReader(file ...

  8. 【老生谈算法】matlab实现FFT变换算法源码——FFT变换算法

    Matlab实现FFT变换(单边谱及双边谱) 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]Matlab实现FFT变换程序源 ...

  9. 【Matlab编程实现常见小问题之二】Matlab如何实现QR二维码的生成与识别

    本篇文章中,旨在解决如何用Matlab编程实现QR二维码的生成与识别.编程环境是Matlab2012a,所用的开源库是ZXing,ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目 ...

  10. Zxing生成二维码思路和源码解析

    Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...

最新文章

  1. java 的回调函数
  2. Linux下升级安装Python-2.7.8版本
  3. tags cloud
  4. 修改普通用户加入域的次数
  5. 前端基础知识 - 收藏集 - 掘金
  6. 将python文件打包成exe可运行文件
  7. 【数据平台】python语言NLP库Gensim初识
  8. 5、计算机网络物理层和数据链路层
  9. VTK:绘制BlankPoint空白点用法实战
  10. CI框架json无法Unicode转中文解决方案
  11. Linux 命令之 apt -- Debian Linux 新一代的软件包管理工具
  12. java 线程 状态 图_Java提高——多线程(一)状态图
  13. freewheel现场宣讲笔试回忆篇
  14. ajax post 数组
  15. python求解括号匹配的相关问题
  16. MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析
  17. python 拼音输入法_用Python从0开始实现一个中文拼音输入法的思路详解
  18. 【python】一键修改小米运动步数,同步微信、支付宝 运动步数
  19. Java学习:Java程序员必读的经典书籍没有之一,你读过几本?
  20. 咖啡,为什么有些比较甜?

热门文章

  1. 项目进度管理:制定进度计划
  2. 网络安全实验室-解密关1
  3. 网络安全攻防实验室通关教程-脚本关
  4. 网络攻防实验(连更)
  5. win10开机的微软服务器,微软 Win10 新 UI 的门面:教你启用 Win10 全新开机动画
  6. HelloWorld
  7. 2019工程伦理慕课答案(2019秋)习题及期末答案
  8. Bus Hound实用教程
  9. 2022前端HTML5面试题
  10. vnc远程访问linux服务器,如何通过 VNC 远程访问 Linux 虚拟机