1、5. AMI。全称是传号交替反转码,其编码规则是将消息码的“1”交替的变换为“+1”和“-1”,而“0”保持不变。6. HDB3。全称是三阶高密度双极性码。编码规则是:1) 检查消息码中“0”的个数。当连“0”数目小于等于 3 时,HDB3 码与 AMI 码一样,+1、-1 交替;2) 当连“0”个数超过 3 时,将每四个连“0”化作一小节,定义为 B00V,称为破坏节, 其中 V 称为破坏脉冲,而 B 称为调节脉冲;3)V 与前一个相邻的非“0”脉冲的极性相同,并且要求相邻的 V 码之间极性必须交替。V 的取值为+1 或-1;4)B 的取值可选 0、+1 或-1,以使 V 同时满足(3)中的
2、两个要求;5)V 码后面的传号码极性也要交替。译码:从收到的符号序列中可以很容易的找到破坏点 V,就可以断定 V 符号及前面的三个符号必须是连“0”符号,从而恢复四个连“0”码,再将所有-1 变成+1 后便得到原消息代码。四、实验内容1.设定一个信息码串为x=1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 12.各个码的编码规则以及MATLAB代码:(1) 单极性非归零码:Matlab 代 码 如 下 : function y=NRZ(x,samp) for i=1:length(x)if x(i)=1 for j=1:sampy(i-1)*samp+j)=1; e
3、ndelsefor j=1:end end endy=y,x(i);运行代码:y(i-1)*samp+j)=0;x=1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1;subplot(2,1,1);stairs(x);% 绘 制 阶 梯 状 图 axis(1 21 -0.5 1.5)%坐标设置y=NRZ(x,300);subplot(2,1,2); stairs(y);axis(0 6000 -0.5 1.5)%grid on代码说明:代码中samp为采样个数,设定为300,即右图中的波形是通过很多次采样得来的。显见,单极性非归零码的编码规则是基带信号的0电位及
4、正电位分别于二进制符号0和1一一对应。原信息串:1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1现信息串:特点:占空比 100;简单;直流分量大;对长串的连“0”,连“1”信号,难以提取同步信号。 一般只用于非常近距离(如电路板内或板间)信号传输。(2) 双极性非归零码Matlab代码如下:function y=BNRZ(x,samp) for i=1:y(i-1)*samp+j)=-1;end end stairs(x);axis(1 21 -0.5 1.5) y=BNRZ(x,300);axis(0 6000 -1.5 1.5)与单极性码类似,samp为采样个
5、数显见,双极性波形就是二进制符号0.1分别于正、负电位相对应的波形。1 01 1 00000001 1000000 11 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1优点,电脉冲无间隔,当0、1等可能出现时,没有直流成分。(3) 单极性归零码 function y=RZ(x,samp) for i=1:if x(i)=1samp/2y(2*i-2)*samp/2+j)=1; y(2*i-1)*samp/2+j)=0;axis(1 21 -0.5 1.5) y=RZ(x,300);若电位为1,则前150个采样周期为1,后150个采样周期要
6、回到0 原信息串:10 11 0 0 0 0 0 0 0 11 0 0 0 0 0 0 110 0 10 10 0 0 0 0 0 0 0 10 10 0 0 0 0 0 0 10占空比 (t/T),通常为50。相对NRZ,RZ更有利于提取位同步信号。(4) 双极性归零码 function y=BRZ(x,samp) for i=1:end elsey(2*i-2)*samp/2+j)=1;y(2*i-2)*samp/2+j)=-1;axis(1 21 -0.5 1.5) y=BRZ(x,300);stairs(y);若电位为1,则前150个采样周期为1,后150个采样周期要回到0 若电位为0
7、,则前150个采样周期为-1,后150个采样周期要回到0原:101 10000000110000001现:10 -10 10 10 -10 -10 -10 -10 -10 -10 -10 10 10 -10 -10 -10 -10 -10 -1010由图可见,相邻脉冲间留有零电位的间隔。双极性归零码的构成与单极性归零码一样。这种码型除了具有双极性不归零码的一般特点以外,还可以通过简单的变换电路变换为单极性归零码,从而可以提取同步信号。(5) AMI 码 function y=AMI(x,samp) last_one=-1;for i=1:length(x) if x(i)=1y(2*i-2)*
8、samp/2+j)=-last_one;endlast_one=-last_one; elsex=1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1;axis(1 21 -0.5 1.5) y=AMI(x,300);AMI 码的全称是传号交替反转码。这是一种将消息中的代码“0”(空号)和“1”(传号)按如下规则进行编码的码:代码“0”仍为 0;代码“1”交替变换为+1、-1、+1、-1、。1011 0 0 0 0 0 0 011 0 0 0 0 0 0110 0 -10 10 0 0 0 0 0 0 0 -10 10 0 0 0 0 0 0 -10AMI 码的优
9、点:不含直流成分,低频分量小;编译码电路简单,便于利用传号极性交替规律观察误码情况。鉴于这些优点,AMI 码是 ITU 建议采用的传输码型之一。AMI 码的缺点:当原信码出现连“0”串时,信号的电平长时间不跳变,造成提取定时信号的困难。解决连“0”码问题的有效方法之一是采用 HDB3 码。正负脉冲各占 50,无直流分量;具有一定检错能力(极性交替规律被破坏)。与信源统计性能有一定关系,如出现多个连“0”时,同步信号的提取有困难。(6) HDB3 码Matlab 代码如下:function y=HDB3(x,samp) last_V=-1;last_one=-1;num=0; num=0;els
10、e num=num+1; if num=4 num=0;temp=-last_V; for j=1:y(2*i-2)*samp/2+j)=temp;last_V=temp;if temp*last_one=-1 for j=1:y(2*(i-3)-2)*samp/2+j)=temp;y(2*(i-3)- 1)*samp/2+j)=0;last_one=temp;x=1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1;axis(1 21 -0.5 1.5) y=HDB3(x,300);HDB3 的编码规则:(1) 当信码的连“0”个数不超过 3 时,仍按 AMI
11、码的规则编码,即传号极性交替(2) 当连“0”个数超过 3 时,出现 4 个或 4 个以上连“0 串时,”则将每 4 个连“0”小 段的第 4 个“0”变换为非“0”脉冲,用符号 V 表示,称之为破坏脉冲。而原来的二进制码元序列中所有 的 “1”码 称为信码,用符号 B 表示。当信码序列中加入破坏脉冲以后, 信码 B 与破坏脉冲 V 的正负极性必须满足如下两个条件: B 码和 V 码各自都应始终保持极性交替变化的规律,以确保编好的码中没有直流成分; V 码必须与前一个非零符号码(信码 B)同极性,以便和正常的 AMI 码区分开来。如果这个条件得不到满足,那么应该将四连“0”码的第一个“0”码变
12、换成与 V 码同极性的补信码,用符号 B表示,并做调整,使 B 码和 B码合起来保持条件中信码(含 B 及B)极性交替变换的规律。1011 0 0 00 0 0 011 00 0 00 0110 0 -10 10 0 0 0 10 0 0 0 -10 10 -10 0 0 -10 0 0 10HDB3 的特点:保持了 AMI 码的优点,还增加了使连 0 串减少至至多三个的优点五、实验总结编码的波形 matlab 实现重点在掌握各个编码规则的基础上能够使用 matlab 实现各种波形, 此次实验是对于一些 matlab 利用语句或者函数的问题,解决起来相对容易,没有涉及到通信原理方面过多的知识。对 matlab 也有了更多的掌握,同时对通信原理中提到的几种编码有了更深一步的认识,特别是对 HDB3 码和 AMI 码有了更深的认识。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2