通信原理课程设计报告题目:数字基带信号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.1 MATLAB软件的介绍 (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 1AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1HDB3码:+1 0 0 0 +1 -1 0 0 0 -1 +1 -1 +1 0 0 +1 -1 +11.3 HDB3码的解码转换规则虽然编码很复杂,但解码规则很简单,就是把原来的取代节(4个连零)找到即可,若3连"0"前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1 就应该译成"10000",否则不用改动;若2连"0"前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000,否则也不用改动。
再将所有的-1变换成+1后,就可以得到原消息代码。
例如:程序译码部分主要是从收到的符号序列中找到破坏极性交替的点,从而断定符号及其前面的3个符号必是连0符号,从而恢复4个连码,再将所有的-1变换成+1后,就可以得到原消息代码HDB3码当程序完成HDB3的编码与解码后,就是对HDB3码进行加噪声与滤波处理,接着是图像方波输出部分,完整源程序如下:源程序:clc;clear all;b=xn;t=0:0.001:0.999;g=b(ceil(24*t+0.01)); subplot(611);plot(t,g)axis([0 1.2 -1.2 1.2])title('信源');am=yh;t=0:0.001:0.999;ami=am(ceil(24*t+0.01));subplot(612);plot(t,ami)axis([0 1.2 -1.2 1.2]) title('信源');f=150;a=yh;t=0:0.001:0.999;m=a(ceil(24*t+0.01)); st=m;subplot(613);plot(t,st)axis([0 1.2 -1.2 1.2]) title('HDB3信号')subplot(614)plot(t,nst)axis([0 1.2 -1.2 1.2]); title('高斯HBD3信号')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) ~= 0if sign==yh(k) % 如果当前码与前一个非零码的极性相同decode(k-3:k)=[0 0 0 0];% 则该码判为V码并将*00V清零endsign=input(k); % 极性标志endenddecode=abs(decode);2.MATLAB软件仿真结果及其分析2.1 MATLAB软件的介绍MATLAB是一种用于数据可视化、算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了绘制函数/数据图像、矩阵运算等常用功能外,MATLAB还可用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
MATLAB有一系列的工具,这些工具可供用户使用MATLAB的函数和文件,其中许多工具是图形界面。
包括MATLAB桌面和历史命令窗口、编辑器和调试器、命令窗口、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
Matlab它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点,是一个高级的矩阵/阵列语言,。
用户可以在命令窗口中将输入语句与执行命令同步,或者编写好一个复杂的应用程序后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,但是更具要包容性,因此语法特征与C++语言极为相似,而且更加简单,更加符合人们对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
MATLAB拥有大量计算算法。
其拥有600多个工程中要用到的数学运算函数,可实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的满意成果,而且经过了优化和容错处理。
通常情况下,用它来代替底层编程语言是可行的,如C和C++ 。
在计算要求相同的情况下,使用MATLAB的编程工作量和时间会大大减少。
Matlab可以对图形进行标注和打印。
高级的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB 对整个图形处理功能作了完善,让它不仅在一般数据可视化软件都具有的功能。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,比如图像处理、控制系统设计与分析、信号处理与通讯、金融建模和分析等。
提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
由于MATLAB具有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来和具有完备的图形处理功能,实现计算结果和编程的可视化,因此我们选择它来进行此次课程设计的仿真软件。
2.2 仿真结果图示图1图1从上往下图形依次是信源波形图、AMI码波形图、HDB3码波形图、经过高斯白噪声信道的HDB3码图形、经过接收端滤波的HDB3码解码图形。
图2为解码频谱图图2图3为HDB3码频谱图图32.3 仿真结果分析根据AMI和HDB3的编码规则,图中的AMI和HDB3码的编码与其是一致的。
信道是方差为0.2,均值为0的高斯白噪声信道。
经过低通滤波后的波形通过阈值为0.3的抽样判决得出的二进制序列的消息码与信源基本一致。
下图的图3,图4,图5分别为HDB3,接收端,信宿的频谱,由图中可以看出编码出来的HDB3和滤波后的HDB3码所含低频分量少,无直流分量;适合在信道传输。
图4 图5图6数据2将高斯信道的方差改为0.05,判决器的阈值依然是0.3,各个码型的时域图如下:图7图8图9 图10分析:因为将噪声的强度变小了,所以在高斯白噪声信道的HDB3码的噪声强度有所减弱。
阈值为0.3的判决器能将其还原出完整的信源。
其他的AMI码,HDB3码的编码实现无改变。
数据3:将高斯信道的方差改为0.6,判决器的阈值是0.3,各个码型的时域图如下:图11图12图13图14分析:因为将噪声强度升到0.6,所以HDB3通过高斯白噪声信道的波形变得更加不稳定,所以经过设计的低通滤波后,滤波效果比之前的会有点误差。