Во время полётов Apollo к Луне одной из важнейших задач NASA было определение положения космического корабля. Для этого инженеры разработали цифровую систему измерения дальности, которая позволяла определять расстояние до корабля, находившегося в сотнях тысяч километров от Земли, с точностью около одного метра.

Основная идея проста: отправить кораблю радиосигнал и измерить, сколько времени потребуется сигналу, чтобы вернуться обратно. Поскольку он распространяется со скоростью света, по задержке можно вычислить расстояние. 

Главная проблема заключалась в том, что из-за огромной дальности отражённый импульс, как в обычном радаре, оказался бы слишком слабым.(примеч.2) Система решала эту проблему двумя способами. Во-первых, установленный на корабле сложный транспондер возвращал усиленный сигнал. Во-вторых, вместо одиночного импульса система передавала длинную псевдослучайную битовую последовательность. Корреляция этой последовательности на интервале в несколько секунд позволяла выделить слабый сигнал из шума.(примеч.1)

В этой статье я разберу устройство этой неожиданно сложной системы измерения дальности. Генерировать псевдослучайные последовательности и выполнять их корреляцию с помощью транзисторной схемотехники 1960-х годов было непросто. Дальномерные коды требовалось интегрировать с объединённой системой S-диапазона Apollo (Unified S-Band), которая работала с высокочастотными микроволновыми сигналами. 

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

The Apollo Service Module's transponder with the lid removed, showing the circuitry inside. The transponder returned the ranging signal to Earth, multiplying the frequency by exactly 240/221.
Транспондер служебного модуля Apollo со снятой крышкой: внутри видна электронная схема. Транспондер возвращал дальномерный сигнал на Землю, умножая его частоту строго в отношении 240/221.

Система измерения дальности

Система измеряла время, за которое сигнал доходил до космического корабля и возвращался обратно.(примеч.3) Как показано ниже, она передавала кораблю псевдослучайную битовую последовательность. Транспондер возвращал этот сигнал наземному приёмнику. Затем принятый сигнал сопоставлялся с исходным методом корреляции, что позволяло определить временной сдвиг, а значит, и дальность. Одновременно с этим доплеровские измерения, которые я опишу ниже, позволяли определить скорость корабля.(примеч.4)

Block diagram of the Apollo ranging subsystem. Redrawn from A study of the JPL Mark I ranging subsystem
Блок-схема подсистемы измерения дальности Apollo. Перерисовано по материалам исследования подсистемы измерения дальности JPL Mark I.

Ключевым этапом была корреляция переданного и принятого сигналов, по которой определялась временная задержка. Когда сигналы совмещались с правильной задержкой, их биты совпадали. Поскольку последовательность была псевдослучайной, при неверном смещении биты не совпадали, за исключением случайных совпадений.(примеч.5)

Таким образом, перебирая разные значения задержки и подсчитывая число совпавших битов, то есть вычисляя корреляцию, можно было найти правильную задержку. Сигналы удавалось сопоставлять на длинных временных интервалах, вплоть до нескольких секунд, поэтому дальность можно было определить даже тогда, когда сигнал был чрезвычайно слабым и терялся в шуме.

Чтобы однозначно определять дальность, кодовая последовательность должна была быть очень длинной. В системе использовалась псевдослучайная последовательность длиной 5 456 682 бита. Поскольку код передавался с частотой 1 МГц, последовательность повторялась каждые 5,46 секунды. За это время радиосигнал успевает преодолеть 800 000 километров до цели и обратно. Среднее расстояние до Луны составляет около 384 000 километров, поэтому система могла однозначно измерять дальность, более чем вдвое превышающую расстояние до Луны.

При частоте 1 МГц один бит сигнала соответствует 150 метрам дальности. Более высокую точность система обеспечивала за счёт сравнения фаз сигналов.

В общих чертах система сдвигала переданную и принятую последовательности до тех пор, пока они не совпадали. Величина сдвига давала задержку, а значит, и расстояние. Однако перебирать около пяти миллионов вариантов смещения, особенно на технике 1960-х годов, было непрактично. Поэтому последовательность составили из нескольких коротких кодов длиной от 2 до 127 бит. Эти «подкоды» были достаточно короткими, чтобы их можно было сопоставлять полным перебором.

Общую задержку затем вычисляли по задержкам отдельных подкодов. В системе использовались четыре подкода: A длиной 31 бит, B – 63 бита, C – 127 бит и X – 11 бит, а также двухуровневый тактовый сигнал CL. Поскольку эти числа взаимно простые, длина объединённой последовательности равна их произведению: 5 456 682 бита. Главное здесь в том, что короткие подкоды позволяли аппаратно генерировать и сопоставлять очень длинный код.

