用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)=

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值