2022年应答器编译码策略解读归纳 .pdf

上传人:Che****ry 文档编号:27189516 上传时间:2022-07-23 格式:PDF 页数:35 大小:458.93KB
返回 下载 相关 举报
2022年应答器编译码策略解读归纳 .pdf_第1页
第1页 / 共35页
2022年应答器编译码策略解读归纳 .pdf_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《2022年应答器编译码策略解读归纳 .pdf》由会员分享,可在线阅读,更多相关《2022年应答器编译码策略解读归纳 .pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、应答器编译码策略解读本文主要对欧洲应答器标准下通信编码部分进行了研究和分析。面向实际应用,对关键算法和报文的生成和接收端的处理过程进行了较为详细的解读。内容上紧扣标准中的规范,方便读者对标准进行准确的理解尹华镜2009/12/17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - 应答器编译码策略解读2009/12/17 应答器报文主要具有如下几个特征:1.两种不同长度的报文:n=1023 和 n=341 ,供实际需要选择。2.

2、两种不同长度的报文分别可传送大量不受限制的信息比特:830 和 210bits 。(中间有些比特是为报文发送系统的高级应用预留的,比如上行和下行报文的区分。3.可证实的抵抗各种传播过程中可能出现的错误的安全性。4.报文的反转码通常能被解码设备识别。反转的报文要么被当成错误处理(这样一来译码的尝试就会失败)要么被当成一个合法的报文,并能很容易将它反转回来。5.报文的发送和接收都不必从报文的开始或结束为止开始,也就是说可以从报文的中间任意位置。我们有对循环移位的报文有完备的检测程序。6.支持对以后未知报文格式的兼容。报文格式的设计上,考虑到了在传送过程中抵抗随机比特错误、突发错误、比特滑动和比特插

3、入等常见性错误的能力,同时还特别注意了报文转换时的潜在问题和报文长短格式的误判(将长报文误判成短报文或短报文误判成长报文)。需要注意的是,无论哪个安全性防范都只在特定的接收机下可用。上面提到的安全防范是针对附录A 中的接收机的,但是安全防范和接收机都不是目前的已定配套功能规格。假如能够提供这种完备的安全防范,没有列在附录A 中的接收机也是可以使用的。报文的格式说明:报文的具体格式如图1 所示。有两个形式: 长度为Ln=1023(=93*11 )的长报文和长度为Sn=341 (=31*11 )的短报文。报文的bits 用1210,.,nnbbb b表示(其中n=Ln=1023 或者 n=Sn=3

4、41 )。编码方式按照递减的下标(从左到右),这和图1 中的“左”和“右”是一致的。报文发送的顺序是从左到右(但并不需要从最左边的1nb开始)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - 校验比特85bits额外整形比特Esb10bits加扰比特Sb12bits控制比特Cb3bits整形后数据83 11=913 或者21 11=231 bits报文开始部分的整形后数据,是由后面要介绍的用户数据(user data )经“加

5、扰” 、“整形转换”(10-to-11 转换)后得到的。 在长报文中,这一块包括913bits(83 个 11-bit字),也即是1022110.bb。短码报文中, 这一块包括231bits(21 个字),也即是340110.bb。在下面的介绍中,除非特别说明,一个“字”都是包含11bits 。每个字包含10bits 的用户数据。长码报文包含830bits 用户数据,短码报文包含210bits 用户数据。接下来的 3bits 是控制比特 (control bits )109107.bb。控制比特的第一位109b是反转比特( inversion bit ),必须被设为0.另外的两个 bit (1

6、08b和107b)在当前版本中不起作用,是为以后的多种报文格式准备的,目前的报文中,将他们分别设为:108b=0,107b=1。接下来的12bits ,10695.bb是加扰比特( scrambling bits :sb),它们存储的是加扰器对用户数据进行加扰时的初始状态,在后面介绍加扰过程时会用到它。接下来的10bits 是额外整形比特(extra shaping bits (esb)9485.bb,它们被用于对校验比特进行整形(符合“字”要求)。在接收机方,它们是不被识别的(除非需要进行整形系数的检查)。最后的85bits840.bb是校验比特( check bits ),由 75 位就校

7、验 bits 用于错误检测和10bits 用于同步。通常而言,报文是不断重复发送的,也就是说,在整个列车通过的时间段里,不断接收到报文:1012,.,.nnnbb bb如果发送端在列车通过期间转换到一个新的报文,一串至少长度为75 位的连续 0 或 1 必须被插入到新旧报文之间(这里的新旧报文并不一定是在完整报文的结束和开始位置被中断和作为起点)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - 编码过程:1.选择 12 位加扰

8、比特: scrambling bits 。2.对用户数据进行加扰(这一步需要用到加扰比特)。3.将加扰后的数据按照每10bits 一组的方式分成若干组(长码83 组,短码 21组),然后按照转换表,将每个分组转换成11-bit 的“字”。4.检查整形参数 (约束条件,在后面介绍),如果不满足约束条件,返回步骤1。5.选择 10 位额外整形比特(如果所有的102种组合都用完,那么返回步骤1。6.通过计算得到校验比特。7.检查整形参数(校验条件),如果报文通过了,停止。否子返回步骤5。编码的程序流程图可以这样表示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

9、 - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - 选择12比特的加扰位对用户报文进行扰码10-to-11bit转换确定 10bit 的esb进行 BCH 编码Check 通过?结束开始YNYN应答器编码流程1023种组合耗尽?步骤 4 的条件检查从纯逻辑观点来看是不必要的:所有的检查在步骤7 都可以完成。但是出于处理运算的效率原因,它可以尽快地排除掉不合格的候选报文,这样在程序上内循环(步骤5-6-7 )就只需要改变额外整形比特就可以了。所以说在步骤4 的检测中,我们只要检查尽量多的约束条件,而不必要检查所有的

10、条件。这样的编码格式,其背后意义是这样的:每个报文是一个循环码的码字,提供足够的抵抗随机比特错误和突发错误的保护。 10-to-11 转换增加了抵抗比特滑动和比特插入以及排除大量连续0或 1 的情况的能力。检查候选报文(步骤4 和步骤 7)排除了对比特滑动错误抵抗能力弱报文和某段与短报文即为相似的长报文。加扰是为了使给定的用户数据能够产生足够多的可供选择的候选报文,这样才有可能存在一个最后能通过所有检测的报文。这种编码方案具有不断重复的编码尝试,它的优点是使得特定必需的严格安全性防范所需要的报文性质,能够很容易地从候选报文中选择出来,而这一点通过确定性名师资料总结 - - -精品资料欢迎下载

11、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - 的编码过程是很难保证实现的(除非牺牲大量的信息比特)。然而,在理论上来说,是存在不能被变成这样的码的数据的,因为有可能用于整形过程的bits 用完了,仍然没有候选报文通过所有的约束条件检测。不过这种可能性非常低(就随机数据而言,可能性低于10010)。如果这种情况发生的话,稍微改变一下用户数据(例如,减少速度限制 1km/h ) 就能满足数据编码的条件了。同时应该指出的是,在一个可以接收的报文被找出之前,产生的候选报文的

12、数量可能是非常大的。相比之下,接收机这边就相对简单和快速多了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 35 页 - - - - - - - - - 加扰和 10-to-11扩展加扰和 10-to-11 扩展变化时应答器编码过程中两个非常重要的过程,其作用和意义在前面的介绍中已有说明,这里将对它们的具体实现和操作过程进行讲解。任何 n 元二进制数组v=1210,.,nnvvv v,都可以用数组多项式表示:121210( ).nnnnv xvxvxv xv。对于任意两

13、个二进制多项式c(x) 和 d(x) ,( ) ( )c xRd x表示 d(x) 除以 c(x) 所得到的余式,也就是的到的余式r(x) 的次数低于c(x) ,有下面等式成立:d(x)=q(x)c(x)+r(x)。(计算过程中,使用的是模2 加法)加扰过程由下面3 步完成:1.将前 10 位比特替换为所有数据通过一个函数计算后得到数据;2.通过 12 位加扰比特计算得出32-bit整数 S; 3.S作为 32-bit线性反馈移位寄存器电路的初始状态,对输入数据进行加扰。步骤 1(以及步骤3 中使用的公式)的目的是确保改动用户数据中的一个比特都将得到完全不同的加扰后的序列。步骤 1:设长报文

14、m=830 短报文 m=210 ,120,.,mmuuu为用户数据。将用户数据从左到右分成 k 组 10-bit 数据,1110(.)kmmUuu,21120(.)kmmUuu,090(.)Uuu。长码下 k=83 ,短码下 k=21。用这样的序列组重新得到一个新的序列组:1kU,2kU, ,0U。新的序列组中,只有第一个分组不同:11010mod 2kkiiUU(1) 当 i=0k-2 时,iiUU。所有的 10-bit 数组被解释成高位在左的整数。序列1kU,2kU,0U被转换回比特流1mu0u后,除了110,.,mmuu,其他的位都与110,.,mmuu相等。名师资料总结 - - -精品

15、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - - - - - 步骤 2:将 12bit 的加扰比特( sb)10695.bb看成一个整数,最高位在左,这样B=1110696952.2bbb,通过下面公式计算32-bit 整数 S: S= (2801775573*B) mod232 (2) (注意: 2801775573=690693mod232;后者数字是这种随机数字产生的普通选择) 。步骤 3:使用图 2 所示的移位寄存器电路,方框位延迟单元,符号表示异或操作。系数

16、h32, h30, h29, h27, h25和 h0等于 1,其他系数都为0(不连接)。延迟单元的个数是32。S表示成二进制比特流,作为寄存器的初始状态。然后通过m-1 个时钟后,由输入序列1mu0u得到加扰后的比特流:120,.,mmsss(第一个输出1ms在第一个时钟之前得到,也就是用寄存器的初始状态得到)。h31h2h1h0输出输入32 位线性反馈移位寄存器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - 10-to-1

17、1-bit转换加扰过后的数据bits 被分成每组10bits ,下标位递减形式(1210,.,mmmsss为第一组 bits),在长报文中有83 个这样的分组,而短报文是21 个。每个这样的分组在这一步的处理后都会通过一个替换表格变成11-bit 的字。这 1024 个替换值( 11-bit 字)在标准的附录中有详细列出,这里不做赘述。将一下它的使用方法,也就是转换的规则:首先将10-bit 的每个小分组按照最高位在左的原则转换成十进制的整数i(取值为0 到 1023 之间),然后在转换表中找出第i 个字(原表是八进制表示方法,需在转换成 11-bit 二进制比特流)(举例说明就是加入原10

18、位比特转换成10 进制数字后,值等于 0,那么就找到表中第0(下标从 0 开始)个八进制字,将其转换回11-bit 二进制比特流)。本来如果是11-bit 的字的话,所有可能的字是2048 个,表中只有1024 个(对应原 10-bit 的 1024 种可能),也就是说只有表中列出的1024 种值是合法可用的,其他1024 种都是非法的。(为了检测的目的,前512 个可用字的和是267528 ,所有 1024个字的和是512*2047=1048046)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

19、 - - - 第 9 页,共 35 页 - - - - - - - - - 计算校验比特按照编码流程,用户数据在完成加扰、10-to-11-bit转换之后,需要进行约束条件的检测(关于这些条件将在后面介绍),在满足条件的情况下,接下来的工作是计算校验比特。首先是选择额外整形bits (esb)9485.bb,校验比特用多项式形式表示成下面的形式:841858410( )()185.( )nfx g xnb xb xbRbxb xo x(3)多项式 f(x) ,g(x) ,o(x) 的定义和报文的格式有关。在长报文中,f(x)=fL(x) ,g(x)=gL(x),O(x)=gL(x) :1097

20、6432( )1Lfxxxxxxxxx757372716762616057( )Lgxxxxxxxxxx5 65 55 25 14 94 64 5xxxxxxxxx4 13 73 53 43 33 13 0 xxxxxxxxx2 42 11 71 61 51 31 2xxxxxxxxx41xx短报文时,( )( )sf xfx,( )( )Sg xgx,( )( )So xgx:108753( )1Sfxxxxxxx757271706968666564( )Sgxxxxxxxxxx6 36 05 55 44 94 74 6xxxxxxxxx4 34 24 13 93 83 73 6xxxxxx

21、xxx名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 35 页 - - - - - - - - - 3 23 13 02 72 52 21 9xxxxxxxxx1 21 11 0631xxxxxx多项式( )Lgx( )Sgx满足:682341( )( ) (1)0gL xRgS xxx(4)这说明将短报文重复三次得到的“报文”是满足长报文的奇偶校验的。校验位的计算可以用下面的电路来得到:方框为寄存器,反馈系数由编码g(x)*f(x) 来确定,输入为经过加扰和转换之后的

22、bit 数据流,每次的bit 输入,都将对寄存器的值产生影响。寄存器的最终状态就是计算校验位的结果。+D+D+D+D0g1g2g2nkg1nkg+DGate 1nkgGate 2()InputmxMuxOutputGate 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 35 页 - - - - - - - - - 检测候选报文(约束条件)每个应用报文应该满足下面的所有条件,不满足的报文必须被抛弃,通过改变额外整形比特(只影响校验比特)或者改变加扰比特(影响到整个报文

23、)。1.码字表条件( Alphabet Condition)“码字表”是欧标中规定的,用于编码过程更中,将用户数据进行“10-to-11 ”转换的实现。这个转换就是将比特流分成每组10bits ,按照一定规则(码字表)转换成每组11bits 。很显然,由于用户数据是经过这么一个转换过程,所以报文的这个部分是符合“码字表条件”的。但是,这里并不仅仅是要求报文表示用户数据的这一部分满足这个条件,而是将这个条件扩大到整个报文,也就是说,紧跟用户数据后面的控制比特(control bits )、扰码比特(scramble bits )、额外整形比特(Esb bits)、校验位( check bits

24、)都需要满足“码字表条件”。2.同步偏离条件( Off-Synch-Parsing Condition)这个条件的定义是:当我们将报文分成每11bits 一组时,如果不是按照原始的从报文的初始位开始分组序列,而是从中间非“组头”位置开始分成11bits 每组的话,这样的可以看成是原来正常分组向左或向右滑动i 位的情况下,出现连续有效的“字”的个数是有限制的。当滑动的位数是1 时,这个连续有效“字”的个数,不能超过2;当滑动的位数是2-10 位时,连续有效“字”的个数,长报文时不能超过10,短报文时不能超过6。这个条件的意义是,可以使报文具备在发生移位性错误时,能够被发现出来,并判断发生该错误的

25、报文为无效报文。3.下抽样条件( Under-sampling Condition)它的定义是:当原始的报文被因数2、4、8、16 抽样时,抽样得到的比特流,当我们从这个比特流的任意位置i 开始检测它时,最大的连续有效“字”的个数不能超过30。也就是说,经过抽样后的短报文或长度为341 的抽样后长报文的一段,都必须满足这个条件,否则就是无效报文。4.长报文的非周期条件(Aperiodicity Condition for Long Format )这个条件仅仅针对长报文。它的作用是防止在噪声和比特滑动时,长报文的一部分被误判断成一个短报文。它的实现是通过检测相聚341bits的两个“字”长的两

26、段 bit 流的汉明距来实现的:i 是 11 的整数倍,那么名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 35 页 - - - - - - - - - 122.iibb和341 1341 22.iibb之间的汉明距大于等于3。当 k=+1,-1,+2,-2,+3,-3 时,122.iibb和341134122.ikikbb之间的汉明距大于等于2。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

27、理 - - - - - - - 第 13 页,共 35 页 - - - - - - - - - 报文的接收调制解调应答器报文在与列车和线边之间传送是通过天线进行的,这就需要对报文进行D/A 、A/D 转换,中间的调制、解调技术在这里不做说明,可根据情况采用相应的技术即可。报文检错:对接受到的报文,需要对其进奇偶校验,检测得出一段符合要求的无错数据,才能对其进行下一步的操作。这里的奇偶校验的具体操作就是将接收到的数据取一段报文长度, 如果对报文形式未知的话,可以选取长度为1023(即长报文长度) 的数据(前面有介绍过, 3 段重复的短报文也是满足长报文的奇偶校验的),将其看成多项式形式,除以校验

28、多项式g(x) (前面编码过程中有介绍),如果所得余式为0(能被整除),则说明得到的数据中是没有错误的,可以用于下面的解码过程,否则得话,通过移窗的方法,直到找到一段这样的数据。检查控制 bits :接收机必须检查控制比特(cb)。如果反转比特b109等于 1,所有接收到的bite 都应该被反转,并且这个反转必须满上上报给上级处理单元(由上级处理单元决定接收或者舍弃这个报文)。控制比特的另外两个bits:b108和 b107也要被检查(在报文被解码并被认为是安全之后),如果它们不是分别等于0 和 1,接收机应当宣布这组消息是“未知的报文格式”。最后,禁止接收机检查下抽样条件,理由是以后多种格式

29、报文的设计(如实时可编码)可能无法满足这个条件。接收机方必须接到没有错误的收额外bits (超出报文的长度部分):长报文时需要77bits ,接收短报文时需要121bits 。任何安全性接收都必须考虑这样的额外bits。同步算法:在实际的报文发送、接收过程中,发送机采用的是不断循环发送报文信号的方式,在接收机方面,往往不可能从一份报文的第一位开始接收,因此需要找出接收到的报文的初始位(即同步)。欧标中,根据其报文生成的特点,定义了同步多项式:f(x) 。f(x) 的表示方式对于不同格式的报文是不同的。对于长报文:f(x) ( )Lfx;对于短报文: f(x) ( )Sfx; 名师资料总结 -

30、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 35 页 - - - - - - - - - ( )Lfx和( )Sfx分别为:1 0976432()1Lfxxxxxxxxx1 08753()1sfxxxxxxx算法具体描述,如下图所示:其中nb发送的序列,nV是接收序列,那么二者的关系用多项式可以表示为:1( )( )nsxv xRxb x,其中 R 表示求余运算, n 对于长报文和短报文分别是1023 和 341;s 表示接收序列的第一个比特相对与报文的头已经滑动了s 个比特;因此要

31、使报文同步,必须求出 s(在 0 到 n 范围内)的值;校正子( )fsx可用下式表示:( )( ) ( )(1)ffxsxRv x( )( )( )(2)sffxsxRxo x其中对于长报文和短报文,( )fx分别为( )lf x和( )sfx,( )( )o xg x;由此可见,决定s 的值是校正子( )fsx的值;对于没有错误的报文,上面(2)式不可能等于 0;但是对于(1)式,若( )v x的长度为 n,周期小于n (但可以整除n),那么(1)式就等于 0,所以,当输入为短报文,而接收端是长报文形式接收机时,(1)式就会等于0;这样一来,就可以避免在报文切换时发生的错。由于( )fx不

32、是1x的倍数,也就是说( )f x不能被1x整除,那么则有:1221( )( ) ( )1 ( )nnfxfxRv xxxxxRv x从上式可知,当报文中的所有比特都取反后,该同步算法仍然适用。反 10-to-11-bits转换这个过程是接收端进行提取原始用户数据的基本过程。通过前面的介绍可以知道,这一步之前所接收到的同步后的数据并不是最初始的用户数据的形式,而是为了使报文在传送过程中具备良好的抗干扰能力而转换后的数据。因此,要得到原来的数据,就需要将前面编码过程中所进行过的转换采取逆转换处理。反 10-to-11-bits转换是这个处理过程的第一步,它的实现方法与编码过程中的10-to-11

33、-bits转换基本上是相反的:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 35 页 - - - - - - - - - 将接收到的数据长报文的前913bits (短报文的前231bits )按照每组11bits 分组分成 83(21)组。然后将每组的11 位比特数据看成是最高位在左的十进制数字。找到转换表(转换成10 进制)中对应的码字,读取出这个码字的坐标(协议中坐标从0 开始,而 matlab 中坐标只能从1 开始,故这个值需要减1),将坐标值转换成最高位在左的

34、10 位的比特流,这样就完成一个小组的反转换了,其它的分组也采用同样的方法,实现全部的转换。解扰在通信上,解扰的过程和加扰是采用同样的电路实现的。在实现的过程上,大体存在下面的差异:1)流程上,解扰要从加扰的第2 步开始,即:将12bit 的加扰比特( sb)10695.bb看成一个整数,最高位在左,这样B=1110696952.2bbb,通过下面公式计算32-bit 整数 S:S= (2801775573*B) mod232 2)解扰的第 2 步与加扰的第3 步相同,采用同样的扰码电路对数据进行处理。在这一步上,二者的算法是完全一样的,这里不做赘述。3)解扰的第 3 步与加扰的第一步大致相同