A 30-foot antenna. From Apollo Unified S-Band Technical Conference.
30-футовая антенна. Из материалов конференции Apollo Unified S-Band Technical Conference.

Я сделал интерактивную страницу, которая показывает, как формировались последовательности подкодов. Подкоды длиной 31, 63 и 127 бит генерировались с помощью хорошо известной схемы – регистра сдвига с линейной обратной связью (LFSR). Регистр сдвига длиной N хранит набор битов. На каждом шаге новый бит вычисляется операцией XOR над двумя битами регистра. Новый бит записывается в регистр, а один из старых вытесняется наружу и становится очередным битом кода. Такая схема позволяет получить псевдослучайную последовательность длиной 2^N − 1 с хорошими статистическими свойствами. Для формирования 11-битного подкода X использовалась последовательность Лежандра.(примеч.7)

The C sub-code is generated from a 7-bit delay line (black). The last two bits are fed into an XOR gate to produce a new bit (red). Part of the pseudorandom sequence is shown below the gate.
Подкод C генерируется с помощью 7-битной линии задержки, показанной чёрным. Два последних бита подаются на логический элемент XOR, который формирует новый бит, показанный красным. Под элементом показана часть псевдослучайной последовательности.

Объединить подкоды в итоговую последовательность не так просто, как может показаться: каждый подкод должен оставаться в ней отдельно распознаваемым. Подкоды A, B и C объединялись мажоритарной функцией maj(A,B,C), которая возвращает наиболее часто встречающееся значение из трёх входных битов.6 Полная формула битовой последовательности выглядела так: (X·maj(A,B,C))⊕CL.

Устройство системы измерения дальности

Процесс измерения дальности выполняла показанная ниже подсистема измерения дальности Mark I. Хотя её называли «специализированной двоичной цифровой вычислительной машиной», компьютером в современном смысле она не была. Скорее, это был конечный автомат, последовательно выполнявший нужные операции.

Сначала наземная станция передавала кодовую последовательность космическому кораблю и синхронизировалась с принятым сигналом. Затем система перебирала разные смещения подкода X и находила вариант с максимальной корреляцией. После этого процесс повторялся для подкодов A, B и C. Цифровая схема выполняла довольно хитрые вычисления по модулю,(примеч.8) чтобы получить дальность из смещений подкодов. Наконец, доплеровская подсистема определяла скорость корабля и постоянно корректировала дальность по мере его движения. Я сделал интерактивную страницу, демонстрирующую эти этапы.

The Mark I ranging subsystem. From Apollo Unified S-Band System.
Подсистема измерения дальности Mark I. Из документа Apollo Unified S-Band System.

Система была собрана из модулей T-Pac – плат на транзисторах и других дискретных компонентах, из которых строились простые цифровые узлы вроде логических элементов и триггеров.(примеч.9) Компания Computer Control Company представила модули T-Pac в 1958 году. Они предназначались для быстрой и удобной сборки цифровых систем, работавших на частоте 1 МГц.

По 32 платы T-Pac устанавливались в стоечное шасси T-BLOC. Десять таких шасси размещались в двух стойках. Платы соединялись проводами и коническими штырьками, которые вставлялись в большую коммутационную матрицу.

Одним из таких модулей был показанный ниже T-Pac LE-10, или «логический элемент», содержавший четыре элемента И. В 1961 году он стоил 98 долларов, что примерно соответствует 700 долларам в современных ценах. Это хорошо показывает, насколько дорогой тогда была цифровая логика. В системе измерения дальности использовалось около 300 цифровых модулей, поэтому одна только цифровая часть стоила бы в пересчёте на современные деньги сотни тысяч долларов. И такой комплект требовался на каждой наземной станции.

A T-Pac module. This is the LE-10 "logic element".
Модуль T-Pac LE-10, или «логический элемент».

Задачи, которые сегодня кажутся элементарными, на технике того времени решались с большим трудом. Например, дальность хранилась как 31-битное двоичное значение. Но вместо регистра использовалась магнитострикционная линия задержки: данные представлялись торсионными импульсами, распространявшимися по длинной никелевой проволоке. Чтобы прибавить число к текущей дальности, схема использовала одноразрядный последовательный сумматор. Он складывал биты по одному, когда те выходили из никелевой проволоки, а затем возвращал результат обратно в линию задержки.

