clear

clc

a=1024;                           %a表示元素个数,可以修改码元为任意个数如1024

r=unidrnd(2,1,a-1);              %随机产生离散均匀二值分布(1,2),共a-1个

rn=r-1;                          %每个元素减1变为(0,1)二值随机数列

rn=[1,rn];                        %跟书上一致,从1开始随机产生离散均匀二值分布(1,2),共a个

ori=rn;                           %将原序列保存起来,便于后面解码后比较

ori

l=1;

for n=1:a

if rn(n)==1 ;

l=-l;                            %每检测到一个1变一次符号

rn(n)=l;

end

end

AMI=rn;                             %变为AMI码:每过一个1就使原来的1变一次号

AMI

m=-1;                           %符号初始化

for k=1:a-3

if abs(rn(k))==1

m=rn(k);                 %m记录可能存在的连续4个0前面非零码元的符号

end

if rn(k)==0

if rn(k+1)==0

if rn(k+2)==0

if rn(k+3)==0  %检测是否连续4个码元都是0

rn(k+3)=2*m; %用2表示书上的V

end

end

end

end

end

rn ;                                 %插入V(2)后   checked

l=1;                                 %l=1表示两个V之间有偶数个非零码,0是偶数,所以初始为1,l=-1表示两个V之间有奇数个非零码

for s=1:a

if abs(rn(s))==2

for d=s+1:a

if abs(rn(d))==1           %V之间的非零码只有+1,-1遇到一个一使l变一次号,表示偶数或奇数

l=-l;

end

if abs(rn(d))==2

if l~=1

l=1;                       %不需要插入B时若检测到V也应把计数器清零

%最初版本的升级处1

else                           %检测到下一个V时,若为偶数个,则插入B

rn(d-3)=3*(-(rn(d-4))/(abs(rn(d-4))));               %3代表B,插入不带符号的B

rn(d:a)=-rn(d:a);

end                           %V后的符号再交替

end

end

end

end

rn                                      %到此处完成了插入不带符号的B

%for s=1:a

% if abs(rn(s))==3                                %找到B

%rn(s)=rn(s)*(-(rn(s-1))/(abs(rn(s-1))));           %B(3)与前一个位置的带符号的归一值相乘再取反,实现符号B(3)的极性与前一非符号的相反

%B后面第三个就是接下来的V,从它开始非零码正负号交替变化

%end

%end

HDB=rn;                                        %给B(3)添加了符号,并且实现了V后的符号再交替

HDB ;

%以上便实现了HDB3的编码

%下面进行解码

for k=1:a

if abs(rn(k))==2

rn(k-3)=0;rn(k)=0;                       %每个V(2)都变成0,V前面第三个有可能是B(3)有可能是0也恢复为0

end

if abs(rn(k))==1

rn(k)=1;

end

end

rn;                                            %解码后的恢复序列

rn-ori                                         %解码与原码比较全为0则解码正确

用matlab产生hdb3码,MATLAB仿真 HDB3码程序相关推荐

  1. Matlab实现蓄电池充放电模型(附上完整仿真源码)

    蓄电池是一种常见的能量存储设备,被广泛应用于各种领域,如电动车.太阳能发电系统等.为了更好地理解和优化蓄电池的充放电过程,建立一个准确的数学模型是非常重要的.在本文中,我们将介绍使用Matlab建立蓄 ...

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

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[编码译码]基于matlab HDB3编译码仿真[含Matlab源码 1961期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...

  3. matlab双极性眼图,实验报告三编程做单极性码眼图仿真

    <实验报告三编程做单极性码眼图仿真>由会员分享,可在线阅读,更多相关<实验报告三编程做单极性码眼图仿真(4页珍藏版)>请在人人文库网上搜索. 1.1.实验目的(1)掌握单极性码 ...

  4. 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  5. Matlab实现遗传算法(附上完整仿真源码)

    遗传算法(Genetic Algorithm,GA)是一种基于生物进化理论的优化算法,通过模拟自然界中的遗传过程,来寻找最优解. 在遗传算法中,每个解被称为个体,每个个体由一组基因表示,每个基因是解空 ...

  6. 【滤波跟踪】基于matlab捷联惯导仿真【含Matlab源码 1935期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[滤波跟踪]基于matlab捷联惯导仿真[含Matlab源码 1935期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  7. 简易北斗C/A码matlab仿真

    简易北斗C/A码matlab仿真 1.C/A码产生原理 BD2B1 CA码产生原理框图如图所示,图中的方框可以通过移位寄存器来实现,模2加用异或来实现.从图下可见,码由两个线性序列G1 和G2 模二和 ...

  8. Matlab实现PSO算法(附上6个完整仿真源码)

    PSO(Particle Swarm Optimization)是一种优化算法,它模拟了鸟群或鱼群等动物的集体行为,通过群体智能的方式来解决优化问题.PSO算法最初由Kennedy和Eberhart在 ...

  9. 数字双向码的matlab仿真,数字双相码的仿真 文字版.pdf

    通信原理上机实验报告 年级: 姓名: 学号: 时间: 数字双相码的仿真 一.实验目的 1.熟悉MATLAB软件的工作环境 2.熟练掌握数字双相码的MATLAB仿真 3.熟练掌握数字双相码的Simuli ...

  10. 差动双相码matlab仿真,数字双相码的仿真.docx

    数字双相码的仿真 通信原理上机实验报告年级:姓名:学号:时间:数字双相码的仿真一.实验目的1.熟悉MATLAB软件的工作环境2.熟练掌握数字双相码的MATLAB仿真3.熟练掌握数字双相码的Simuli ...

最新文章

  1. 42、BGP常用命令及注意事项
  2. Golang之轻松化解defer的温柔陷阱
  3. 如何禁用<textarea>的调整大小抓取器? [重复]
  4. Mysql将日期转为字符串
  5. Lichee (六) 优化配置的微内核
  6. IAR STM32报错Error[Pe147]:declaration is incompatible with“__nounwind __interwork __softfp unsigned
  7. 【Tensorflow】更新后报错 numpy.core.umath
  8. mysql报错:ERROR 1045 (28000): Access 解决办法
  9. Android第二十课 解决Logcat无法输出调试信息
  10. 跟着鬼哥学爬虫-2-糗事百科
  11. MNIST 数据集下载及图片可视化
  12. eova利用js默认初始查询值查询
  13. AM3352时钟系统分析
  14. js calendar / wannianli
  15. API获取微信小程序二维码
  16. 俞敏洪励志演讲稿【二】
  17. 国标28181:什么是SDP协议
  18. 涉密学位论文不得在联网的计算机上撰写,华南理工大学涉密学位论文管理暂行规定.doc...
  19. Linux | buildroot使用介绍
  20. LeetCode 342. 4的幂 附带《Effective C++》pdf版下载

热门文章

  1. Android开发入门前准备
  2. 美好创亿医疗通过注册:年营收11亿 熊小川控制81%股权
  3. 7.1编辑shapefile文件
  4. python模拟登录教务系统
  5. 平稳性的检验 java_[时间序列分析]--平稳性,白噪声的检验
  6. winform自定义日历控件
  7. 流程图常用符号及其代表含义
  8. adb的环境搭建,下载和卸载app
  9. Android - 浅谈 Handler 机制
  10. xmlspy_XMLSpy是免费的吗? 我说天堂的甘露。