35、,不过略有差别。这一步在实际上就是要还原数据的第一个10bit 分组。在加扰中,这个分组是由所有分组按十进制取和然后再对1024 取模而得到的。所以在解扰过程中,为了还原原始数据,首先要将上一步得到的数据取出除第一个分组之外的所有分组,看成十进制数后取和, 对这个和进行mod(和,1024 ),判断结果与输入数据第一个分组比较,最后得到真正的第一个分组十进制数,进而得到正确的原始数据。它在数学上的推导可用下面的关系得到:设 z 为加扰后的第一个分组,x 为原始第一个分组,y 为后面所有分组的和,那么有:Z=mod(x+y,1024 ),我们知道 x 为 10bits 数据,其十进制数小于102

36、4,那么:Z=modmod(x,1024)mod(y,1024),1024=modxmod(y,1024),1024 如果 xmod(y,1024)1024,z=xmod(y,1024) ,也说明 mod(y,1024)=1024,z+1024=(x mod(y,1024) ,则 x=1024 zmod(y,1024) 。这样便可以得出原始的第一个10bits 分组,将其转换成比特流, 就可以还原原始数据了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 35 页 -

37、- - - - - - - - 接收处理的具体流程:1.取一个长度为nr 的窗,接收连续的比特流。 (长报文 r=77 ,短报文 r=121 。如果窗已经移动超过7500bits ,r=n );2.判断奇偶校验是否满足,如果不满足,移窗,回到步骤1;3.r 位额外 bits(窗的右边 r 位)是否和开始的r 位(窗的左边)一致?如果不一致,移窗,回到步骤1;4.利用同步算法找到报文的开始位置(bn-1),如果( ) ( )fxRv x是不可能的值, 移窗,返回步骤 1;5.对报文进行字母表条件检测,如果存在非法字,移窗,返回步骤1;6.到这一步,可以判定报文是安全的。7.反转比特 b109=1

38、?如果是,反转报文的所有bits 。8.检查控制比特的另外两个bits :b108和 b107,如果它们不是分别等于0 和 1,接收机应当宣布这组消息是“unknown telegram format”。9.进行反 10-to-11-bit转换;10. 解扰;11. 输出用户数据bits 和反转 bit (b109)。整个数据处理过程可以用下面的流程图来表示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 35 页 - - - - - - - - - 取窗截取报文能被

39、g(x) 整除?NY前后 r 位一致?N同步算法计算Sf(x) 值YSf(x) 值有效?N字表条件检查Y所有字都合法?N报文安全Yb109不为 1?Y反转所有比特N另两个控制位分别为 0和 1?另两个控制位分别为 0和1?Unknown telegram formatN逆10-to-11-bit转换解扰输出用户信息和反转位 b109逆10-to-11-bit转换解扰输出用户信息和反转位 b109NY应答器接收端报文处理流程图Y名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,

40、共 35 页 - - - - - - - - - 应答器编解码算法的实现和验证根据协议,对整个应答器报文的生成和接收,利用Matlab 工具进行了一系列的仿真和验证工作。 工作的内容主要包括两个方面:报文编码算法部分和接收端对报文的处理过程。下面将对这两个部分详细说明。一、 应答器报文的生成1. 编码算法的实现经过上面的介绍,我们对协议中应答器编码方法应该会有这样的印象:整个编码过程是由加扰、10-to-11-bit转换、计算bch 校验位三个主要的步骤实现的,同时在整个流程中,通过选择加扰位和额外整形比特位,控制两次约束条件的检查,最终得到具有良好抗噪声干扰能力的可供使用的报文。1) 加扰的