Особенно интересен детектор уровня корреляции, который проверял соответствие между выбранным подкодом и принятым сигналом. Изначально корреляция представляла собой аналоговое напряжение, которое устройство под названием Voldicon преобразовывало в цифровое значение. Затем корреляция накапливалась во времени: двоичные значения суммировались ещё одной 31-битной схемой хранения и сложения. 

Количество суммируемых отсчётов можно было задавать в диапазоне от 1 до 2^19 с помощью барабанных переключателей Digiswitch. Накопление корреляции на длинном интервале позволяло обнаружить чрезвычайно слабый сигнал даже на фоне шума. Система отслеживала смещение с наибольшей корреляцией и сохраняла его значение в ещё одной линии задержки. Полный цикл измерения занимал от 1,6 секунды при сильном сигнале до 30 секунд на расстоянии Луны.

Определение скорости по доплеровскому сдвигу

Система могла также измерять скорость космического корабля по доплеровскому сдвигу возвращённого сигнала. Если корабль удалялся от Земли, волны растягивались и частота снижалась. Если же он приближался к Земле, частота возрастала.(примеч.10) Измерив этот сдвиг, можно было с высокой точностью определить скорость корабля.(примеч.12)

A moving source causes the wavelength to be decreased if the source is moving closer or increased if the source is moving away. Diagram by Tkarcher.
Если движущийся источник приближается к наблюдателю, длина волны уменьшается; если удаляется – увеличивается. Схема Tkarcher.

Необходимость доплеровских измерений повлияла на конструкцию радиосистемы сразу в двух отношениях. Во-первых, корабль не мог просто принять и повторно передать сигнал: в этом случае доплеровский сдвиг, возникший на пути сигнала от Земли к кораблю, потерялся бы. Поэтому использовался сложный транспондер с умножением частоты: частота сигнала линии борт – Земля была строго в 240/221 раза выше частоты принятого сигнала линии Земля – борт.(примеч.11)

Во-вторых, для большей части связи на корабле применялась фазовая модуляция (PM), а не более распространённая частотная модуляция (FM). Поскольку частотная модуляция сама изменяет частоту сигнала, она мешала бы доплеровским измерениям. 

Радиосистема Apollo

На кораблях Apollo использовалась сложная объединённая система S-диапазона (Unified S-Band System), которая обеспечивала передачу голоса, телеметрии, научных данных, телевизионного сигнала и данных измерения дальности. Все эти сигналы объединялись и передавались на одной несущей частоте в S-диапазоне.

На схемах ниже показано распределение спектра сигнала линии Земля – борт, передававшегося на частоте 2,10640625 ГГц, и сигнала линии борт – Земля на частоте 2,2875 ГГц. Эти частоты находятся в точном отношении 240/221, и это, как мы увидим, имеет важное значение.

Обратите внимание: голос и данные передаются на сравнительно узких поднесущих, а псевдослучайный дальномерный сигнал имеет меньший уровень, но занимает гораздо более широкую полосу. Из-за своей случайной структуры он очень похож на белый шум. Широкий спектр позволяет обнаруживать дальномерный сигнал даже при низком уровне и сильном шуме. Хотя его спектр перекрывается с поднесущими голоса и данных, существенных взаимных помех не возникает, поскольку энергия дальномерного сигнала распределена по широкой полосе.

The spectrum used by the Apollo radio system.
Спектр, использовавшийся радиосистемой Apollo.

Транспондер

Бортовой транспондер S-диапазона играл ключевую роль как в измерении дальности, так и в связи в целом. Снаружи транспондер, изготовленный компанией Motorola, выглядел как обычный серо-синий ящик массой около 32 фунтов. Разъёмы справа соединяли его с остальными компонентами радиосистемы. Внутри корпус был плотно заполнен радиоэлектронными схемами: фазовыми модуляторами для передачи голоса и данных, детектором принимаемых по линии Земля – борт данных и FM-передатчиком телевизионного сигнала.(примеч.14)

The S-band transponder.
Транспондер S-диапазона.

На блок-схеме ниже показана роль транспондера, выделенного красным, в системе связи. После того как корабль выходил за пределы дальности УКВ-связи, составлявшей около 1500 миль, вся связь переходила в S-диапазон и проходила через транспондер. Его выход подключался к усилителю на лампе бегущей волны, а затем к антеннам космического корабля.

