用matlab产生hdb3码,MATLAB仿真 HDB3码程序
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码程序相关推荐
- Matlab实现蓄电池充放电模型(附上完整仿真源码)
蓄电池是一种常见的能量存储设备,被广泛应用于各种领域,如电动车.太阳能发电系统等.为了更好地理解和优化蓄电池的充放电过程,建立一个准确的数学模型是非常重要的.在本文中,我们将介绍使用Matlab建立蓄 ...
- 【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[编码译码]基于matlab HDB3编译码仿真[含Matlab源码 1961期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- matlab双极性眼图,实验报告三编程做单极性码眼图仿真
<实验报告三编程做单极性码眼图仿真>由会员分享,可在线阅读,更多相关<实验报告三编程做单极性码眼图仿真(4页珍藏版)>请在人人文库网上搜索. 1.1.实验目的(1)掌握单极性码 ...
- 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- Matlab实现遗传算法(附上完整仿真源码)
遗传算法(Genetic Algorithm,GA)是一种基于生物进化理论的优化算法,通过模拟自然界中的遗传过程,来寻找最优解. 在遗传算法中,每个解被称为个体,每个个体由一组基因表示,每个基因是解空 ...
- 【滤波跟踪】基于matlab捷联惯导仿真【含Matlab源码 1935期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[滤波跟踪]基于matlab捷联惯导仿真[含Matlab源码 1935期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...
- 简易北斗C/A码matlab仿真
简易北斗C/A码matlab仿真 1.C/A码产生原理 BD2B1 CA码产生原理框图如图所示,图中的方框可以通过移位寄存器来实现,模2加用异或来实现.从图下可见,码由两个线性序列G1 和G2 模二和 ...
- Matlab实现PSO算法(附上6个完整仿真源码)
PSO(Particle Swarm Optimization)是一种优化算法,它模拟了鸟群或鱼群等动物的集体行为,通过群体智能的方式来解决优化问题.PSO算法最初由Kennedy和Eberhart在 ...
- 数字双向码的matlab仿真,数字双相码的仿真 文字版.pdf
通信原理上机实验报告 年级: 姓名: 学号: 时间: 数字双相码的仿真 一.实验目的 1.熟悉MATLAB软件的工作环境 2.熟练掌握数字双相码的MATLAB仿真 3.熟练掌握数字双相码的Simuli ...
- 差动双相码matlab仿真,数字双相码的仿真.docx
数字双相码的仿真 通信原理上机实验报告年级:姓名:学号:时间:数字双相码的仿真一.实验目的1.熟悉MATLAB软件的工作环境2.熟练掌握数字双相码的MATLAB仿真3.熟练掌握数字双相码的Simuli ...
最新文章
- 42、BGP常用命令及注意事项
- Golang之轻松化解defer的温柔陷阱
- 如何禁用<textarea>的调整大小抓取器? [重复]
- Mysql将日期转为字符串
- Lichee (六) 优化配置的微内核
- IAR STM32报错Error[Pe147]:declaration is incompatible with“__nounwind __interwork __softfp unsigned
- 【Tensorflow】更新后报错 numpy.core.umath
- mysql报错:ERROR 1045 (28000): Access 解决办法
- Android第二十课 解决Logcat无法输出调试信息
- 跟着鬼哥学爬虫-2-糗事百科
- MNIST 数据集下载及图片可视化
- eova利用js默认初始查询值查询
- AM3352时钟系统分析
- js calendar / wannianli
- API获取微信小程序二维码
- 俞敏洪励志演讲稿【二】
- 国标28181:什么是SDP协议
- 涉密学位论文不得在联网的计算机上撰写,华南理工大学涉密学位论文管理暂行规定.doc...
- Linux | buildroot使用介绍
- LeetCode 342. 4的幂 附带《Effective C++》pdf版下载