一.实验设备
PC机
MATLAB软件
二.实验目的
了解二进制单极性码变换为AMI码的编码规则;熟悉HDB3码的基本特征,编译码原理和实现方法。
三.实验内容:
利用MATLAB建模产生原码,AMI码,HDB3码波形,熟悉AMI和HDB3码编码译码规则,基本特征.
四.实验原理
(AMI)双极性码是二进制码,1为反转,0为保持零电平。即其中0不做变化,唯1进行正负交替变化。
(HDB3)三阶高密度双极性码
1、连0的个数不超过3时,规则与AMI相同,即0不变,1变为-1、+1交替;
2、若连0的个数超过3,则将每4个0看作一小节,定义为B00V。
3、B和V具体值满足以下条件:V和前面相邻非0符号极性相同;不看V时极性交替;V与V之间极性交替;计算机中B,V均用±1来表示
五.实验代码例
xn=[1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1];tn=xn;num=0;%AMI部分for k=1:length(xn) %只对1进行变化if xn(k)==1num=num+1; %将-1,1归为一组,故从数组第一次数到非零数时,可对应为-1,下一个非零数为1(AMI中)if num/2==fix(num/2)tn(k)=1;elsetn(k)=-1;endendenddecodeAMI=abs(tn); %解码figure(1);%显示三行,一列图,图一为原码,图二为AMI码,图三为解码;stairs函数用以形成柱状图;axis用以对坐标轴进行一定的缩放操作;具体操作读者自行查阅subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);grid;subplot(3,1,2);stairs([0:length(xn)-1],tn);axis([0 length(xn) -2 2]);grid;subplot(3,1,3);stairs([0:length(xn)-1],decodeAMI);axis([0 length(xn) -2 2]);grid;%HDB3部分(基于AMI码,读者验证切勿用原码代入)HDB3=tn;num1=0;l1=0;lv=0;for i=1:length(xn)if HDB3(i)==0num1=num1+1;if num1==4if lv==l1HDB3(i)=-l1;HDB3(i-3)=-l1;elseHDB3(i)=l1;endlv=HDB3(i);l1=lv;num1=0;endelseif HDB3(i)==l1HDB3(i)=-l1;endl1=HDB3(i);num1=0;endenddecodeHDB3=HDB3;%解码l1=0;for i=1:length(xn)if decodeHDB3(i)~=0 %不等于if decodeHDB3(i)==l1l1=decodeHDB3(i);for j=0:3decodeHDB3(i-j)=0;endelsel1=decodeHDB3(i);endendenddecodeHDB3=abs(decodeHDB3);figure(2);subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);grid;subplot(3,1,2);stairs([0:length(xn)-1],HDB3);axis([0 length(xn) -2 2]);grid;subplot(3,1,3);stairs([0:length(xn)-1],decodeHDB3);axis([0 length(xn) -2 2]);grid;