Diagram of the communications system used in Apollo. The transponder is highlighted in red. Click this (or any image) for a larger version. From "Apollo Logistics Training", courtesy of Spaceaholic.
Схема системы связи Apollo. Транспондер выделен красным. Нажмите на эту или любую другую иллюстрацию, чтобы открыть увеличенную версию. Из документа Apollo Logistics Training, предоставленного Spaceaholic

На фотографии ниже крупным планом показана электронная схема внутри транспондера. Он состоял из нескольких модулей, соединённых тонкими коаксиальными кабелями. На снимке видны умножитель частоты, смеситель, усилитель промежуточной частоты и широкополосный детектор. Большинство модулей дублировалось на противоположной стороне транспондера для резервирования: его отказ поставил бы под угрозу всю миссию.

Closeup of the transponder.
Электронная схема транспондера крупным планом.

Самой сложной частью транспондера был тракт приёма дальномерного сигнала с Земли и его обратной передачи. Чтобы сигналы не мешали друг другу, транспондер возвращал данные на частоте, отличавшейся от частоты приёма. При этом для сохранения информации о доплеровском сдвиге частота передаваемого сигнала должна была изменяться вслед за частотой принятого, поэтому задать её фиксированным значением было нельзя. Вместо этого сложная система фазовой автоподстройки частоты умножала принятую частоту строго в отношении 240/221 и формировала частоту обратной передачи.

Система фазовой автоподстройки частоты (ФАПЧ, PLL) – широко распространённая схема, позволяющая синхронизировать генератор с другим источником частоты даже при наличии шума. В ней используется генератор, управляемый напряжением (ГУН, VCO), выходной сигнал которого сравнивается со входным. Если выходной сигнал отстаёт, генератор ускоряется. Если отстаёт входной сигнал, генератор замедляется. В результате генератор входит в синхронизм со входным сигналом и начинает отслеживать его частоту.

В транспондере применялась более сложная схема: выходная частота следовала за входной с заданным коэффициентом. В частности, она составляла 240/221 от частоты сигнала линии Земля – борт.(примеч.15)

Транспондер был одним из множества электронных блоков, плотно размещённых внутри командного модуля. На схеме ниже показано его положение в стойках с оборудованием.

This diagram of the Apollo Command Module shows the position of the S-band transponder, along with the traveling-wave-tube amplifier and the Apollo Guidance Computer.
На этой схеме командного модуля Apollo показано расположение транспондера S-диапазона, усилителя на лампе бегущей волны и управляющего компьютера Apollo.

Панель управления командного модуля, показанная ниже, была чрезвычайно сложной и содержала множество органов управления и переключателей. Выделенные переключатели астронавты использовали для управления транспондером, а также для включения и отключения системы измерения дальности.

Astronauts controlled ranging through a switch on the console. Diagram from Command/Service Module Systems Handbook p208.
Астронавты управляли системой измерения дальности с помощью переключателя на панели. Схема из Command/Service Module Systems Handbook, стр. 208.

Наземные станции

Для связи с Apollo требовались мощные наземные станции с большими антеннами.(примеч.17) Чтобы поддерживать непрерывную связь по мере вращения Земли, станции разместили в разных частях света. Три основные станции, входившие в Сеть пилотируемых космических полётов (MSFN), были оснащены параболическими антеннами диаметром 85 футов, или 26 метров. Они находились в Голдстоуне, штат Калифорния, в Канберре, Австралия, и в Мадриде, Испания. На других станциях использовались антенны диаметром 30 футов. Пробелы в зоне покрытия закрывали специальные корабли с 30-футовыми антеннами и самолёты измерительного комплекса Apollo (ARIA), созданные на базе транспортных C-135.

NASA's 26-meter antenna at Honeysuckle Creek, Australia. Photo from NASA.
26-метровая антенна NASA в Ханисакл-Крик, Австралия. Фото NASA.

Блок-схема ниже даёт представление о сложности наземной станции. Помимо аппаратуры обработки сигналов, она включала компьютеры(примеч.16) и сетевое оборудование для связи с Центром управления полётами и другими станциями. Для нашей темы особенно важен блок Ranging Circuitry – аппаратура измерения дальности. Но стоит обратить внимание и на приёмники углового канала.

Антенны с сервоприводом автоматически сопровождали сигнал космического корабля. Так определялось его угловое положение, которое вместе с измеренной дальностью позволяло вычислить трёхмерные координаты корабля в пространстве. 

Block diagram of a Unified S-Band ground station. From Apollo Unified S-Band System.
Блок-схема наземной станции объединённой системы S-диапазона. Из документа Apollo Unified S-Band System.

