Архив 23 апреля 2009

Спутники, орбиты и диапазоны

Продолжу серию постов о спутниковом ТВ. Сегодня – пост о “теоретических основах” спутникового телевещания.

Начну, как водится, издалека. Точнее, с удаленной от Земли на 35 786 км геостационарной орбиты.

Как можно показать математически, существуют орбиты, находящийся на которых спутник Земли будет вращаться с той же угловой скоростью, что и наша планета. Для наблюдателя на Земле такой спутник будет постоянно “висеть” над одним и тем же меридианом, поднимаясь и опускаясь над горизонтом. Их орбиты называются геосинхронными. Если же плоскость орбиты спутника совпадает с плоскостью вращения Земли, то спутник будет казаться неподвижным. Орбита, на которой находятся такие спутники, называется геостационарной.

Впервые система спутниковой связи была описана в статье Артура Кларка (между прочим, известного писателя-фантаста) в 1948 году. Кларк предлагал разместить на геостационарной орбите три спутника, которые могли бы ретранслировать данные друг другу. Такая система обеспечивала бы круглосуточную глобальную связь, действующую везде, кроме приполярных районов.

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

Рисунок из статьи Артура Кларка

Рисунок из статьи Артура Кларка

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

Основной недостаток геостационарных спутников – высота орбиты. Проходя многие тысячи километров, сигнал очень сильно ослабляется. Поэтому для его приема необходимы узконаправленные антенны довольно внушительных размеров. Раз уж речь зашла про антенны, надо упомянуть о выделенных для канала “спутник-земля” диапазонах.

Сейчас основные диапазоны, используемые для ретрансляции телепрограмм со спутников – это диапазоны C (Це) и Ku (K-upper, Ку). Первый из них охватывает частоты от 3650 до 4200 МГц, второй – от 10700 МГц до 12750 МГц. Естественно, сигнал такой частоты затруднительно передавать по кабелю, поэтому непосредственно на приемной антенне устанавливается малошумящий конвертер (LNB – Low Noise Block), предназначенный для понижения частоты до “спутниковой промежуточной частоты” – от 950 до 2150 МГц. Об устройстве приемных антенн я напишу отдельный пост.

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

Российский и африканский лучи спутника Eutelsat W4

Российский и африканский лучи спутника Eutelsat W4

Красная линия на карте – область геометрической видимости спутника, ограниченная проведенной к Земле касательной из точки, где тот находится. Как видно из карты, спутниковое телевидение недоступно разве что полярникам в Антарктиде и эскимосам в Гренландии, во всех остальных точках Земли есть возможность увидеть хотя бы один спутник.

Для того, чтобы указать геостационарный спутник, надо знать его орбитальную позицию – долготу меридиана, над которым тот находится. Например, Eutelsat W4, “висящий” над Восточной Африкой, обычно называют 36E – “36 градусов восточной долготы”, а то и просто – “тридцатишестиградусник”. Сейчас эксплуатируется несколько десятков геостационарных спутников, посмотреть на их зоны покрытия можно на сайте SatBeams.com.

Конечно, в реальной жизни не бывает ничего идеального, и реальные “геостационарные” спутники немного колеблются вокруг своего теоретически предсказанного положения. Дифференциальные уравнения, описывающие движение спутника на орбите, имеют особую точку типа центра – во как загнул! На самом деле это означает, что спутник будет двигаться в окрестности своей позиции по траектории, напоминающей эллипс. Это явление называется либрация.

Обычно спутник за сутки может отклониться от своей орбитальной позиции где-то на полградуса, но многие спутники “удерживаются” в своей позиции гораздо более точно. Колебания спутника обычно незаметны при использовании антенн с небольшими размерами – центральный лепесток их диаграммы направленности имеет “ширину” около 1-2 градусов, но в профессиональных системах с диаметром рефлектора в 3-5 метров приходится дополнять антенну автоматической следящей системой, которая подстраивает антену вслед за колебаниями спутника.

