1、HDB3码的仿真设计.课程设计任务书学 院 信息科学与工程 专 业 电子信息工程学生姓名 贾元龙 学 号 0803030118设计题目 HDB3码的仿真内容及要求:利用 MATLAB/Simulink 进行编程和仿真,仿真的内容可以是关于信源、信源编码、模拟调制、数字调制、多元调制、差错控制、多址技术、信道仿真及具体通信电路的动态仿真实现。也可以用 MATLAB编程对通信的某一具体环节进行仿真。进度安排:2011 年 06月 17日选题目查阅资料2011 年 06月 20日编写软件源程序或建立仿真模块图2011 年 06月 22日调试程序或仿真模型2011 年 06月 24日性能分析及验收20
2、11 年 06月 27日撰写课程设计报告、答辩指导教师(签字): 学院院长(签字):年 月 日 年 月 日. . .摘 要HDB3码编码规则首先将消息代码变换成 AMI 码;然后检查 AMI 码中的连 0 情况,当无 4 个或 4 个以上的连 0 串时,则保持 AMI 的形式不变;若出现 4 个或 4 个以上连 0 串时,则将 1 后的第 4 个 0 变为与前一非 0 符号( +1 或-1 )同极性的符号,用 V表示( +1 记为 +V,-1 记为-V);最后检查相邻 V 符号间的非 0 符号的个数是否为偶数,若为偶数,则再将当前的 V 符号的前一非 0 符号后的第 1 个 0 变为 +B 或
3、-B 符号,且 B 的极性与前一非 0 符号的极性相反,并使后面的非 0 符号从 V 符号开始再交替变化关键词 : HDB3 码 MATLAB 编码原则 V 码 B 码. . .1 42 43 44 65 126 147 15. . .一、设计目的1.综合应用 Matlab 编程与系统仿真、信号与系统、现代通信原理等多门课程知识,使学生建立通信系统的整体概念;2.培养学生系统设计与系统开发的思想;3.培养学生利用软件进行通信仿真的能力;4.培养学生独立动手完成课题设计项目的能力;5.培养学生查找相关资料的能力。二、设计要求1.每人独立完成一个题目2.对通信系统有整体的较深入的理解, 深入理解自
4、己仿真部分的原理的基础,画出对应的通信子系统的原理框图3.提出仿真方案;4.完成仿真软件的编制5.仿真软件的演示6.提交详细的设计报告三、 相关知识在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输, 因为它有可能造成信号的严重的畸变。. . .在传输码(或称线路吗)的结构将取决于实际信道特性和系统的工作条件。通常,传输码的结构应具有以下的特性:(1) 相应的基带信号无直流分理,且低频分量少 :(2) 便于从信号中提取定时信息:(3) 信号中高频分应尽量少以节省传输频带并减少码间串扰。(4) 不受信号源统计特性
5、影响,即能适应于信息源变化:(5) 具有内在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测:(6) 编译码设备要尽可能简单,等等。满足以上特性的传输码型种类繁多,这里使用HDB3。要了解 HDB3码的编码规则,首先要知道 AMI 码的构成规则, AMI码就是把单极性脉冲序列中相邻的“ 1”码 ( 即正脉冲 ) 变为极性交替的正、负脉冲。将“ 0”码保持不变,把“ 1”码变为 +1、-1 交替的脉冲。如:NRZ码: 10000 100001 100001 1AMI 码: -10000 +10000-1 +10000-1 +1HBD3码( 3nd Order High D
6、ensity Bipolar)的全称是三阶高密度双极性码,它是AMI 码的一种改进型,改进目的是为了保持AMI 码的优点而克服其缺点,使连“ 0”个数不超过 3个。其编码规则:(1)检查消息码中连“ 0”的个数。当连“ 0”数目小于等于 3时, HBD3码与 AMI码一样(“ 1”交替的变换为“ +1”和“ -1 ”,“0”保持不变)。(2)当连“ 0”数目超过 3时,将每 4个连“ 0”化作一小节,定义为“ B00V称为破坏节,其中 V 称为破坏脉冲,而 B 称为调节脉冲;(3)V 与前一个相邻的非“ 0”脉冲的极性相同(这破坏了极性交替的规则,所以V 称破坏脉冲),并且要求相邻的 V 码之
7、间极性必须交替。 V 的取值为“ +1”或“ -1 ”;(4)B 的取值可选 0、+1或-1 ,以使 V 同时满足( 3)中的两个要求;(5)V 码后面的传号码极性也要交替。例如:消息码: 10000 10000 110000 0000 11 AMI 码: -1 000 0 +1 000 0 -1+1 000 0 000 0 -1+1. . .HDB3码: -1 000-V +1 000+V -1+1-B00-V +B00+V -1+1其中的 B 脉冲和 V 脉冲与 1脉冲波形相同, 用 V 或 B 表示的目的是为了示意其中的该非“ 0”码是由原信码的“ 0”变换而来的。当相邻两个 V 码之间
8、有奇数个 “ 1”码时, 能保证 V 码满足(3)的要求, B 取“ 0”;当相邻两个 V 码之间有偶数个 “1”码时,不能保证 V 码极性交替, B 取“+1”或“-1 ”, B 码的符号与前相邻“ 1”相反,而其后面的 V 码与 B 码极性相同。四、 课程设计分析(1)实验编码原理框图如下所示:(1) 编码框图以下是 V 码以及 B 码产生的框图:. . .(2) V 码产生单元的工作流程图(3)B 码产生单元的工作流程图译码规则:在接收端,将接收到的 HDB3码序列恢复为原输入二进制数字信息序列的过程称. . .为译码。对 HDB3码而言,译码就是找到编码时插入的特殊序列并将它恢复为 0
9、000。根据编码原则, HDB3的译码可分为三个步骤:(1)根据“ V”的极性特点,找出特殊序列。由于编码时,每个“ V”的极性都与其前一个“ 1”码的极性相同,所以,在接收序列中一旦出现连续两个同极性码时,两个同极性码的后一个即为“ V”,此“ V”与其前的三位码就是一个特殊序列;(2)将所有的特殊序列都恢复为“ 0000”;(3)将正、负脉冲都恢复为“ 1”码,零电平恢复为“ 0”码。下图是译码的框图:(4)译码框图(2)程序源代码global dt df t f Nclose allN=213;% 采样点数L=8; % 每码元的采样点数M=N/L;%码元数Rb=2;Ts=0.5;%码元宽
10、度是 0.5usdt=Ts/L;df=1/(N*dt);%MHzRT=0.5;%占空比T=N*dt ;%截短时间. . .Bs=N*df/2; % 系统带宽t=-T/2+dt/2:dt:T/2; % 时域横坐标f=-Bs+df/2:df:Bs; % 频域横坐标figure(1)set(1,Position,10,50,300,200)%设定窗口位置及大小figure(2)set(2,Position,350,50,300,200)%设定窗口位置及大小EPAMI=zeros(size(f);EPHDB=zeros(size(f);for ii=1:8ami=zeros(1,M);hdb=zero
11、s(1,M);a=round(rand(1,M);b=3;%表示 0000 之间循环个数c=-1;%记载相邻 V 之间的 1 元素个数sign1=-1; % 标志前一个信号sign2=-1; % 标志前一个信号for ii=1:Mif a(ii)=1sign1=0-sign1;ami(ii)=sign1;endendfor ii=1:Mif b=3 % 表示非 0000if a(ii)=1. . .sign2=0-sign2;hdb(ii)=sign2;if c=0 % 表示不是第一个 0000c=c+1; % 用来计算相邻 v 之间的非 0 元素个数endelseif ii=M-3 & a(
12、ii)+a(ii+1)+a(ii+2)+a(ii+3)=0if mod(c,2)=1 %000Vhdb(ii+3)=sign2;else %B00Vsign2=0-sign2;hdb(ii)=sign2;hdb(ii+3)=sign2;endc=0;b=0;endelseif b3 % 对 0000 的循环b=b+1;endendfor i=1:Lami1(i+0:M-1*L)=ami;hdb1(i+0:M-1*L)=hdb;endAMI=T2F(ami1);PAMI=AMI.*conj(AMI)/T;. . .HDB=T2F(hdb1);PHDB=HDB.*conj(HDB)/T;EPAMI
13、=(EPAMI*(ii-1)+PAMI)/ii;EPHDB=(EPHDB*(ii-1)+PHDB)/ii;figure(1)aa=30+10*log10(EPAMI+eps);%加 eps 以避免除以零 bb=30+10*log10(EPHDB+eps); plot(f,aa,g);gridaxis(-8,+8,-80,80)xlabel(f (MHz)ylabel(AMIPs(f) (dBm/MHz)figure(2)plot(f,bb,b);gridaxis(-8,+8,-80,80)xlabel(f (MHz)ylabel(HDBPs(f) (dBm/MHz)figure(3)subpl
14、ot(3,1,1)tt=1:40;stem(tt,a(1:40),g)title( 原始 RNZ信号 )subplot(3,1,2)stem(tt,ami(1:40),g)title(AMI 信号 )subplot(3,1,3). . .stem(tt,hdb(1:40),g)title(HDB 码)end%将下面的代码保存在 t2f.m 文件中function X=t2f(x)global dt df N t f T%X=t2f(x)%x为时域的取样值矢量%X为 x 的傅氏变换%X与 x 长度相同 , 并为 2 的整幂。%本函数需要一个全局变量 dt( 时域取样间隔 )H=fft(x);X=
15、H(N/2+1:N),H(1:N/2)*dt;end五 仿真图. . . . .六 结果分析HDB3(High Density Binary 3)码的全称是 3 阶高密度双极性码。它是 AMI 码的一种改进型,主要是为了克服 AMI 码中连“ 0”时所带来的提取定时信息的困难。 HDB3编码规则是:先把消息代码中的“ 1”交替变成“ 1”和“ 1” ,“0”仍然保持“ 0” 不变的 AMI 码 ,然后去检查 AMI 码的连“ 0”的情况 , 当没有 4 个和 4 个以上连“ 0” 串时 , 这样的 AMI码就是 HDB3码 ;当出现 4 个和 4 个以上连“ 0”串时 , 则将每 4 个连“0
16、”的小段的第 4 个“ 0”变换成与其前一个非零符号相同极型的符号,并用“ V”和“ V”表示若此“ V”使后面的序列破坏了“极性交替反转” 的原则,则将出现直流分量。故需要保证相邻“ V”的符号也是极性相反,所以,当不满足 V 也极性相反时,将这个连“ 0” 码无串的等一个“ 0” 变成“ B”和“ B” 。“ B”的符号与前一个非“ 0”码的符号相反,并且让后面的非“ 0” 码元符号从“ V” 码开始再交替变化。HDB3码译码比较容易,从收到的符号序列中可以容易地找到破坏点 V,于是也断定V 符号及其前面 3 个符号必是连 0 符号,从而恢复 4 个连 0 码,再将所有的 -1 变成 +1
17、后便得到原消息代码。下面用例题来进一步说明编码与译码的原理:例:求序列 101100000100000000对应的 HDB3码。编码译码步骤如下:找出四连 0序列 ;用特殊序列代替连 0序列,第一个特殊序列可任意选择如选择 100V。(a) 输入的二进制序列101110001010010000100000(b) 用特殊序代替 00001011100V01000V100V(c) 编码输出序列-0+-+00+0-000-+00+例5.2.2 图将“ 1”和“ V”标上极性“ 1”或“ 1” 。输入数据中的“ 1”和特殊序列中的“1”作为一个整体极性交替,第一个“ 1”的极性可任意选择如选择“ 1”
18、。第一个特. . .殊序列中的“ V“与其前第一个“ 1”的极性相同,后面的“ V”依次极性交替。根据上面步骤列出系列各式以及画图,实现 HDB3码的编码。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18Tbt02Tb通过译码原理可知: V 码与 B码的极性相同,我们可以对这个输出码从后开始译码,自然而然的可以得到原输入的序列,此时,编码与译码就完成了。另外说明: 1. 由于第一个特殊序和第一个“ 1”的极性均可任意选择,所以同一数字信息序列的 HDB3可有四种不同的形式。 2. 当编码的序列足够长时,我们的编码与译码过程中更容易得到规律。以上的程序便是综合了 HDB3的编码译码以及对于其仿真的全部过程,此是经过了本组成员的反复修改最终制作而成,对于 HDB3的编译码有了更加深入的了解。七 参考资料1郭文彬,桑林编著,通信原理 - 基于 Matlab 的计算机仿真,北京邮电大学出版社, 20062曹志刚,钱亚生,现代通信原理,清华大学出版社, 2002 年3郭仕剑等, MATLAB 7.x数字信号处理,人民邮电出版社, 2006 年4张辉,曹丽娜编著,通信原理学习指导,西安电子科技大学, 2003. . .
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1