На фотографии ниже показаны шкафы передатчика и приёмника наземной станции, которые обрабатывали сигналы объединённой системы S-диапазона. Эти шкафы связывали микроволновое оборудование – усилители и антенны – с радиочастотными подсистемами голоса, данных, телеметрии, измерения дальности и другими каналами.

На увеличенном фрагменте показана панель управления приёмником системы измерения дальности. Эта аппаратура выполняла аналоговую обработку: демодулировала принятый дальномерный сигнал, отслеживала его частоту, выделяла тактовый и доплеровский сигналы и измеряла корреляцию. Затем полученные данные передавались в описанную выше цифровую подсистему измерения дальности.

The receiver-exciter subsystem of the ground station, with a closeup of the ranging receiver. From Apollo Unified S-Band System.
Приёмо-возбудительная подсистема наземной станции и увеличенный фрагмент приёмника системы измерения дальности. Из документа Apollo Unified S-Band System.

Заключение

Система измерения дальности определяла расстояние до космического корабля, доплеровские измерения давали его радиальную скорость, а положение приёмной антенны – угловые координаты. Дальность и скорость измерялись с высокой точностью: разрешение по дальности составляло 1,5 метра, а разрешение по скорости – 0,1 м/с. Угловые измерения зависели от точности физического наведения антенны, поэтому их разрешение было значительно хуже – 0,025°. На расстоянии до Луны это соответствует более чем 150 километрам.

Система измерения дальности хорошо показывает, насколько сложной была программа Apollo. Хотя определение дальности составляло лишь небольшую часть навигационной системы, для него потребовались стойки специализированной аппаратуры на станциях по всему миру, особые алгоритмы и сложный бортовой транспондер.

Практически в каждой части Apollo проявляется такая фрактальная сложность: за внешне простой задачей вроде определения расстояния до корабля скрывалось множество технических новшеств. Одной только системе связи S-диапазона в 1965 году посвятили отдельную конференцию, материалы которой заняли 317 страниц.

По текстовому описанию устройство системы понять непросто, поэтому я сделал две интерактивные страницы с демонстрацией её работы. На первой показано, как регистры сдвига с линейной обратной связью (LFSR) и логические элементы XOR генерируют подкоды, а затем из них формируется передаваемый сигнал. На второй показано, как вычисляется корреляция для разных подкодов и как по полученным значениям определяется дальность.

Я уже реализовал дальномерные коды на плате Teensy, поэтому следующий шаг – передать их через настоящий транспондер Apollo. 

Примечания и ссылки (осторожно, много текста)

1. Система измерения дальности во многом напоминает GPS. В GPS тоже передаётся псевдослучайная битовая последовательность, а задержка сигнала определяется с помощью корреляции. Однако между этими системами есть несколько важных различий.

Во-первых, система Apollo определяла только дальность, тогда как GPS вычисляет трёхмерные координаты и точное время. Именно поэтому приёмнику GPS необходимы сигналы как минимум от четырёх спутников.

Во-вторых, сигнал GPS передаётся со спутника и принимается на Земле, а в системе Apollo сигнал и передавался, и принимался наземной станцией. Поэтому у приёмника GPS нет исходного переданного сигнала: он должен самостоятельно сгенерировать его копию для сравнения.

В-третьих, спутники GPS находятся примерно в 20 000 километров от Земли, тогда как расстояние до Луны составляет 384 000 километров, поэтому сигнал Apollo был гораздо слабее. Правда, у Apollo было преимущество в виде огромных 26-метровых приёмных антенн, тогда как длина антенны GPS составляет всего несколько сантиметров.

Наконец, для вычисления корреляции GPS может использовать сложные интегральные схемы, а не целые стойки транзисторной логики.

Насколько мне удалось выяснить, прямой связи между системой измерения дальности Apollo и GPS не было. GPS выросла из спутниковой навигационной системы Transit, также известной как Naval Navigation Satellite System, спутниковой программы Timation и проекта ВВС США 621B (история). 

2. Впервые радиолокационный сигнал отразили от Луны в 1946 году (подробнее, стр. 25), однако погрешность определения расстояния составляла ±1000 миль. Отражённый от космического корабля сигнал был бы гораздо слабее из-за его меньших размеров. 

3. У системы измерения дальности Apollo была долгая и сложная предыстория. Разработка радиолокации – Radar, или RAdio Detection And Ranging – началась в 1920-х годах. Во время Второй мировой войны радары приобрели критически важное значение, а для противодействия помехам начали применять методы расширения спектра.