Явление либрации используется при эксплуатации орбитальных группировок – нескольких спутников в одной орбитальной позиции. Параметры либрации спутников согласовываются так, что они двигаются вокруг одной точки по одной траектории, не сталкиваясь друг с другом. Для наземной приемной станции все эти спутники выглядят, как один. Конечно, организация такой “карусели” – довольно сложное мероприятие, приходится постоянно корректировать движение спутников. Обычно спутники, работавшие в составе таких группировок, по мере расхода топлива выводятся в другие орбитальные позиции. На данный момент фирма Eutelsat – крупнейший европейский спутниковый оператор – может обслуживать группировки до пяти космических аппаратов.

Для спутникового телевещания сейчас используются стандарты DVB-S и DVB-S2. Они предусматривают использование цифровых видов модуляции (различные варианты PSK – Phase Shift Keying, передача со сдвигом фазы) с коррекцией ошибок. Ширина полосы сигнала при использовании их для телевещания составляет около 20-30 МГц, а частотный ресурс ограничен. Во-первых, на соседних спутниках не должно вестись вещания на близких частотах, во-вторых, даже в довольно внушительных на первый взгляд С и Ku диапазонах места на самом деле оказывается совсем немного. Положение спасает использование поляризованного сигнала. Обычно применяется “линейная” поляризация (два перпендикулярных направления – “вертикальная” и “горизонтальная”), в России чаще используется “круговая”, когда плоскость поляризации сигнала вращается вправо или влево. LNB позволяют выбирать поляризацию принимаемого сигнала.

Для того, чтобы “настроиться” на сигнал со спутника и декодировать его, необходимо знать частоту и поляризацию транспондера (проще говоря, установленного на спутнике передатчика), символьную скорость (Symbol Rate) – количество передаваемых в секунду символов, варьируется от 3000 до 40000 мегасимволов в секунду, обычно бывает около 27000 Мс/с и FEC – вариант алгоритма коррекции ошибок, указывается в виде дробного числа, например, 5/6 означает, что из 6 битов 5 – биты данных и 1 – проверочный. Декодеры обычно автоматически определяют вид модуляции, и выдают на выходе поток битов – то, что передается по радиоканалу.

В стандартах DVB-S и DVB-S2 предусмотрено мультиплексирование нескольких каналов на одном транспондере. Канал определяется своим номером SID (Service ID), который присутствует во всех пакетах с данными, относящимися к этому каналу. Также могут передаваться аудиодорожки к каналам и “транспортные потоки” – обычно содержащие служебную информацию для каких-либо целей. DVB определяет лишь содержимое аудио- и видеопотока – это тривиальные MPEG-2 и MPEG-4 для видео и MP-3 или AC3 для аудио. Транспортные же потоки могут содержать что угодно – вплоть до данных, используемых “спутниковым интернетом”.

В следующих частях – рассказ о реально используемом для приема оборудовании.

По поводу необходимости программирования

На вчерашнюю запись [info]soonts оставил вот такой комментарий:

>можно заменить почти все специализированные электронные устройства достаточно мощным “стандартным” компьютером
И заменяют. В том числе в приложениях, исключительно критичных к надёжности. Те же американские марсоходы: PowerPC CPU + VxWorks OS.

Во-первых много людей уже умеют хорошо программировать стандартные компьютеры.
Во-вторых, как ни странно мощные стандартные компьютеры дешевле нестандартных.
Например материнская плата с вмонтированным процом intel atom 1.6GHz размером 17×17cm стоит как половина того калькулятора. Шоб сделать из неё полный аналог калькулятора, надо добавить RAM (200р за 256MB), USB флешку для загрузки какой-нить ОС реального времени и хранения данных (300p за 1GB), БП, дисплей и клавиатуру, и ессно написать софт.

>надежность такой системы будет довольно низкой. Сравните, например, мультивибратор на двух транзисторах и “мигающую лампочкой” программу для Windows

Если эта “мигающая лампочка” на дисплее, то всё упирается вовсе не в windows и не в надёжность аппаратной части, а в частоту обновления экрана.
Шоб мигать лампочкой на экране строго раз в секунду, всего-то надо не накосячить при реализации, а именно поднять приоритет процессу и использовать Direct3D для рисования.

Если же “мигающая лампочка” прицеплена например к выходу звуковой карты уровня m-audio audiophile, то даже под windows, при некотором умении программировать можно добиться при частотах от 0 до 20KHz надёжности и стабильности _существенно_ выше чем у двух транзисторов. А кроме универсальной windows, есть ещё системы реального времени.

