1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 通信原理;利用MATLAB实现AMI/HDB3编译码

通信原理;利用MATLAB实现AMI/HDB3编译码

时间:2023-04-21 06:53:42

相关推荐

通信原理;利用MATLAB实现AMI/HDB3编译码

一.实验设备

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;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。