一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:​​​【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】​


二 HDB3编译码器的Matlab建模与程序设计

1 HDB3的Matlab建模思想
从编码规则来分析, 寄存器内存放信码, 放置计数器来记录夹在2个“V”之间1的数量, 4个码元通过后, 是否加“B”符号决定于判偶电路的判定。整体模型如图1所示, 首先保证插“V”模块正常工作, 电路继续施行加“B”的运作, 最后施行信码双极性的转化, 经过模块流转的信号均是单极性信号, 所消耗的寄存器的数量可以大大减少。

双相码的运用解决了区分“1”、“V”和“B”的问题, 2个拥有不同相位的二进制码去表示一个二进制代码是双相码的特点。不同的代码就可以准确地区分, 要达到按照编码规则转变输出“1”的目的, 可以增加标识符, 通过开关控制来改变输出极性。

【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】_图像处理


图1 设计的整体模型2 基于Matlab描述语言的模块设计

HDB3编码器的组成框图如图2所示可以看出, 消息代码输入, 在HDB3编码规则的框架下开展插入“V”符号和加入“B”符号的动作, 经过单极性信号变换模块形成双极性信号, 插“V”、加“B”和单极性码变化成双极性码组成整个HDB3编码器。

【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】_matlab_02


图2 HDB3编码器的框图

三、部分源代码

%本函数实现将输入的一段二进制代码进行HDB3编译码
xn=[1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0]; %输入单极性码
yn=xn; %输出yn初始化
num=0; %计数器初始化
for k=1:length(xn)
if xn(k)==1
num=num+1; %“1”计数器
if num/2== fix(num/2) %奇数个1时输出-1,进行极性交替
yn(k)=1;
else
yn(k)=-1;

四、运行结果

【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】_开发语言_03

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 邱佳雪.基于Matlab编程的HDB3编码设计[J].计算机与网络. 2017,43(Z1)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除