写在前面:AHU《通信与编码课程设计》报告基于MATLAB的HDB3编码及解码的实现,本文相较CSDN大多数MATLAB代码,去除了高斯噪声和滤波器部分,以达到直观展示HDB3编解码的过程,同时增加了实现HDB3码双极性半占空比归零码波形的功能,最符合AHU宝宝体制的答辩论文()
若侵权请联系作者删除。
一、选题背景
数字基带信号是数字信号的电脉冲表示,电脉冲的形式称为码型。通常把数字信号的电脉冲表示过程称为码型编码或码型变换,在有线信道中传输的数字基带信号又称为线路传输码型。由码型还原为数字信息称为码型译码。
传号交替反转码常记作AMI码。在AMI码中,二进制码0用0电平表示,二进制码1则交替地用+1和-1的半占空比归零码表示。AMI码位定时频率分量为0,但只要将基带信号经全波整流变为单极性归零码,便可提取位定时信号。但当信息中出现连0码时,由于AMI码中长时间不出现电平跳变,因而定时提取会遇到困难。
n阶高密度双极性码记作HDBn码,可看作AMI码的一种改进型。使用这种码型可以解决AMI码中出现连0串时难以提取位定时信号的问题。
本文的目的便是对如何实现基于MATLAB的HDB3编码及解码进行论证,要求为:
(1)用MATLAB实现HDB3码的编码及解码;
(2)先产生并输出随机序列,对随机序列编码,输出编码后的随机序列,然后解码,并输出解码之后的序列,并与原始序列进行比较。
二、方案论证(设计理念)
n阶高密度双极性码记作HDBn码,可看作AMI码的一种改进型。使用这种码型的目的是解决原信码中出现连0串时所带来的问题。HDBn码中应用最广泛的是HDB3码。在HDB3码中,每当出现4个连0码时用取代节B00V或000V代替,其中B表示符合极性交替规律的传号,V表示破坏极性交替规律的传号,也称为破坏点。当两个相邻V脉冲之间的传号数为奇数时,采用000V取代节;若为偶数时采用BOOV取代节。这种选取原则能确保任意两个相邻V脉冲间的B脉冲数目为奇数,从而使相邻V脉冲的极性也满足交替规律。原信码中的传号都用B脉冲表示。
HDB3的编码流程可表示为以下三个步骤:
第一步,找到使用取代节的位置,即出现4个连0码的地方;
第二步,确定使用哪一种类型的取代节,选择的原则是保证相邻V脉冲之间的B脉冲个数为奇数;
第三步,确定取代节当中B脉冲和V脉冲的极性,注意B脉冲的极性要保持交替反转,而V脉冲的极性是破坏极性交替反转规律的。
对于一串给定的码元序列,按照HDB3码的编码原则画出的波形可以有不同的形式。第一位码的极性可正可负,即可随意选择。第一个取代节可用000V也可用B00V,取决于对第一位码元之前的码元的判断。如果认为第一个4连0之前的取代节为000V+(或B00V+),且该取代节与第一个4连0之间的传号为奇数(或偶数),则第一个取代节取000V-(或B0OV-)。如果认为第一个4连0之前的取代节为000V-(或B00V-),且该取代节与第一个4连0之间的传号为奇数(或偶数),则第一个取代节取000V+(或B00V+),在本文中,第一个取代节使用000V。
虽然HDB3码编码较复杂,但解码规则很简单,就是把原来的取代节(4个连零)找到即可,若3连0前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1就应该译成10000,否则不用改动;若2连0前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000,否则也不用改动。再将所有的-1变换成+1后,就可以得到原消息代码。
基于上述理论,本文的所要实现的功能为:使用MATLAB仿真软件,先产生并输出一段随机序列,作为基带信号,然后对随机序列编码,生成HDB3码,输出编码后的随机序列,最后对HDB3码进行解码,并输出解码之后的序列,并与原始序列进行比较。
预期现象应为:在无高斯白噪声的环境下,即理想环境下,MATLAB编译并显示基带信号序列,HDB3码序列以及对HDB3码解码后的序列的波形图,并且基带信号序列和HDB3码解码后的序列是相同的。
三、过程论述
1、基本参数
在实现基于MATLAB的HDB3编码及解码前,应对必要参数进行配置:
M:基带信号随机序列的码元数;
L:每个码元中采样的次数;
Ts:每个码元的宽度,即每个码元的持续时间为0.001秒;
Rb:码元速率,其值为1kBaud,根据码元持续时间计算,并由于是二进制传输系统,其值与信息速率相等,即1kbit/s;
dt:采样间隔,每个码元持续时间内采样100次,即采样间隔为秒;
TotalT:基带信号随机序列持续总时间=码元数*每个码元持续时间;
t:时间,0到TotalT-dt的间隔为1的序列,作为时间轴;
Fs:采样间隔