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