Как работает функция ADS-B compact position report NL ()?

Вопросы / ответыКак работает функция ADS-B compact position report NL ()?
0 +1 -1
flyman Админ. спросил 5 лет назад

Я пытаюсь декодировать сообщения ADS-B для школьного проекта, и я не могу воспроизвести результаты функции NL (), как описано в этом документе. Я видел ту же формулу в нескольких других документах. Также в этом документе есть обратная сторона этой функции-вводится NL, а результатом является широта «граница». Я тоже не могу решить эту проблему.

Я пробовал радианы и степени для триггерных функций и несколько различных инструментов расчета, и мой результат никогда не близок к правильному.

«Известные» хорошие входные данные и результат от этого документа. Я также видел эти входы и результаты в другом месте, но никаких подробностей о самом уравнении.

Резюме» известного » хорошего набора данных:

r L A T = 10.2157745361328

rLat=10.2157745361328

NZ=60

NZ=60

NL=59

NL=59

Уравнение:

N L = i n t 2 π [ a R C c O S ( 1 1 C O S (π 2 N Z) c O s 2 ( 2 π 180 L A t))] 1

NL=int(2π[arccos(11cos(π2NZ)cos2(2π180lat))]1)

Может ли кто-нибудь помочь мне понять этот расчет?

flyman Админ. ответил 5 лет назад

Я уверен, что latex поддерживается здесь, по крайней мере, я видел вопросы и ответы с этим форматом раньше…

flyman Админ. ответил 5 лет назад

@JayCarr; ну почти, у нас есть MathJax, он поддерживает много уравнения LaTeX-вещи, так что просто вставьте его, это может очень хорошо сделать просто отлично.

flyman Админ. ответил 5 лет назад

Привет Кевин добро пожаловать Aviation.SE… Я постараюсь вам помочь, но из вашего описания мало что можно начать. Что не работает, какой язык вы используете? Каково ваше прошлое, для чего эта работа в школе?

flyman Админ. ответил 5 лет назад

Я добавил уравнение-вы можете перепроверить мою работу, чтобы убедиться, что она верна.

flyman Админ. ответил 5 лет назад

NZ должно быть 15, см. Этот код code.google.com/p/adsb-pgr/source/browse/trunk/…

1 ответ
0 +1 -1
flyman Админ. ответил 5 лет назад

Компактная отчетность положения (CPR) путь уменьшения числа битов необходима для того чтобы передать положение пока поддерживающ высокое разрешение положения (~5,1 метра для воздушнодесантного зашифрования). Обычное кодирование потребовало бы 45 битов, но CPR использует 35 битов, таким образом экономя 10 битов. Для этого мир разделен на несколько зон, как по широте, так и по долготе, и положение внутри зоны закодировано. Поскольку передача номеров зон будет стоить столько битов, сколько было бы сохранено, используется умный трюк. Используются два типа кодирования, каждый с разным количеством зон. По разнице координат зон между двумя типами кодирования можно определить, в какой зоне находится летательный аппарат. Поэтому нужно получить четное и нечетное закодированное сообщение в течение 10 секунд друг от друга. После успешного декодирования начальной позиции каждое последующее сообщение о позиции выдает обновленную позицию.

При декодировании CPR вы сначала определяете широту самолета на основе пары нечетных и четных сообщений о местоположении, полученных в течение 10 секунд друг от друга.

Широта всегда кодируется в одном и том же количестве зон между экватором и полюсами (15 для четного кодирования, 14,75 для нечетного кодирования). Из-за округлости Земли количество зон, используемых для кодирования долготы, зависит от широты. Долгота даже кодирование использует 59 зон на экваторе и только 1 на полюсах. Нечетное кодирование использует всегда на 1 зону меньше, за исключением полюса, где 1 зона используется как в четном кодировании. Количество зон долготы, используемых для четного кодирования NL()

NL()

функция.

Широты перехода, т. е. где число зон для изменения кодирования долготы, может быть вычислено обратным NL()

NL()

функция. Эту функцию можно использовать для создания справочной таблицы переходных широт, которая более эффективна, чем исходная NL()

NL()

функция.

Не зная ничего о вашей реализации, трудно помочь дальше, формула правильно изображена в вашем вопросе. Обратите внимание, что входная широта задается в градусах, но предполагается, что тригонометрическая функция работает на радианах, следовательно π180

π180

факторный.

Edit: при дальнейшей проверке я заметил ошибку в Формуле: она должна быть :

N L = i n t 2 π [ a R C c O S ( 1 1 C O S (π 2 N Z) c O s 2 ( π 180 L A t))] 1

NL=int(2π[arccos(11cos(π2NZ)cos2(π180lat))]1)

(обратите внимание, что преобразование из градусов в радианы исправлено)

Для тех, кто действительно хочет понять кодирование и декодирование CPR в деталях, вам нужно будет получить копию документа RTCA DO-260B или документа Eurocae ED-102A (к сожалению, они дорогие, я думаю о $700) и прочитайте приложение A. 1.7 и приложение T.

flyman Админ. ответил 5 лет назад

откуда вы получили эту информацию: широта всегда кодируется в одном и том же количестве зон между экватором и полюсами (15 для четного кодирования, 14.5 для нечетного кодирования). Особенно 14.5 для нечетного кодирования вместо 15? Не удалось найти его в интернете….

flyman Админ. ответил 5 лет назад

Привет Флориан, добро пожаловать aviation.stackexchange.com… Я получил номера от ED-102A или DO-260B. На самом деле кодировка широты составляет 360 градусов от экватора, над Северным полюсом, затем задняя сторона Земли и от южного полюса до экватора. Только 0-90 градусов и 270-360 градусов используются. Есть либо 60 или 59 зон в полном круге, так что 15 или 14,75 от экватора до полюса. Я знаю, что понимаю, что 14.5 я написал это ошибка, это должно быть 14.75. Спасибо за уведомление!