通信原理报告 数字基带信号HDB3码型编码转换实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通信原理课程设计报告题目:数字基带信号HDB3码型编码转换实现

专业班级:

姓名:

学号:

指导教师:

设计任务要求:

仿真实现数字基带通信系统信源输入24位二进制序列产生HDB3码,通过高斯白噪声信道,接收端滤波、解码的时域图及频谱图。以矩形波为例,要求实现输入24位二进制序列产生AMI码,HDB3码,接收端滤波、解码上述码型。

摘要

HDB3码全称三阶高密度双极性码(英语:High Density Bipolar of Order 3,简称:HDB3码)是一种适用于基带传输的编码方式,它是为了克服AMI码的缺点而出现的,具有能量分散,抗破坏性强等特点。HDB3码实行转换一般分为三个步骤,先将消息码转换AMI码然后加“V”,接着加“B”,这几部我们可以使用C语言进行编程实现。为了实现HDB3码的编码与转换,同时加深对通信系统工作原理的了解,我们采用了MATLAB软件进行编码仿真,同时学习掌握MATLAB软件的基础使用。

关键词:AMI码;HDB3码;编码;解码;MATLAB;仿真

目录

1. 设计原理 (4)

1.1 HDB3码的介绍 (4)

1.2 HDB3码的编码转换规则 (5)

1.3 HDB3码的解码转换规则 (5)

1.4 HDB3码的软件程序设计 (6)

2. MATLAB软件仿真结果及其分析 (10)

2.1MATLAB软件的介绍 (10)

2.2 仿真结果图示 (12)

2.3 仿真结果分析 (15)

3. 设计总结及心得体会 (22)

4. 参考文献 (22)

5. 致谢 (23)

正文

1.设计原理

1.1 HDB3码的介绍

HDB3码即三阶高密度双极性码(英语:High Density Bipolar of Order 3,简称:HDB3码)是一种适用于基带传输的编码方式,“三阶”通俗讲就是最多3个连0码元,“高密度双极性”就是没有直流分量,不会连续出现+1或-1,它是为了克服AMI码的缺点而出现的,具有能量分散,抗破坏性强等特点。

三阶高密度双极性码用于所有层次的欧洲E-carrier系统,HDB3码将4个连续的"0"位元取代成"000V"或"B00V"。这个做法可以确保连续的相隔单数的一般B记号。

1.2 HDB3的编码转换规则

HDB3码的编码规则主要分为3步:

1 .先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI 码就是HDB3码;

2 .若AMI码中连0的个数大于等于4,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+V,-V);

3 .为了不破坏极性交替反转,当相邻V符号之间有偶数个非0符号时,再将该小段的连0码元段的第1个0变换成+B或-B,B的符号与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。

例如:

消息代码: 1 0 0 0 0 10 0 0 0 1 1 0 0 0 0 1 1

AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1

HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1

HDB3码:+1 0 0 0 +1 -1 0 0 0 -1 +1 -1 +1 0 0 +1 -1 +1

1.3 HDB3码的解码转换规则

虽然编码很复杂,但解码规则很简单,就是把原来的取代节(4个连零)找到即可,若3连"0"前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1 就应该译成"10000",否则不用改动;若2连"0"前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000,否则也不用改动。再将所有的-1变换成+1后,就可以得到原消息代码。

例如:

HDB3:0 +1 0 0 -1 0 0 0 -1 +1 0 0 0 +1 -1 +1 -1 0 0 -1 +1 0 0 -1

译码:0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1

当程序完成HDB3的编码与解码后,就是对HDB3码进行加噪声与滤波处理,

接着是图像方波输出部分,完整源程序如下:

源程序:

u=decode;

t=0:0.001:0.999;

v=u(ceil(24*t+0.01)); subplot(616);

plot(t,v)

axis([0 1.2 -1.2 1.2]) title('信源');

%频谱观察

Y=fft(st,1024);

Z=fftshift(Y);

Pyy=Z.*conj(Z)/(1024); f=1000*(0:1000)/(1024); figure(2);

plot(f,Pyy(1:1001)); axis([400 600,0 55]);

title('HDB3频谱图');

xlabel('频率f(Hz)');

Y=fft(decode,1024);

Z=fftshift(Y);

Pyy=Z.*conj(Z)/(1024);

f=1000*(0:1000)/(1024);

figure(3);

plot(f,Pyy(1:1001));

axis([400 600,0 0.05]);

title('解码频谱图');

xlabel('频率f(Hz)');

由于这个课程设计是以组为单位的,我主要负责译码的部分,下面是译码的程序。input=yh; % HDB3码输入

decode=input; % 输出初始化

sign=0; % 极性标志初始化

for k=1:length(yh)

if input(k) ~= 0

if sign==yh(k) % 如果当前码与前一个非零码的极性相同

decode(k-3:k)=[0 0 0 0];% 则该码判为V码并将*00V清零

end

sign=input(k); % 极性标志

end

end

decode=abs(decode);

2.MATLAB软件仿真结果及其分析

2.1MATLAB软件的介绍

MATLAB是一种用于数据可视化、算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境。除了绘制函数/数据图像、矩阵运算等常用功能外,MATLAB还可用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。MATLAB有一系列的工具,这些工具可供用户使用MATLAB的函

相关文档
最新文档