от того, где вы находитесь, и этот набор меняется со временем, поскольку Земля вращается и спутники тоже обращаются по своим орбитам.
В системе GPS пользователям не нужно передавать на спутники никакой информации. У них есть приемник, который принимает дальномерные коды со всех видимых на данный момент спутников. Приемник обрабатывает сигналы с точной привязкой ко времени, чтобы определить с их помощью, где он находится. Базовый принцип прост, так что давайте сначала рассмотрим его. Затем я укажу на некоторые тонкости, о которых необходимо позаботиться, чтобы эта система работала в реальном мире.
Начнем с одного спутника. Он отправляет дальномерные коды, по которым ваш приемник определяет, как далеко этот спутник находится в настоящий момент. (Позже мы увидим, как это рассчитывается.) Возможно, это расстояние составляет 21 000 км. Если исходить из этой информации, то вы находитесь на поверхности сферы со спутником в центре и радиусом 21 000 км. Сама по себе такая информация не слишком полезна, но в это же мгновение видимы еще по крайней мере пять спутников. Я буду называть их спутником 2, спутником 3 и т. д. до спутника 6. Каждый из них передает свои сигналы, которые вы принимаете одновременно, и каждый сигнал помещает вас на свою сферу с соответствующим спутником в центре: это сферы 2, 3, 4, 5, 6. Сигнал со спутника 2 совместно с сигналом со спутника 1 помещает вас на пересечение сфер 1 и 2, которое представляет собой окружность. Спутник 3 добавляет в эту систему свою сферу, которая пересекается со сферой 1 по другой окружности. Эти две окружности пересекаются друг с другом в двух точках, каждая из которых лежит на всех трех сферах. Сигнал от спутника 4 образует сферу 4, которая в общем случае позволяет определить, какая из двух точек является вашим истинным местоположением.
В идеальном мире мы могли бы остановиться на этом, и привлечение спутников 5 и 6 было бы уже излишне. В реальности все не так просто. Всюду могут возникать ошибки. Атмосфера Земли может исказить сигнал, его прохождению могут помешать радиопомехи или еще что-нибудь. Для начала из этого следует, что ваше местоположение скорее близко к соответствующей сфере, а не на ней. Точка вашего местоположения лежит не на поверхности сферы, а скорее в пределах утолщенной оболочки, включающей в себя эту поверхность. Так что четыре спутника и их четыре сигнала могут определить ваше положение с некоторым уровнем точности, но не идеально. Чтобы улучшить результат, GPS использует дополнительные спутники. Их утолщенные сферические оболочки еще сильнее сужают область вашего возможного пребывания. На этом этапе уравнения, определяющие ваше положение, почти наверняка несовместимы друг с другом, если не обращать внимания на вероятные ошибки, но, воспользовавшись старым статистическим приемом, можно минимизировать суммарную ошибку и получить наилучшую оценку положения. Этот прием, известный как метод наименьших квадратов, был предложен Гауссом в 1795 году.
В результате вашему GPS-приемнику достаточно систематически производить серию относительно простых геометрических расчетов, которая и приведет к наилучшей возможной для этого прибора оценке местоположения. Сравнивая полученный результат с детализированной формой Земли, прибор может определить даже, как высоко над уровнем моря вы находитесь. Как правило, высоты определяются менее точно, чем координаты по широте/долготе.
* * *
Спутник «рассылает дальномерные коды», или, говоря иначе, «рассылает сигналы с точной привязкой по времени». Звучит просто, но на самом деле это не так. Если вы слышите раскат грома, то понимаете, что начинается гроза, но сам по себе раскат грома не скажет вам, насколько она далека. Если же вы не только слышите гром, но и видите молнию, что происходит раньше, чем раздается гром, поскольку свет распространяется быстрее звука, то можно использовать разницу во времени прихода двух сигналов для оценки расстояния до молнии. Для прикидки достаточно знать, что три секунды запаздывания соответствуют примерно одному километру. Однако скорость звука зависит от состояния атмосферы, так что это правило нельзя считать точным.
GPS не может использовать в качестве второго сигнала звуковые волны по очевидным причинам – они слишком медленные, к тому же в космосе царит вакуум, так что звук там в любом случае не может распространяться. Но сама идея получения временно́й разницы между двумя разными, но взаимосвязанными сигналами верная. Каждый спутник рассылает последовательность импульсов 0/1, не содержащую повторений, – разве что вы будете ждать очень долго, чтобы последовательность повторилась целиком. GPS-приемник может сравнить строку из нулей и единиц, которую он получает со спутника, с той же строкой, получаемой от местного источника. Спутниковый сигнал приходит с задержкой, потому что ему приходится преодолевать расстояние между спутником и приемником, а время задержки можно определить, выровняв оба сигнала и посмотрев, насколько нужно сдвинуть один из них, чтобы он соответствовал второму.
Мы можем проиллюстрировать этот процесс, используя вместо нулей и единиц слова из этой книги.
Предположим, что сигнал, полученный со спутника, таков:
выровняв оба сигнала и посмотрев, насколько нужно,
тогда как опорный сигнал, получаемый одновременно практически с соседнего двора, таков:
посмотрев, насколько нужно сдвинуть один из них.
Тогда мы можем сдвинуть местный сигнал так, чтобы одинаковые слова совпали, примерно так:
Теперь мы видим, что сигнал со спутника приходит на четыре слова позже местного сигнала.
Остается только сгенерировать подходящие битовые строки. Простой способ генерирования строки из нулей и единиц с очень редкими повторениями состоит в подбрасывании монеты миллионы раз с записью 0 для орла и 1 для решки. Каждый бит возникает с вероятностью 1/2, так что строка из, скажем, 50 бит возникает с вероятностью 1/250, что соответствует примерно одному шансу на квадриллион. В среднем она повторится примерно через квадриллион знаков вдоль строки. Если сравнить такой сигнал с его вариантом, смещенным на гораздо меньшую величину, то «верное» смещение, дающее наилучшее совпадение строк, окажется единственным.
Компьютеры, однако, не сильны в подбрасывании монет. Они следуют конкретным инструкциям, и весь смысл их работы состоит в том, что они должны делать это точно и безошибочно. К счастью, существуют точные математические процессы, способные генерировать битовые строки, которые кажутся случайными в разумном статистическом смысле, хотя реальная процедура их создания носит детерминистский характер. Подобные методы известны как генераторы псевдослучайных чисел. Это третий крупный математический ингредиент системы GPS.
На практике поток битов из генератора псевдослучайных чисел объединяется с другими данными, которых требует GPS, – такой метод называется модуляцией. Спутник передает данные с относительно невысокой скоростью: 50 бит в секунду. Он соединяет этот сигнал с куда более быстрым потоком битов