实验02基带波形.docx
- 文档编号:584454
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:9
- 大小:394.25KB
实验02基带波形.docx
《实验02基带波形.docx》由会员分享,可在线阅读,更多相关《实验02基带波形.docx(9页珍藏版)》请在冰点文库上搜索。
实验二、基带传输常用码的编码解码方法
一、实验目的
了解基带传输常用码的编码解码方法
二、实验内容
设定一个信息码串,产生常见的编码如单极性非归零、双极性非归零、单极性归零、双极性归零、AMI、HDB3码的时域波形;不考虑噪声影响,以采样电平为依据恢复出原始信息串。
三、实验原理
1、单极性非归零。
它用正电平和零电平分别对应二进制码“1”和“0”,波形特点是电脉
冲之间无间隔,极性单一。
2.双极性非归零。
用正负电平的脉冲分别代表二进制代码“1”和“0”。
其正负电平的幅度相等、极性相反。
3.单极性归零。
是单极性非归零波形的形式。
4.双极性归零。
是双极性非归零波形的形式,兼有双极性和归零波形的特点。
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)中的两个要求;
5)V码后面的传号码极性也要交替。
译码:
从收到的符号序列中可以很容易的找到破坏点V,就可以断定V符号及前面的三个符号必须是连“0”符号,从而恢复四个连“0”码,再将所有-1变成+1后便得到原消息代码。
四、实验内容
1. 设定一个信息码串为x=[10110000000110000001]
2. 各个码的编码规则以及MATLAB代码:
(1)单极性非归零码:
Matlab代码如下:
functiony=NRZ(x,samp)fori=1:
length(x)
ifx(i)==1forj=1:
samp
y((i-1)*samp+j)=1;end
else
forj=1:
samp
endendend
y=[y,x(i)];
运行代码:
y((i-1)*samp+j)=0;
x=[101000111000110000011];
subplot(2,1,1);
stairs(x);%绘制阶梯状图axis([121-0.51.5])%坐标设置y=NRZ(x,300);
subplot(2,1,2);stairs(y);
axis([06000-0.51.5])
%gridon
代码说明:
代码中samp为采样个数,设定为300,即右图中的波形是通过很多次采样得来的。
显见,单极性非归零码的编码规则是基带信号的0电位及正电位分别于二进制符号0和1一一对应。
原信息串:
10110000000110000001
现信息串:
10110000000110000001
特点:
占空比100%;简单;直流分量大;
对长串的连“0”,连“1”信号,难以提取同步信号。
一般只用于非常近距离(如电路板内或板间)信号传输。
(2)双极性非归零码
Matlab代码如下:
functiony=BNRZ(x,samp)fori=1:
length(x)
ifx(i)==1forj=1:
samp
y((i-1)*samp+j)=1;end
else
forj=1:
samp
y((i-1)*samp+j)=-1;end
endend
y=[y,x(i)];
运行代码:
x=[101000111000110000011];
subplot(2,1,1);stairs(x);
axis([121-0.51.5])y=BNRZ(x,300);
subplot(2,1,2);stairs(y);
axis([06000-1.51.5])
代码说明:
与单极性码类似,samp为采样个数
显见,双极性波形就是二进制符号0.1分别于正、负电位相对应的波形。
原信息串:
10 110 0 0 0 0 0 0 11 0 0 0 0 0 01
现信息串:
1-111-1-1-1-1-1-1-111-1-1-1-1-1-11
优点,电脉冲无间隔,当0、1等可能出现时,没有直流成分。
(3)单极性归零码
Matlab代码如下:
functiony=RZ(x,samp)fori=1:
length(x)
ifx(i)==1
forj=1:
samp/2
y((2*i-2)*samp/2+j)=1;y((2*i-1)*samp/2+j)=0;end
else
forj=1:
samp
y((i-1)*samp+j)=0;end
endend
y=[y,x(i)];
运行代码:
x=[101000111000110000011];
subplot(2,1,1);stairs(x);
axis([121-0.51.5])y=RZ(x,300);
subplot(2,1,2);stairs(y);
axis([06000-1.51.5])
代码说明:
若电位为1,则前150个采样周期为1,后150个采样周期要回到0原信息串:
1 01 100000001 10000001
现信息串:
10010100000000101000000010
特点:
占空比(t/T)%,通常为50%。
相对NRZ,RZ更有利于提取位同步信号。
(4)双极性归零码
Matlab代码如下:
functiony=BRZ(x,samp)fori=1:
length(x)
ifx(i)==1
forj=1:
samp/2
endelse
forj=1:
samp/2
y((2*i-2)*samp/2+j)=1;y((2*i-1)*samp/2+j)=0;
y((2*i-2)*samp/2+j)=-1;y((2*i-1)*samp/2+j)=0;end
endend
y=[y,x(i)];
运行代码:
x=[101000111000110000011];
subplot(2,1,1);stairs(x);
axis([121-0.51.5])y=BRZ(x,300);
subplot(2,1,2);
stairs(y);
axis([06000-1.51.5])
代码说明:
若电位为1,则前150个采样周期为1,后150个采样周期要回到0若电位为0,则前150个采样周期为-1,后150个采样周期要回到0
原:
1 0 11 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
现:
10-101010-10-10-10-10-10-10-101010-10-10-10-10-10-10 10
特点:
由图可见,相邻脉冲间留有零电位的间隔。
双极性归零码的构成与单极性归零码一样。
这种码型除了具有双极性不归零码的一般特点以外,还可以通过简单的变换电路变换为单极性归零码,从而可以提取同步信号。
(5)AMI码
Matlab代码如下:
functiony=AMI(x,samp)last_one=-1;
fori=1:
length(x)ifx(i)==1
forj=1:
samp/2
y((2*i-2)*samp/2+j)=-last_one;y((2*i-1)*samp/2+j)=0;
end
last_one=-last_one;else
forj=1:
samp
y((i-1)*samp+j)=0;end
endend
y=[y,x(i)];
运行代码:
x=[101000111000010000111];
subplot(2,1,1);stairs(x);
axis([121-0.51.5])y=AMI(x,300);
subplot(2,1,2);stairs(y);
axis([06000-1.51.5])
代码说明:
AMI码的全称是传号交替反转码。
这是一种将消息中的代码“0”(空号)和“1”
(传号)按如下规则进行编码的码:
代码“0”仍为0;代码“1”交替变换为+1、-1、+1、-
1、┅。
原信息串:
1 0 1 10000000 1 1000000 1
现信息串:
100-10100000000-1010000000-10
AMI码的优点:
不含直流成分,低频分量小;编译码电路简单,便于利用传号极性交替规律观察误码情况。
鉴于这些优点,AMI码是ITU建议采用的传输码型之一。
AMI码的缺点:
当原信码出现连“0”串时,信号的电平长时间不跳变,造成提取定时信号的困难。
解决连“0”码问题的有效方法之一是采用HDB3码。
特点:
正负脉冲各占50%,无直流分量;具有一定检错能力(极性交替规律被破坏)。
与信源统计性能有一定关系,如出现多个连“0”时,同步信号的提取有困难。
(6)HDB3码
Matlab代码如下:
functiony=HDB3(x,samp)last_V=-1;
last_one=-1;
num=0;
fori=1:
length(x)ifx(i)==1
forj=1:
samp/2
y((2*i-2)*samp/2+j)=-last_one;y((2*i-1)*samp/2+j)=0;
end
last_one=-last_one;num=0;
elsenum=num+1;ifnum==4num=0;
temp=-last_V;forj=1:
samp/2
y((2*i-2)*samp/2+j)=temp;y((2*i-1)*samp/2+j)=0;end
last_V=temp;
iftemp*last_one==-1forj=1:
samp/2
y((2*(i-3)-2)*samp/2+j)=temp; y((2*(i-3)-1)*samp/2+j)=0;
endend
last_one=temp;end
endend
y=[y,x(i)];
运行代码:
x=[101000111000000000011];
subplot(2,1,1);stairs(x);
axis([121-0.51.5])y=HDB3(x,300);
subplot(2,1,2);stairs(y);
axis([06000-1.51.5])
代码说明:
HDB3的编码规则:
(1)当信码的连“0”个数不超过3时,仍按AMI码的规则编码,即传号极性交替
(2)当连“0”个数超过3时,出现4个或4个以上连“0串时,”则将每4个连“0”小段的第4个“0”变换为非“0”脉冲,用符号V表示,称之为破坏脉冲。
而原来的二进制码元序列中所有的“1”码称为信码,用符号B表示。
当信码序列中加入破坏脉冲以后,信码B与破坏脉冲V的正负极性必须满足如下两个条件:
①B码和V码各自都应始终保持极性交替变化的规律,以确保编好的码中没有直流成分;
②V码必须与前一个非零符号码(信码B)同极性,以便和正常的AMI码区分开来。
如果这个条件得不到满足,那么应该将四连“0”码的第一个“0”码变换成与V码同极性的补信码,用符号B'表示,并做调整,使B码和B'码合起来保持条件①中信码(含B及B')极性交替变换的规律。
原信息串:
1 0 1 1000 0000 1 10 000 00 1
现信息串:
100-101000010000-1010-1000-100010
HDB3的特点:
保持了AMI码的优点,还增加了使连0串减少至至多三个的优点
五、实验总结
编码的波形matlab实现重点在掌握各个编码规则的基础上能够使用matlab实现各种波形,此次实验是对于一些matlab利用语句或者函数的问题,解决起来相对容易,没有涉及到通信原理方面过多的知识。
对matlab也有了更多的掌握,同时对通信原理中提到的几种编码有了更深一步的认识,特别是对HDB3码和AMI码有了更深的认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 02 基带 波形