为了进行ADS-B报文防欺骗技术研究,首先需要深入了解报文的编译码方法:译码的实现可以深度挖掘报文中的特征参数,进行防欺骗研究;编码的实现可以为后续仿真实验产生符合要求的报文打下基础。
空中位置消息ME字段的编译算法与仿真
ADS-B报文格式
各字段含义
bits | No. bits | 缩写 | 含义 |
---|---|---|---|
1-5 | 5 | DF | 下行链路格式 |
5-8 | 3 | CA | 应答器能力 |
9-32 | 24 | ICAO | ICAO 飞机地址 |
33-88 | 56 | ME | 消息等 |
89-112 | 24 | PI | 奇偶校验/询问器标识 |
其中空中位置类 的ME字段中各字段含义
bits | 含义 | bits | 含义 |
---|---|---|---|
1-5 | Type | 21 | 时间指示 |
6-7 | 监视状态 | 22 | CPR编码格式 |
8 | 是否单天线 | 23-39 | 纬度 |
9-20 | 高度 | 40-56 | 经度 |
报文生成的算法
对于空中位置信息的ME字段,需要编码的信息主要包括了经纬度信息、位置导航不确定类型(NUCp)信息以及高度信息。
- 经纬度信息编码
其中,对于采用了CPR格式编码的位置信息,具体算法流程如下:
1)确定纬度Zone 的尺寸 D l a t i Dlat_i Dlati
D l a t i = 36 0 。 4 N Z − i Dlat_i = \frac{360^。}{4 NZ - i} Dlati=4NZ−i360。
2)将需要发送的纬度值转换为CPR格式的纬度值 Y Z i YZ_i YZi
Y Z i = f l o o r [ 2 N b M O D ( l a t , D l a t i ) D l a t i + 1 2 ] YZ_i =floor[2^{Nb}\frac{MOD(lat,Dlat_i)}{Dlat_i} + \frac{1}{2}] YZi=floor[2NbDlatiMOD(lat,Dlati)+21]
3)使用CPR格式纬度值 Y Z i YZ_i YZi和纬度Zone尺寸 D l a t i Dlat_i Dlati计算得到纬度还原值 R l a t i Rlat_i Rlati
R l a t i = D l a t i × ( Y Z i 2 N b + f l o o r ( l a t D l a t i ) ) Rlat_i =Dlat_i \times (\frac{YZ_i}{2^{Nb}}+floor(\frac{lat}{Dlat_i})) Rlati=Dlati×(2NbYZi+floor(Dlatilat))
4)通过纬度还原值 R l a t i Rlat_i