41、实现加扰的实现算法在前面的介绍中已经介绍过了,对其过程还不了解的读者可以查看前面的章节,这里不做赘述。在Matlab 中可以用下面的语句实现:% 分组 ,将每组都看成是一个整数。for i=1:block u(i,:)=msg0(1+(i-1)*10):(10+(i-1)*10); u_int(i)=bi2de(u(i,:), left-msb); end % 计算新的第一组的表示数:u_1=sum(u_int); u_1=mod(u_1,1024); U=zeros(block,10); U(1,:)=de2bi(u_1,10,left-msb); % 其余的组不变:这样得到新序列U for

42、 i=2:block U(i,:)=u(i,:); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 35 页 - - - - - - - - - end %step2: 将加扰 bits 看成是一个整数:B=bi2de(scramble_bits, left-msb); S=mod(2801775573*B,232); %计算出 S后,再将S转换成 bit 流:s=de2bi(S,32,left-msb); %step3: 扰乱电路进行加扰hx=1 1 1 1 0 1

43、0 1 0 0 . 0 0 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 0 0 . 0 0 1; redundance=s; for i=1:block for j=1:10 feed_back=xor(U(i,j),redundance(1); y(i,j)=feed_back; for k=1:31 redundance(k)=xor(redundance(k+1),and(feed_back,hx(k+1); end redundance(32)=feed_back; end end % 扰码完成,将block 组数据重新组成用户数据,得到msg_scramble

44、d for i=1:block for j=1:10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 35 页 - - - - - - - - - msg_scrambled(j+10*(i-1)=y(i,j); end end 2) 10-to-11-bits转换的实现协议提供了这个转换所需的转换表,整个过程就是一个查找、替换的流程,具体的规则在前面的章节中也已经介绍过了,有需要的读者可以查阅。转换的对象是前面加扰后的数据,协议中提供的转换表是八进制的,考虑到实际转换

45、过程中用到的是10 进制表示的,因此需要将表转先转换成十进制的形式,其它过程可以由下面代码实现:% 读入分组的bits,并转换成10 进制数 ,在表中找到对应码后,变回bit 流for i=1:block bits_block=double(y(i,:); % 读入第 i 块数据index=bi2de(bits_block,left-msb); % 变成 10 进制的数,作为坐标y_change8(i)=list(index+1); %matlab里,坐标从1 开始,所以要加1,得到表中的八进制码y_change10(i)= oct2dec(y_change8(i); % 八进制码变成10 进

46、制的y_change(i,:)=de2bi(y_change10(i),11,left-msb); %10 进制再变回bit 流。end %10-to-11转换完成,然后再将分组的bit 变回用户数据流:for i=1:block for j=1:11 msg_scrambled_changed(j+11*(i-1)=y_change(i,j); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 35 页 - - - - - - - - - end end 这两个过程的实

47、现在实际应用中基本是固定的,很少需要进行改动调整,故在实际编写算法的过程里,将这两个过程固定写成一个函数:creat_msg,用于将原始的用户数据msg0通过这两步转换,得到用于后面编码的信息数据msg_scrambled_changed 。3)约束条件的实现进行约束条件的检查,需要进行大量的运算,为了提高编码程序的执行效率,在进行加扰位的选择上, 首先进行了一次手工的筛选:根据 control_bits固定为 001, 与 scramble_bits的前八位必须组成有效11bits 的字,因此,scramble_bits 的前八位可由查表得到,只有 157种可能,后四位用0-15 数字转换成

48、4 位比特流来确定,这样可以得到所有实际可用的scramble_bits 为 157*16=2512种可能值。bin_list=zeros(1024,11); pre_scramble_bits=zeros(157,8); for i=1:1024 bin_list(i,:)=de2bi(num_dec_list(i),11,left-msb); end Scramble_bits=zeros(157*16,12); pre_scramble_bits(1:157,:)=bin_list(105:261,4:11); for k=1:157 for j=1:16 back_scramble_b

49、its=de2bi(j-1,4,left-msb); Scramble_bits(j+(k-1)*16),:)=pre_scramble_bits(k,:), back_scramble_bits; end end 根据协议,将约束检查中的四项分别编写成matlab 函数,供今后在报文生成的过程中调用,它们分别是Alphabet_test (用于检验字母表条件)、Aperiodicity (用于检验非周期条件)、 off_synch_parsing (用于检验同步偏离条件)、Under_sampling (用于检验下抽样条件) 。 同时为了使编码过程更加易于理解,将加扰、 10-11 转换也用

50、编写的函数creat_msg名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 35 页 - - - - - - - - - 来表示,计算bch 码校验位的过程用函数BCH 来实现。整个报文的生成过程将可以用下面的程序段表示:kkk=1; for kk=1:2 for i=kkk:2512 %1-212-1. scramble_bits=de2bi(i,12,left-msb); % 用 i 生成 12 位的加扰bits ,并逐次增大。scramble_bits= Scra

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