В ракетной системе измерения дальности WHYN 1946 года для определения разности фаз, а значит, и дальности использовался корреляционный детектор. В 1948 году Федеральные телекоммуникационные лаборатории исследовали применение шумоподобных сигналов для связи. В этой необычной системе значения шума хранились в оптическом виде на вращающемся диске. Что любопытно, первоначальным источником случайных чисел служил телефонный справочник Манхэттена.

В системе NOMAC – NOise Modulation And Correlation – 1952 года в качестве несущей для связи исследовался тепловой шум. Разработанная в JPL в том же году система CODORAC, название которой расшифровывалось как COded DOppler Ranging And Command или COded Doppler RAdar Command, использовала похожую электронику и стала основой сети Deep Space Instrumentation Facility.

В CODORAC впервые применили систему фазовой автоподстройки частоты (ФАПЧ, PLL) для компенсации доплеровских изменений, а также последовательности регистров сдвига с линейной обратной связью для генерации «псевдошума». Дальнейшие исследования JPL привели к созданию системы измерения дальности Apollo, а также подсистемы связи космос – Земля Space Ground Link Subsystem (SGLS) 1966 года, которую ВВС США используют до сих пор. Подробнее об этом рассказывается в работе The Origins of Spread-Spectrum Communications

4. Дополнительная сложность заключалась в том, что во время измерения дальности корабль двигался с очень высокой скоростью – до 10 000 м/с. Это создавало две проблемы. Во-первых, к моменту завершения измерения полученное расстояние уже успевало устареть. Во-вторых, биты смещались друг относительно друга много раз в секунду, из-за чего корреляцию было трудно обнаружить.

Для передающей и приёмной схем использовали отдельные тактовые сигналы. Тактовый генератор приёмника синхронизировался с сигналом, поступавшим от космического корабля. Из-за доплеровского сдвига его частота немного отличалась от частоты передатчика. Поскольку коды генерировались на основе этого тактового сигнала, последовательности оставались точно совмещёнными даже во время движения корабля.

Интегрирование разности между двумя тактовыми частотами позволяло определить, насколько изменилась дальность с начала измерения. Таким образом, вычисленное значение оставалось привязанным к дальности на момент начала измерения, а доплеровские данные давали её последующее приращение. Объединение этих значений позволяло непрерывно получать актуальную дальность. 

5. Псевдослучайную последовательность требовалось тщательно спроектировать, чтобы даже при наличии шума неправильное совмещение можно было уверенно отличить от правильного. В частности, при неверном смещении число несовпадающих битов должно быть как можно большим. Последовательности LFSR и Лежандра обладали этим свойством.

Например, последовательность 0000011111 была бы неудачным выбором: при сдвиге на один бит большая часть значений по-прежнему совпадает. Кроме того, число несовпадений должно оставаться постоянным независимо от величины сдвига. Иначе система может принять локальный максимум корреляции за правильное совмещение.

Подробнее о математике корреляции кодов см. в работе Sequences with Small Correlation

6. Результат мажоритарной функции maj(A,B,C) совпадает со значением A в 75% случаев. То же самое справедливо для B и C, благодаря чему корреляцию каждого подкода можно обнаружить. Для сравнения, выражение A⊕B⊕C было бы неудачным выбором, поскольку оно совпадает с A только в 50% случаев, то есть корреляция оказывается практически случайной.

Рассмотрим простой пример работы maj(A,B,C), где A равно 1, а для двух других входов возможны четыре комбинации:

maj(1,0,0)=0
maj(1,0,1)=1
maj(1,1,0)=1
maj(1,1,1)=1

Результат совпадает с A во всех случаях, кроме первого, то есть в 75% случаев. Если A равно 0, рассуждение будет аналогичным.

В булевой логике мажоритарную функцию можно записать как A·B+B·C+A·C: результат истинен, если установлены любые два входа. 

7. Идея последовательности Лежандра основана на том, что у некоторых чисел существует целочисленный «квадратный корень» по модулю 11 – формально такие числа называются квадратичными вычетами, – а у других его нет.

Например, 5² = 25 ≡ 3 (mod 11), поэтому в некотором смысле 5 можно считать квадратным корнем из 3 по модулю 11. Если взять числа от 0 до 10 и присвоить 1 тем из них, у которых существует такой «квадратный корень», а остальным присвоить 0, получатся подкоды X.

Последовательность системы измерения дальности немного отличается от математической последовательности Лежандра: для квадратичного невычета в ней используется 0, а не −1. 