Я не был в числе критиков МК-152, не считаю цену завышенной, но скорее согласен с теми, кто считает девайс бесполезным.
Точнее, я считаю что рынок очень-очень маленький.
Очень мало кто умеет этот странный МК.
В то же время куча людей, и у нас и в остальном мире, умеют пользоваться matlab на PC, и программировать PIC, Intel MSC, и прочие контроллеры.

Пока писал ответ, получилось содержимое для очередного поста.

За последние 20 лет вычислительная техника шагнула далеко вперед. Если 20 лет назад, к примеру, задача обращения большой квадратной матрицы (то есть решения системы многих уравнений, например, пары тысяч) даже сравнительно мощным компьютером (конечно, не Cray, а скорее что-нибудь из больших ЕС) занимала около часа, то сегодня любая персоналка делает это за пять-десять минут, а то и меньше. Теперь любому доступны вычислительные возможности, например, крупного НИИ образца 1989 года. Любая блондинка с гуманитарным складом мышления носит в сумочке (!) ноутбук, способный, к примеру, произвести расчет траектории баллистической ракеты за несколько минут.

Казалось бы, наступил “золотой век” в представлении писателей-фантастов. На каждого жителя Земли приходится такая вычислительная мощность, что все расчеты, необходимые, например, для полета на Марс, могут быть выполнены практически моментально. Думаю, если бы сейчас подготовкой к марсианской экспедиции занимались бы действительно эффективные менеджеры, то не возникло бы никакой необходимости в “распараллеливании” расчетов, как это было сделано при разработке первой советской термоядерной бомбы. Все прекрасно посчиталось бы на паре “самых мощных компьютеров Савеловского рынка”.

marshalberia

Но, думаю, если бы кто-нибудь сказал, что при запуске программы для работы с электронной почтой объем производимых вычислений сравним с вычислением, например, траектории спутника (я не шучу, Lotus Notes действительно при запуске “отжирает” 100% загрузки не самого слабого Intel Pentium M на пару-тройку минут), то разработчики программы отправились бы валить лес далеко за Урал.

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

В самом деле, даже на самом паршивом персональном компьютере 80-х был интерпретатор Бейсика. Сейчас даже в самой навороченной Windows 7 встроен довольно сомнительный калькулятор, по удобству значительно уступающий своему настольному собрату за 100 рублей. Казалось бы, что это дает, когда есть все необходимые программы? К сожалению, последний тезис просто неверен.

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

lc

С другой стороны, считать на калькуляторе, например, индуктивность, зная частоту и емкость, не очень приятно. Особенно – когда делаешь это много раз. “Программа” на Бейсике займет три строчки, и пишется за 5 минут – даже меньше. То есть, имея в распоряжении древний “Спектрум”, и зная базовые конструкции Бейсика, мы можем ловольно сильно облегчить себе жизнь. Что же нам предлагает платформа Windows+Intel? Калькулятор в Windows? Это даже не смешно. Excel? Простите, но мазохизм – это извращение. Как это не удивительно, но в “стандартном комплекте” не найдется ни одной программы, которая позволила бы ускорить простейшие расчеты. Монструозный Matlab – вот, пожалуй, единственный программный продукт, предлагающий схожую функциональность (и даже больше – но эти возможности будут лежать мертвым грузом).

Итак, внезапно выяснилось, что пользователь просто не может задействовать имеющуюся у него вычислительную мощность для выполнения даже простейших расчетов. Природа не терпит пустоты, и многие (в основном – осваивающие Delphi или Visual Basic студенты) пишут свои программы для таких расчетов. Казалось бы, нет ничего проще. Накидал на форму мышкой компоненты, написал пару строк кода – готово! К сожалению, нет…

Вернемся к расчету емкости. Устав от Excel, зайдем на любую софтопомойку и наберем в поиске “колебательный контур”. Ура! Нашлась программа, написанная каким-то студентом N-ского технического университета. Скачиваем, запускаем. Видим приятный интерфейс, где достаточно ввести два значения, чтобы посчиталось выбранное третье. Выбираем интересующую нас индуктивность, затем кликаем мышкой на поле ввода частоты и начинаем стирать имеющееся там значение. Красота! Значение индуктивности пересчитывается автоматически всякий раз, когда меняется введенная частота или емкость! Ничтоже сумнящеся, крепко давим на Backspace и стираем всю частоту, чтбы ввести свою. В недрах программы происходит страшное. Обработчик события “изменилось значение поля с частотой” считывает из поля текстовое значение – пустую строку, преобразует его в число – 0 и… делит, вызывая ошибку с вылетом всей программы.

Любой профессиональный программист всего лишь посмеется. Но автор программы по специальности – не программист, и он не обязан знать многих тонкостей. Может быть, он сначала вводит новое значение перед старым, а затем стирает “хвост” кнопкой Delete. Тогда программа работает. В принципе, автор может освоить программирование в необходимом для инженерных расчетов объеме – вычисления, ветвления и циклы, простейший ввод-вывод. Если бы программа писалась на Turbo Pascal или Quick Basic, то “вылет” происходил бы лишь при недопустимых входных данных, что более-менее нормально и допустимо. Любое же программирование под Windows требует знания всяческих тонкостей.

Давайте опустим завесу жалости над концом этой печальной сцены. Не буду переходить, например, к решению дифференциальных уравнений, когда вытащенный из коробки Спектрум довольно бодро начинает рисовать на экране график решения, получаемого методом Рунге-Кутта (10-15 строчек на Бейсике), а “свежий” Asus EEE PC пасует перед такой задачей.

Конечно, при наличии навыков, времени и достойной среды разработки можно написать программу, рисующую тот же график, но со значительно лучшей точностью, и на персоналке с Windows. Но все упирается в то, что все современные среды программирования рассчитаны на профессиональных программистов. Можно сколько угодно обсуждать преимущества C перед Бейсиком, но забыть о главном – в 80-х для программирования на Бейсике не требовалось ничего, любой компьютер имел его интерпретатор (кстати, в состав DOS вплоть до 6.22 тоже входил QBasic). Сейчас же доступных для пользователя технологий программирования просто нет, вместо них – 3D-ускоренный интерфейс Aero и картинки из Висты, своими названиями приводящие в изумление.

Между прочим, программируемые калькуляторы типа МК-52 или МК-61 предназначались в том числе и для инженерных расчетов. Для них, например, выпускались модули расширения памяти, содержавшие различные математические и инженерные подпрограммы. На Западе до сих пор применяют программируемые микрокалькуляторы Texas Instruments и других производителей. Появление МК-152 в 2008 году выглядит странно лишь потому, что подобная техника у нас не выпускалась и не использовалась почти 20 лет. А ведь для многократного повторения одних и тех же, пусть и несложных, вычислений программируемый калькулятор оказывается на порядок удобнее современного компьютера.

Возвращаясь к нашим Delphi и Quick Basic. В свое время много писали о необходимости преподавания в школах основ информатики и вычислительной техники, затем развернулись дискуссии о том, кого следует готовить – пользователей готовых программных продуктов (Windows, Word, Excel, Photoshop) или “программистов”. Конечно, победила первая точка зрения. Но и в обучении азам программирования все же есть смысл. Но это оправдано лишь тогда, когда учат не “накидыванию компонентов на форму”, а основам вычислений с использованием компьютера – то есть, как я уже говорил, конструкциям алгоритмического языка, операциям ввода-вывода, возможно – простейшим “общим” и вычислительным алгоритмам. Главное – это дать возможность самому произвести какие-либо расчеты, не дожидаясь появления специализированного софта. Кстати, про специализированный софт я хотел бы написать еще один пост, на этот раз – про аргумент начинающих линуксистов “у любой программы есть свободный аналог”.

К сожалению, в мире нет нигде не занятой “кучи людей, которые умеют пользоваться Matlab или программировать стандартные компьютеры”. Работа программиста стоит довольно дорого, так что большинство “программируемых пользователем” устройств, типа тех же калькуляторов или станков с ЧПУ – это одна из немногих возможностей дать не-программисту возможность вводить и выполнять какие-то алгоритмы. К сожалению, любые более богатые по возможностям устройства требуют уже наличия квалификации программиста, а ее-то у большинства работающих с техникой нет, каким бы странным это не казалось всезнающим “компьютерным энтузиастам”.