8. Уравнения по модулю решались с помощью китайской теоремы об остатках, описанной в древнекитайском математическом трактате Сунь-цзы, датируемом примерно III веком. В системе измерения дальности использовались заранее вычисленные числа, которые давали ненулевой результат только для одного подкода.

Например, число 992124 сравнимо с 1 по модулю 11, но сравнимо с 0 по модулям 31, 63 и 127. Поэтому умножение этого числа на смещение X даёт вклад подкода X в общую дальность.

Константы китайской теоремы об остатках:

992124 ≡ 1 (mod 11) для подкода X
1408176 ≡ 1 (mod 31) для подкода A
736219 ≡ 1 (mod 63) для подкода B
2320164 ≡ 1 (mod 127) для подкода C

По всем остальным модулям соответствующая константа сравнима с 0. Поэтому полное смещение вычисляется по формуле:

T = 992124×X + 1408176×A + 736219×B + 2320164×C (mod 5 456 682).

Эти числа можно получить с помощью довольно простого алгоритма, описанного в приложении E к документу NASA. Они были аппаратно зашиты в систему измерения дальности с помощью «генератора китайских чисел» – набора логических элементов, который выдавал константы в последовательном виде для поразрядного сложения.

9. В мини-компьютере Honeywell DDP-116 1965 года также использовались модули T-Pac. В 1966 году Honeywell приобрела компанию Computer Control Co., выпускавшую T-Pac, чтобы расширить свои возможности в области цифровой вычислительной техники. Более ранний Honeywell DDP-19 был довольно необычным компьютером: он работал с 19-битными словами и был собран на модулях S-Pac. В появившихся позднее модулях µ-Pac вместо транзисторов использовались интегральные схемы. 

10. Обратите внимание: по доплеровскому сдвигу можно измерить только скорость, с которой корабль приближается к Земле или удаляется от неё. Движение в перпендикулярном направлении на результатах измерения не отразится. 

11. Мне не удалось найти объяснение, почему для отношения частот передаваемого и принимаемого сигналов выбрали именно 240/221. Частоты должны были различаться, чтобы передаваемый сигнал не заглушал принимаемый. При этом отношение следовало оставить достаточно близким к единице, чтобы систему можно было оптимизировать под определённый диапазон частот. Числитель и знаменатель также должны были быть сравнительно небольшими целыми числами, позволяющими использовать умножители частоты.

Но для меня остаётся загадкой, почему выбрали 240/221, а не, например, 12/11: это почти то же самое отношение, но получить его гораздо проще. Пока моя основная гипотеза состоит в том, что большее отношение позволяло избежать совпадения гармоник. В противном случае, например, могло бы выполняться равенство 12×f1 = 11×f2, из-за чего принимаемый сигнал искажался бы. 

12. Задержка кода и доплеровский сдвиг не независимы друг от друга: по сути, это два проявления одного и того же эффекта. Допустим, космический корабль удаляется со скоростью 15 м/с. Радиоволны при этом растягиваются, а их частота снижается. У псевдослучайного сигнала частотой 1 МГц, переданного кораблю, каждый интервал длительностью 1 микросекунда после возвращения окажется длиннее на 0,1 пикосекунды.

За 10 секунд система измерения дальности передаст 10 миллионов импульсов. Из-за доплеровского растяжения вся последовательность станет длиннее на 1 микросекунду, то есть на один импульс. На это можно посмотреть и иначе: за 10 секунд корабль удалится ещё на 150 метров, поэтому задержка прохождения сигнала туда и обратно увеличится на 1 микросекунду.

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

13. Сигнал, переданный с Земли, испытывает доплеровский сдвиг при приёме на корабле. Затем сигнал корабля снова испытывает доплеровский сдвиг, когда его принимают на Земле. Поэтому суммарный доплеровский сдвиг удваивается. 

14. На блок-схеме ниже показаны основные компоненты транспондера. Он содержит два приёмопередатчика с фазовой модуляцией, дублирующих друг друга для резервирования. В нижней части схемы расположен FM-передатчик телевизионного сигнала, который не резервировался.

Генератор, управляемый напряжением (ГУН, VCO), синхронизировался по фазе со входным сигналом, но при этом обеспечивал умножение частоты в отношении 240/221. Для этого использовалась последовательность из нескольких умножителей частоты и смесителей. Дальномерный сигнал выделялся из принятого сигнала, модулировал по фазе новую несущую и поступал на антенну для передачи обратно на Землю. 

Block diagram of the transponder. (Click for a larger version.)
Блок-схема транспондера. Перейдите по ссылке, чтобы открыть увеличенную версию.

15. Транспондер умножал частоту принятой несущей на 240/221. В командном модуле использовалась частота линии Земля – борт 2106,4 МГц. После умножения на 240/221 получалась частота линии борт – Земля 2287,5 МГц, хотя из-за доплеровского сдвига она могла отклоняться на ±120 кГц. В лунном модуле и ракете Saturn использовалась несущая линии Земля – борт 2101,8 МГц, которая после умножения на 240/221 давала несущую линии борт – Земля 2282,5 МГц.

Отношение 240/221 получалось в результате сложной цепочки преобразований с помощью смесителей и умножителей частоты, показанной на блок-схеме выше. Генератор, управляемый напряжением, внутри транспондера работал на частоте около 19,0625 МГц и входил в состав системы фазовой автоподстройки частоты.

Сигнал ГУН умножался на 108 – сначала на 12, затем на 9 – и подавался на смеситель вместе с сигналом линии Земля – борт. На выходе смесителя получался сигнал с частотой, равной разности частоты наземного сигнала и умноженной частоты ГУН, то есть примерно 47,65625 МГц. Второй смеситель смешивал этот сигнал с удвоенной частотой ГУН, формируя разностную частоту 9,53125 МГц. Затем ГУН синхронизировался по фазе с этим сигналом и выдавал удвоенную частоту – 19,0625 МГц.

В виде уравнения процесс выглядит так:

(Uplink - 108×VCO - 2×VCO)×2 = VCO

После упрощения получаем:

VCO frequency = Uplink frequency × 2 / 221

Одновременно передатчик транспондера умножал частоту ГУН на 4, получая несущую 76,25 МГц. Затем она умножалась ещё на 30, что давало частоту линии борт – Земля 2287,5 МГц. Иными словами, при передаче частота ГУН умножалась на 120, поэтому выходная частота составляла 240/221 от частоты линии Земля – борт. Таким образом, отношение 240/221 формировалось цепочкой умножителей частоты и смесителей.

Но как именно выполнялось умножение частоты? Судя по другим схемам Apollo, сигнал, вероятно, подавался на диод с накоплением заряда (step-recovery diode) – специальный диод с очень быстрым переключением. Он преобразовывал каждый период входного сигнала в короткий острый импульс с большим количеством гармоник, частоты которых были кратны входной. Резонансная цепь концентрировала энергию на нужной гармонике, после чего фильтр отсекал нежелательные боковые составляющие. В результате получался сигнал с требуемой кратной частотой. Этот процесс описан в технической записке Hewlett-Packard Application Note 920 1968 года. 

16. На наземных станциях использовались компьютеры Univac 642B – 30-битные машины с памятью на магнитных сердечниках объёмом 32 килослова. Компьютер создавался для военных систем реального времени. Он был одним из ключевых компонентов Naval Tactical Data System – новаторской системы 1960-х годов для обработки боевой информации на кораблях ВМС США.

The Univac 624B computer. From Apollo Unified S-Band System.
Компьютер Univac 624B. Из документа Apollo Unified S-Band System.

17. Подробное описание системы S-диапазона и наземных станций см. в документе Apollo Unified S-Band System. Детальное устройство аппаратуры измерения дальности разобрано в работе A Study of the JPL Mark I Ranging Subsystem.

Продолжить тему обработки сигналов и аппаратной логики можно на бесплатных уроках по ESP32:

  • 12 августа, 20:00. «Тайный язык общения чипов. Подключаем всё к ESP32». Записаться

  • 24 августа, 20:00. «АЦП в ESP32. Оцифровать сигнал, а не „погоду на Марсе“. Нюансы, особенности, повышение точности». Записаться

Больше бесплатных уроков августа смотрите в дайджесте.

Комментарии (2)


  1. mezon79
    05.08.2026 19:29

    Крутая статья!!! Огромное спасибо, очень интересно!


  1. RetroStyle
    05.08.2026 19:29

    Очень жаль, что магнитные ленты, на которые записывали оригинальный сигнал с Аполлона-11 были кем-то когда-то почему-то уничтожены. Можно было бы восстановить и видео в хорошем качестве и всю телеметрию детально, чтобы предъявить всяким конспирологам. Причем, не сохранились ни австралийские, ни американские пленки. Я уж и не говорю о СССР, который, следил за полетом и принимал сигнал. Говорят, магнитная лента была в то время дорогой и ее вроде бы переиспользовали. А может просто сожгли - точно не известно. Как обидно!