Как работают модемы

Первая часть из цикла "Как работают модемы"


Так уж сложилось исторически, что есть очень много книг на русском языке про то, как пользоваться Windows, как работать с Internet, но, к сожалению, практически нет никакой литературы, которая достаточно полно с одной стороны, и понятно для неспециалиста — с другой, описывала бы работу таких непростых, но широко распространенных устройств, как модемы. Несмотря на то, что большинство пользователей компьютеров имеют представление о том, что такое Интернет, и либо время от времени, либо ежедневно пользуются им, мало кто задумывался о том, что модем, как основное некорпоративное средство доступа в Интернет на сегодня, едва ли не самое слабое звено в цепочке, по которой информация попадает на дисплей пользователя! Как-то само собой подразумевается, что купил в магазине модем, подключил к компьютеру и телефону, и все, больше не о чем беспокоиться. В этом цикле статей будет сделана попытка наглядно показать, сколь далеко это представление от действительности, и будут даны практические советы, как можно улучшить ситуацию. Материал рассчитан на того, кого называют Advanced user, то есть интересующегося далее простого нажимания на кнопки пользователя, но — пользователя, а не специалиста в цифровой обработке сигналов. Многие принципы и особенности работы модемов будут сознательно упрощены так, чтобы не отнимать лишнего времени у тех, кому важно решить главный вопрос — улучшить качество работы через телефонную сеть, понимая, что именно там происходит. Не в качестве саморекламы, но лишь с целью расстановки точек над 'i' отметим, что сами авторы этих статей как раз являются самыми что ни на есть профессионалами в этой области, несколько лет занимающиеся конкретно адаптацией модемов под Российские телефонные линии, и написавшие свои реализации многих популярных протоколов связи, таких как V.34 и прочих V.xx.

Итак,

часть первая: что такое модем, и как он работает.

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

Модем представляет собой устройство, имеющее, с внешней точки зрения, цифровой интерфейс c компьютером (обычно последовательный порт RS-232) и аналоговый интерфейс с каналом связи (телефонной линией) — разъем для телефонного кабеля (RJ-11). "Внутри" модем представляет собой микрокомпьютер с достаточно мощным процессором (иногда несколькими), постоянной и оперативной памятью, и аналоговой частью, ответственной за сопряжение модема с телефонной сетью — устройство набора номера, усилитель, АЦП и ЦАП — Аналого-Цифровой и Цифро-Аналоговый Преобразователи, ответственные за преобразование сигнала из аналоговой формы (непрерывный сигнал-напряжение) в цифровую (отдельные отсчеты сигнала, дискретизованные по времени и квантованные по напряжению), и наоборот, соответственно. Практически все современные модемы производят обработку информации в цифровой форме, без сколь-либо сложной аналоговой предобработки, так как это позволяет добиться высокой стабильности и в значительной степени упростить разработку и анализ алгоритмов. При этом обычно частота дискретизации (скорость следования отдельных отсчетов оцифрованного сигнала) находится в пределах 7-12 тысяч отсчетов в секунду (килоГерц, kHz). Теоретически, частота дискретизации должна быть как минимум в два раза выше максимальной частоты сигнала, для того, чтобы сигнал был представим отдельными отсчетами без потерь. Количество уровней квантования для ЦАП и АЦП современных модемов достигает десятков тысяч. Обычно, поскольку с "цифровой стороны" ЦАП и АЦП пишутся или читаются в виде числа, говорят о количестве разрядов у ЦАП/АЦП, т.е., количестве разрядов двоичного числа, требуемого для представления всех возможных уровней, например, 16-разрядный АЦП может распознавать 65536 уровней, обозначаемых числами от -32768 до +32767.

Давайте посмотрим на это устройство вот с какой стороны: понятно, что его задача — пересылать информацию с одного компьютера на другой. В случае работы в Интернете — с компьютера клиента на компьютер провайдера, и наоборот. Дабы упростить себе жизнь, будем пока считать, что модем выполняет всего одну, примитивную функцию — модулятора-демодулятора цифрового сигнала (кстати, именно отсюда и взялось сокращение — модем). Будем считать, что он уже набрал номер, установил соединение, начал передавать и принимать данные, и нам интересен пока лишь процесс, как байты информации идут от удаленной стороны к нам, и наоборот. Как же это происходит?

Рассмотрим подробнее, как же модем кодирует сигнал и как помехи этому мешают. Наиболее популярные ныне протоколы передачи данных - V.34 и V.32 — используют амплитудно-фазовую модуляцию сигнала. Базовый сигнал — несущая синусоида определенной протоколом частоты при передаче модулируется, т.е. подвергаются изменению ее амплитуда, то есть уровень, и фаза (сдвиг фазы сигнала относительно немодулированной "исходной" синусоиды). При этом состояния сигнала, характеризующиеся неизменной амплитудой и фазой, последовательно сменяют друг друга. Каждое такое состояние кодирует небольшое количество битов данных и называется одним символом (не путать с буквами и цифрами). Скорость, с которой символы сменяют друг друга, называется символьной скоростью (Symbol rate в статистике модема). Она определяется протоколом, для V.32 она всегда равна 2400 символов в секунду, для V.34 может достигать 3429 символов в секунду. Таким образом, у нас уже два параметра — символьная скорость и частота несущей.

Когда один символ сменяется другим, происходит изменение (увеличение или уменьшение) амплитуды и сдвиг фазы ("вперед" или "назад") сигнала. Мгновенно ни амплитуда, ни фаза измениться не могут — это потребовало бы бесконечной скорости изменения сигнала (напряжения и тока) в канале, т.е. неограниченной полосы пропускания канала. Обычно же требуется передать максимум информации, заняв отведенный диапазон частот. Минимальный диапазон частот, требующийся для передачи сигнала, в котором фаза меняется максимально быстро (худший случай с точки зрения занятия полосы частот) вперед или назад, то есть, на половину периода несущей за один символьный интервал, в точности равен символьной скорости в Гц. Например, если фаза сигнала должна сдвигаться вперед на половину периода несущей за время передачи одного символа, частота сигнала в ходе этого перехода как минимум должна достигать ((исходной частоты несущей) + (символьная скорость)/2). В противном случае будет накапливаться "отставание" фазы сигнала от требуемой.

Для того, чтобы "вписать" сигнал в этот минимально необходимый диапазон частот, переходы между символами сглаживаются с тем, чтобы скорость изменения сигнала (и его частота, соответственно) не превышала это ограничение. Например, если требуется существенный сдвиг фазы "вперед", этот сдвиг происходит не мгновенно, а постепенно. В течение этого переходного периода частота сигнала в канале будет выше исходной частоты несущей (слышимый тон — выше), поскольку для сдвига фазы вперед требуется более быстрое изменение сигнала. И наоборот, для сдвига фазы назад требуется замедление изменения сигнала, и слышимый ухом тон — ниже. А поскольку такие переходы происходят часто (с символьной скоростью, т.е., более 2000 раз в секунду), и требуемые величины изменения фазы сигнала достаточно случайны, в результате, когда модем передает данные, мы слышим не ровный тон, или последовательность тонов, а "шипение", т.е., в среднем все частоты в рабочей полосе используются одинаково часто. Если рассмотреть спектр сигнала за длительный период времени, он будет равномерным, с центром, совпадающим с частотой исходной несущей, простирающимся в ширину симметрично влево и вправо от центральной частоты несущей на полосы частот, равные половине символьной скорости.

Таким образом, для рассматриваемых протоколов ширина спектра сигнала равна символьной скорости.

Остановимся пока на этом, и посмотрим, что же предоставляет нам телефонная линия. А предоставляет она нам обязательство пропускать наши сигналы до удаленного абонента в полосе частот от 300 до 3400 герц, и, будем надеяться, без искажений. Очевидно, что модем должен выбрать такую несущую и такую символьную скорость, чтобы несущая поместилась ровно посередине между 300 и 3400, а символьная скорость была в точности равна 3400-300. Это — необходимое и достаточное условие для того, чтобы спектр сигнала модема ровно занял весь предоставляемый канал. Если он займет меньше, значит часть канала будет неиспользована, и модем сможет передать меньше информации, чем мог бы. Если он займет больше, то часть спектра будет обрезана и удаленный модем его не получит, а, стало быть, не получит и части передаваемой информации. Вообще, есть теоретический предел пропускной способности канала, который нельзя превысить никакими силами. Сколько бы мы ни старались, и как бы мы ни приспосабливали форму нашего сигнала к параметрам линии, мы не сможем передать информации больше этого теоретического предела. Таким образом, главная задача модема — так приспособиться к каналу, чтобы передать через него все, что канал может пропустить.

Продолжим теперь про модуляцию. К паре параметров сигнала — центральной частоте и ширине спектра (т.е. частоте несущей и символьной скорости) нам надо знать про третий определяющий параметр — назовем его глубиной модуляции. Хотя это не до конца правильный термин в данном применении, но сильно похож. Он говорит о том, сколько разных состояний может быть у передаваемого сигнала. Вспомним, что модем передает один символ (не букву!), какое-то время. А затем — другой символ. Символы отличаются друг от друга. Так сколько же всего может быть разных символов? Это зависит, главным образом, от того, сколько разных амплитуд и фаз мы можем передать в канал так, чтобы с противоположной стороны их еще не путали друг с другом. Иными словами, сколько градаций по амплитуде и фазе мы можем выбрать так, чтобы с той стороны они еще однозначно отличались. Как несложно посчитать, например 16 градаций по амплитуде и 16 по фазе дают 16*16=256 различных состояний сигнала, с помощью которых можно закодировать 8 битов информации. В этом случае при символьной скорости, например, в 1000 символов в секунду мы получим скорость передачи информации ровно 8000 битов в секунду. Если глубина модуляции меньше, то есть число состояний сигнала всего 32, к примеру, то мы получим 5 бит за символ, то есть 5 килобит в секунду. Если символьная скорость возрастет до 2000, это будет уже 10 килобит в секунду.

На протоколе V.32 каждый символ соответствует группе бит. При этом эта группа, очевидно, состоит из целого числа бит — от 2 до 6. А поскольку символьная скорость равняется 2400 символов в секунду, добавление очередного бита в группу (и увеличение количества используемых символов в два раза, соответственно), приводит к увеличению битовой скорости на 2400бит/с. Именно поэтому поддерживаемые V.32 скорости — от 4800 до 14400 бит/с с шагом в 2400. Протокол V.34 кодирует символы не по одному, а группами по 8 (так называемыми "кадрами отображения", mapping frames). При этом каждая группа имеет некоторые параметры (амплитудную огибающую), общие для всех 8 символов. За счет этого на один символ может приходиться "дробное" количество бит. Однако из соображений совместимости, список поддерживаемых битовых скоростей и на V.34 состоит из скоростей, кратных 2400, даже если символьная скорость выбрана не 2400, а большая. Например, известная Вам скорость 33600 бит/сек получается при передаче 79 бит на группу из 8 символов на символьной скорости 3429.

А теперь опять посмотрим на то, что нам предоставляет линия. С точки зрения увеличения числа состояний сигнала, она предоставляет нам параметр, именуемый динамическим диапазоном. То есть разницу между самым громким и самым тихим сигналом, который линия еще может пропустить без искажений. Сверху это обычно ограничивается перегрузочной способностью канала, а снизу — уровнем шумов канала. Иначе это еще называют соотношением сигнал/шум (SNR), то есть во сколько раз сигнал на приемной стороне громче шума, к нему примешиваемого. При этом помнят о том, что увеличение громкости сигнала сверх предела, допускаемого линией, невозможно.

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

Теперь краткое резюме всего изложенного.

  1. Параметры канала (линии), предоставляемого нам, характеризуются центром и шириной полосы пропускания (в норме — 300-3400 герц), уровнем шумов и искажений, и максимальным уровнем сигнала, еще пропускаемого без заметных искажений. Сигнал/шум — это характеристика того, как сигнал прошел через канал, и что получилось на приемном конце.
  2. Параметры сигнала модема характеризуются центром и шириной спектра (частота несущей плюс и минус половина символьной скорости), и глубиной модуляции, то есть числом возможных градаций состояний сигнала.
  3. Параметры канала ограничивают в принципе скорость передачи информации с одной стороны, а модем работает тем лучше и тем быстрее ее передает, чем полнее он занимает канал, и чем ближе параметры генерируемого им сигнала совпадают с возможностями, предоставляемыми каналом.
  4. Кроме предыдущего пункта, важное значение имеют помехи: при прочих равных условиях, они вынуждают модем делать передаваемые символы более грубыми, и передавать их более длительное время, то есть снижать в результате скорость передачи информации.
  5. Запомните на будущее две простые формулы: 1. Символьная скорость умноженная на глубину модуляции есть битовая скорость. 2. Ширина канала, потребная для передачи сигнала, равна символьной скорости, при этом центр полосы пропускания канала равен частоте несущей.

Часть вторая — что такое телефонная линия, и как она мешает нам жить.

Телефонная линия представляет собой пару проводов, которые идут от Вас на АТС, некоторое оборудование на АТС, называемое абонентским комплектом, затем межстанционное оборудование, которое передает сигнал на удаленную АТС, там имеется удаленный абонентский комплект, от которого идет пара проводов до провайдера(к примеру). Таким образом, первая интересная нам особенность состоит в том, что телефонная линия — это не просто два провода, которые у Вас на столе начались, а у провайдера — закончились. К сожалению, все намного сложнее и капризнее. Что же предоставляет Вам АТС при помощи всей этой цепочки? Идеально — некий канал для передачи аналоговой информации, то есть — голоса, с некими нормированными параметрами, такими как затухание сигнала, полоса пропускания, уровень шумов, динамический диапазон и т.п., то, что в сумме своей отличает хорошую линию от плохой. В реальной же жизни, кроме всего упомянутого по ГОСТу, как правило, Вам "предоставляются" в нагрузку еще одно или несколько из:

  1. Чрезмерное ослабление сигнала (слышно тихо).
  2. Импульсные помехи (трески, щелчки, резкие изменения громкости и т.п.)
  3. Постоянные помехи (фон, разговор соседей, музыка от радио, гудение)
  4. Перекос АЧХ (глухой звук, плохая разборчивость)
  5. Нелинейные искажения (дребезжащий голос)
  6. Дрожание фазы и амплитуды (как пленка проскакивает на магнитофоне)
  7. Смещение спектра сигнала (не слышно ухом)
  8. Медленное уплывание параметров линии (не слышно ухом)

К чему все это приводит? Если кратко, то к очень простой вещи: модем кодирует каждый байт информации определенным состоянием сигнала, который он передает на другую сторону. Удаленный модем смотрит на линию, определяет форму, фазу, амплитуду и т.п. сигнала, и декодирует это опять в байты информации. Если линия вносит искажения, то состояния сигнала становятся плохо различимыми на удаленной стороне, или, хуже того, начинают путаться друг с другом, и удаленный модем неправильно декодирует информацию, получая неверный результат.

А откуда это все берется? Оттуда же, откуда и разбитые дороги. И исчезнет тогда же. Причем, как правило, основные проблемы вносят либо соединительные провода до Вас, либо межстанционная аппаратура. Первое обычно трещит, а второе — искажает и ослабляет. Мы рассмотрим далее, как можно бороться и с тем, и с другим.

Но стоит обратить внимание и на еще один источник проблем. Это, как ни странно, то, что стоит у Вас, у абонента! Первейший враг модемной связи и источник снижения ее качества — это разного рода офисные АТС. Причем, вовсе не кустарные поделки наших или китайских умельцев, а именно дорогие миниАТС ведущих фирм. Кустарные-то поделки обычно представляют в основном реле, которые коммутируют ваш телефон на городскую линию и все, а вот серьезные миниАТС обычно имеют еще довольно много сервиса, который реализуется за счет дополнительных подключений к сигнальным проводам. Вы можете быть сильно удивлены, увидев лично разницу в работе между прямым подключением модема к телефонным проводам, и подключением через офисную станцию.

Вторым врагом в Вашем доме являются телефоны, подключенные не после модема, для чего у него сделано второе гнездо, а параллельно модему. То, что на телефоне повешена трубка, ничего не меняет: он же в состоянии воспринимать звонок и звенеть, а, стало быть, подключен к телефонной линии и искажает сигнал на ней. Особенно плохо с советскими АОНами, которые не только портят сигнал пассивно, но в придачу еще и активно подмешивают в линию фон от сети, шумы от низкокачественной собственной электроники и т.п. Вообще, гениальное, как все простое, правило: приходящий к Вам сигнал нельзя улучшить, подключая к линии что-либо, его можно либо ухудшить, либо, в лучшем случае, не ухудшить. Уж что пришло - то Ваше, но больше Вы из линии не добудете, что к ней ни подключайте. Можно либо сохранить то, что пришло, и отдать это на обработку модему, либо сначала испортить. Всякие поделки из серии "улучшатель приема факсов" не выдерживают никакой критики, и могут пригодиться лишь для самых дешевых факсов и модемов, поскольку в любом серьезном модеме электроники на входе стоит на порядок больше, чем в этих поделках, и ничего нового они туда добавить не могут. Если их авторы рекламируют улучшение параметров сигнала, например сигнал/шума, то, следуя логике, если поставить их подряд штук 100, то можно так его улучшить, что модемы начнут работать быстрее локальной сети! Мы оставим за пределами нашего цикла рассмотрение идей с вечными двигателями и прочими внешними улучшателями сигнал/шумов.

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

Часть третья — почему модемы стоят по-разному.

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

  1. Насколько дорогая аппаратура стоит в его аналоговой части, то есть насколько качественно он может принять тот сигнал, который пришел к Вам по проводам от удаленного модема, без потерь и искажений. Очевидно, что если сигнал пришел очень тихим, то модем должен быть весьма чувствительным и иметь очень низкий уровень собственных шумов, чтобы не испортить то, что пришло перед обработкой его процессором. Какими бы задумчивыми ни были алгоритмы обработки сигнала далее, но если во входной части модема стоит маленький трансформатор, малоразрядный АЦП или дешевая схема набора номера и удержания снятой трубки, пришедший сигнал будет зашумлен и искажен, то есть — безвозвратно испорчен, еще до начала его обработки процессором модема. В конечном итоге, важно соотношение сигнал/шум не на проводе, который входит в Вашу комнату, а уже в цифровом потоке, поступающем на вход процессора модема. Кто это соотношение испортил — межстанционные соединения, провода до Вас, Ваш любимый телефон с АОН, стоящий параллельно, или дешевый АЦП на модеме — не важно. Важно, что то, что поступает на обработку процессору модема, уже будет иметь потери информации, возникшие из-за всех этих воздействий.
  2. Насколько сложные и ресурсоемкие алгоритмы цифровой обработки сигнала используются. Допустим, на вход процессора модема поступил (о чудо!) сигнал совсем не искаженный у Вас в комнате, такой, какой пришел к Вам в комнату. Кроме безвозвратных потерь информации, то есть снижения сигнал/шум, есть еще искажения информации, которые еще можно восстановить. Например, перекос АЧХ дает эффект снижения уровня верхних частот в сигнале, и это в некотором объеме можно восстановить путем правильного фильтрования сигнала. Другой способ восстановления потерянной информации — использование избыточности, заложенной в протокол передачи данных, для коррекции ошибок. Одно из важнейших и самое ресурсоемкое устройство в модеме — треллис-декодер, который позволяет оценивать не символы по отдельности, а набор символов как единое целое, компенсируя недостоверность единичного символа за счет того, что последовательные символы связаны друг с другом (но не все последовательности символов разрешены). Чем качественнее (соответственно, скорее всего дороже) модем, тем больше этих и дополнительных циклов обработки сигнала он проводит. Тем более искаженный сигнал еще может быть правильно обработан, и тем более резкие помехи еще не вызовут срыва синхронизации.
  3. Насколько адекватно поведение модема в сложной помеховой обстановке.

Часть модема, называемая супервизором, может только понижать скорость передачи при увеличении помех на линии, а может гораздо более детально отслеживать все, что происходит, и так варьировать параметры модуляции сигнала, чтобы в минимальной степени снижать скорость передачи, наиболее точно подстраиваясь под особенности данной телефонной линии. Как бы хорошо ни работала аналоговая часть модема и алгоритмы цифровой обработки, но если параметры модуляции будут выбраны неадекватно, или же модем будет плохо отслеживать изменение состояния линии и не вовремя их изменять, то о близкой к теоретически-максимальной скорости передачи информации можно смело забыть. Причем, если первые два пункта можно строить по принципу "сколько есть денег, на столько и припаяем/напишем", то адекватность поведения модема на линии измеряется не только объемом затраченных на разработку или заплаченных клиентом денег, поскольку ведь ни модем, ни его разработчики никогда не знают точно, что произойдет на линии через пять секунд, и не могут выбрать единственно верное поведение в данный момент. Поэтому задача определения поведения модема на линии решается в первую очередь на основании знаний особенностей телефонии в данном конкретном месте, и написании тысячи алгоритмов и алгоритмиков, которые пытаются распознать типичные проблемные ситуации и выбрать адекватное решение. Надо ли говорить, что ни одна, даже самая ведущая западная фирма никогда не сможет сделать ничего похожего, поскольку не знает (а как правило — и не желает знать) всего того, чем отечественная телефония отличается от нормальной. В отличие от автомобиля, где большие колеса и крепкая подвеска решают проблемы плохих дорог, модем должен именно подстраиваться под линию, в нем нельзя просто поставить передатчик на два киловатта и приемник на полмикровольта, чтобы справиться с нашими плохими линиями.

Как модем борется с проблемами на линии.

1. Чрезмерное ослабление сигнала (слышно тихо).

Для того, чтобы основные подсистемы модема работали хорошо, необходимо, чтобы сигнал на их входе был в области допустимых значений, т.е. не переполнял разрядную сетку и не был слишком мал.

Для нормирования мощности сигнала на входе, практически все модемы имеют систему АРУ (Автоматическую Регулировку Усиления), призванную приводить мощность сигнала к требуемому последующими системами модема уровню. Базовая идея системы достаточно проста — необходимо периодически измерять мощность сигнала на входе и так подстраивать коэффициент усиления (множитель, на который умножается входной сигнал в простейшем случае), чтобы после этого коэффициента мощность сигнала соответствовала ожидаемой. Т.е. происходит ослабление или усиление входного сигнала.

Очевиден тот факт, что при усилении тихого сигнала вместе с полезным сигналом во столько же раз усиливаются и шумы, т.е., соотношение сигнал/шум улучшено быть не может в любом случае. А вот ухудшено может быть легко. Например, если АРУ выполнено исключительно в цифровой части модема (после АЦП), и АЦП имеет небольшое количество разрядов, возможно, что подавляющая часть разрядов АЦП будет использоваться только при работе с очень громкими сигналами, а на обычной телефонной линии реально "работать" будут немного разрядов, например, как будто использован не 16-разрядный АЦП, а 3-разрядный. Небольшое количество разрядов (и, соответственно, распознаваемых уровней напряжения для АЦП) может привести к тому, что цифровой сигнал будет неточно соответствовать аналоговому сигналу на входе модема. При этом неизбежно ухудшение связи. Эффект очень похож на добавление шума в линию, с мгновенными значениями равными половине разницы между соседними уровнями квантования — недаром такие шумы называются "шумами квантования". Для уменьшения шумов квантования АЦП должен иметь достаточно высокое разрешение (количество разрядов) для того, чтобы обеспечивать требуемую точность во всем диапазоне входных сигналов (с учетом работы внутреннего АРУ). Иногда в "продвинутых" модемах в аналоговую часть встраиваются системы управления усилением входного сигнала еще до АЦП (для увеличения количества разрядов АЦП, реально используемых при работе модема).

2. Эхо ("заворот" собственного сигнала назад или отражения от дальних объектов).

Практически все скоростные протоколы передачи данных, предназначенные по телефонной сети, используют один и тот же диапазон частот и для передачи и для приема (напомним, что современные протоколы, такие как V.32 и V.34, являются дуплексными, т.е., передача ведется одновременно в двух направлениях). Несмотря на то, что два сигнала в одном диапазоне, казалось бы, должны мешать друг другу, этого не происходит. Дело в том, что при правильном согласовании сопротивления модема, телефонного кабеля и станционного оборудования, модем не должен слышать сигнала, который сам передает. Между АТС, как правило, используется каналообразующая аппаратура, в которой прием и передача вообще разделены. И если удаленный модем, кабель от него до абонентского комплекта и сам абонентский комплект также правильно согласованы, то передатчик нашего локального модема в принципе не должен мешать работать его приемнику. На практике, к сожалению, все не так просто. Из-за рассогласованности сопротивлений аппаратуры и кабелей, "заворот" сигнала передатчика на свой же приемник может во много раз превышать сигнал удаленного модема, особенно, если он сильно ослаблен из-за плохого состояния кабелей или разрегулированности аппаратуры АТС. Кроме того, возможно возвращение задержанного по времени "эха" сигнала, возникающего по той же причине, с противоположного конца. Возможно даже наличие нескольких "эхо", возникающих благодаря некачественным стыкам кабелей, участкам переприема, и т.п. К счастью, большинство причин возникновения "эхо" стационарны (не изменяются или медленно меняются во времени), и могут быть описаны линейной моделью канала. Это делает возможным для модемов оценить вид "эхо" на этапе установления соединения (или после установления соединения соединения в ходе "ретрейна"), построить модель канала, и в дальнейшем, зная, какой сигнал передается, рассчитывать ожидаемое "эхо" и вычитать его из принимаемого сигнала, делая возможным распознавание сигнала удаленного модема даже на фоне достаточно громкого "заворота" собственного сигнала.

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

В худшем случае, если остаточная ошибка будет настолько велика, что не позволит нормально детектировать сигнал удаленного модема, связь установить не удастся.

3. Перекос АЧХ (глухой звук, плохая разборчивость)

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

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

Компенсация искажений на приемной стороне эквалайзером имеет свою оборотную сторону. Если мы поднимаем частоты, сильно ослабленные каналом, происходит также усиление шумов на этих частотах. Для сохранения соотношения сигнал-шум в современных протоколах (например, V.34) применяют предыскажение сигнала на передающей стороне, например, подъем верхних частот (продолжая аналогию с бытовой аудиоаппаратурой, можно заметить, что популярная в свое время в бытовой аналоговой звукозаписи система шумоподавления "Dolby B" идет тем же путем — при записи на магнитофон высокие частоты искусственно усиливаются, при воспроизведении — ослабляются, в результате высокочастотные шумы магнитофона меньше слышны при воспроизведении). В протоколе V.34 предусмотрено два вида предыскажений сигнала при передаче: "pre-emphasis" и "non-linear precoding". Первое есть ни что иное, как использование одного из нескольких предусмотренных стандартом фиксированных фильтров, в большей или меньшей степени поднимающих верхнюю часть спектра сигнала при передаче. Второй вид предыскажений ("нелинейный прекодер") использует настраиваемые коэффициенты, определяемые принимающим модемом при установлении соединения с тем, чтобы внести в сигнал предыскажения, по возможности точно компенсирующие искажения, вносимые каналом связи. Фактически, это "кусочек" эквалайзера принимающего модема, перенесенный на передающую сторону. Слово "нелинейный" объясняется тем, что при внесении предыскажений прекодер может "скачкообразно" заменить передаваемые символы с целью гарантирования стабильности фильтра прекодера (поскольку последний имеет обратную связь).

Не следует путать "нелинейный прекодер" с еще одной "нелинейной" штукой — "нелинейным кодированием созвездия", которое некоторые модемы называют "warping". Последнее есть нелинейное (точнее, близкое к логарифмическому) отображение передаваемых символов, при котором символы, имеющие большую амплитуду, оказываются на большем расстоянии друг от друга, а имеющие относительно небольшую амплитуду — оказываются расположенными более плотно. Возможность такого кодирования предусмотрена на таких протоколах, как V.34, а также V32Terbo. "Нелинейное кодирование созвездия" производится для того, чтобы расстояния между символами примерно соответствовали уровням квантования телефонного сигнала, передаваемого через цифровую каналообразующую аппаратуру, получившую большое распространение во всем мире. Цифровые телефонные системы передают звук в цифровом виде, в аналоговую форму он преобразуется только на "концах" канала, где происходит сопряжение с аналоговой аппаратурой и собственно абонентской линией с использованием ЦАП и АЦП (почти как в модеме). А поскольку эти системы изначально разрабатывались и используются в первую очередь для передачи человеческого голоса, их АЦП и ЦАП обычно используют такую сетку квантования уровней напряжения в линии, в которой чем больше напряжение — тем дальше друг от друга располагаются уровни квантования. Такая "логарифмическая" шкала примерно соответствует чувствительности человеческого уха, что позволяет при использовании относительно небольшого количества уровней закодировать звук, сохраняя субъективное его качество.

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

4. Постоянные помехи (фон, гудение, разговор соседей, музыка от радио)

Помехи (шум, посторонние звуки) в канале складываются с сигналом передающего модема, в результате принимаемые на противоположной стороне символы отличаются от того, что должно было бы быть получено. И, если искажения АЧХ канала модем может оценить и компенсировать, то случайные воздействия на сигнал из-за помех предсказать и учесть невозможно в принципе. Если помехи имеют локализованный частотный спектр, т.е., не совсем случайны — например, помехи в области нижних частот из-за "помех питания" — 50Гц и их гармоники, или высокочастотные шумы с верхней стороны спектра, то модем может попытаться выбрать для работы такую полосу частот, которая не перекрывается со спектром шумов. Например, протокол V.34 для этого имеет возможность некоторого варьирования ширины используемой для работы полосы частот (выбором одной из 6 символьных скоростей) и перемещения ее "вверх" или "вниз" по спектру путем выбора одной из двух несущих. Возможность использования той или иной полосы частот для работы выбирается на этапе установления соединения или "ретрейна", по результатам тестирования линии. Другие стандартные протоколы не имеют и таких возможностей. К сожалению, для обеспечения высокой скорости передачи требуется широкая полоса сигнала, поэтому, если шумы не локализованы в нижней или верхней части спектра, скорее всего, их полоса перекроется с полосой, используемой для передачи данных, даже если шум узкополосный. Иногда это приводит к полной невозможности использования скоростного протокола, типа V.34 или V.32. В таких случая, возможно, удастся передать данные с использованием низкоскоростных протоколов (например, V.22/V.22bis), обеспечивающих передачу со скоростями 1200 или 2400бит/с, или даже V.21 (300бит/c).

Если шумы находятся в той же полосе частот, что и полезный сигнал, разделить их невозможно и они неизбежно приведут к искажению символов при приеме. Тем не менее, если шумы не очень велики, возможно, что путем уменьшения "глубины модуляции" т.е. увеличения расстояния между символами за счет уменьшения количества используемых символов удастся добиться того, что искажения будут меньше расстояний между символами, и последние будут детектироваться правильно. При этом, конечно, снизится скорость передачи данных, поскольку для кодирования данных будет использоваться меньшее количество символов. До появления V.34 (например, на протоколе V.32), изменение скорости передачи (глубины модуляции) было единственным "рычагом", позволяющим учесть особенности линии и найти компромисс между устойчивостью работы и скоростью передачи. Собственно, и на V.34 нахождение этого компромисса остается одним из главнейших условий качественной работы модема. Задача усложняется тем, что шумы зачастую пропадают и появляются вновь, изменяются по своей мощности, а модем должен это отслеживать и в идеале в каждый момент времени обеспечивать оптимальный баланс устойчивости связи и скорости передачи данных.

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

5. Импульсные помехи (трески, щелчки, резкие изменения громкости и т.п.)

Зачастую помехи носят импульсный характер, т.е. имеют вид очень кратковременных выбросов сигнала, тресков. Специфика таких помех заключается в их обычно большой амплитуде (больше среднего уровня шумов канала) и малой продолжительности. Практически все современные скоростные протоколы (V.32 и V.34) имеют средства для борьбы с кратковременными (порядка одного или нескольких символов) сериями "больших шумов". Это — корректирующие коды. В рассматриваемых протоколах нашли применение так называемые сверточные коды. Суть кодирования заключается в том, что передаваемые символы формируются не независимо "каждый сам по себе", а каждый последующий символ зависит как от данных, которые он кодирует, так и от текущего состояния кодера, т.е., некоторой предыстории. В каждом конкретном состоянии кодера возможно использование только некоторого подмножества символов. В результате не все последовательности символов разрешены. Код называется "сверточным", потому что кодирование происходит непрерывно, путем "сворачивания" поступающих на вход кодера информационных и избыточных битов, выбирающих разрешенные в каждом состоянии подмножества символов (другая разновидность корректирующих кодов — "блочные" коды, в которых информация кодируется блоками, с добавлением в каждый блок избыточных символов — не нашла применения в современных модемных протоколах).

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

Отрицательным моментом использования корректирующих кодов является большая вычислительная сложность их декодирования. Обычно, принимающий модем должен рассматривать непрерывно несколько гипотез о принимаемых последовательностях символов и на каждом шаге выбирать из них лучшую. Для достижения компромисса между помехоустойчивостью и вычислительной сложностью, стандарт V.34 предусматривает три вида корректирующих кодов возрастающей сложности (и, соответственно, помехозащищенности). Модем, удовлетворяющий стандарту V.34, может иметь декодер не на все три кода, или может не обеспечивать работу более сложных декодеров на старших символьных скоростях (требующих большего быстродействия процессора модема). Кроме того, длина анализируемой последовательности символов может быть уменьшена для экономии памяти или быстродействия. Все это может привесит к тому, что V.34 модем не реализует всего потенциала, заложенного в протоколе.

6. Нелинейные искажения (дребезжащий голос)

К сожалению, нелинейные искажения в общем случае необратимы, и, соответственно, не могут быть адекватно компенсированы принимающим модемом. Одна из наиболее типичных причин нелинейных искажений — искажения из-за перегрузки канала. Если передаваемый сигнал имеет слишком сильную амплитуду, он может быть нелинейно ограничен сверху - грубо говоря, "обрезан". При этом форма сигнала может измениться достаточно сильно. Единственное решение, которое может помочь в этом случае — уменьшить амплитуду сигнала на передаче, чтобы не вызывать перегрузок. Уменьшение мощности передатчика имеет и другой плюс — поскольку эхогаситель работает не идеально, часть передаваемого сигнала все же попадает в приемник в виде шумов. Уменьшение мощности передатчика уменьшит и это остаточное эхо, что улучшит условия работы собственного приемника. Многие модемы предусматривают возможность ручной регулировки уровня передачи. Протокол V.34 предусматривает возможность уменьшения уровня передачи передающим модемом по рекомендации принимающей стороны. Наиболее "продвинутые" модемы могут также иметь "интеллектуальные" системы управления мощностью своего передатчика в зависимости от условий на линии, преимущественного направления передачи данных и т.д.

7. Дрожание фазы и амплитуды (как пленка проскакивает на магнитофоне)

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

8. Смещение спектра сигнала (обычно не слышно ухом)

Смещение спектра сигнала вверх или вниз возможно из-за расстроенности генераторов аналоговой каналообразующей аппаратуры. При этом временная шкала не искажается, но происходит равномерный сдвиг всех частот вверх или вниз, обычно относительно несильный, такой, что человеческое ухо этого не слышит. Например, несущая становится не 1800Гц, а 1805Гц. Модемы обычно имеют подсистему синхронизации частоты, которая отслеживает и компенсирует сдвиг частоты.

9. Медленное уплывание параметров линии (не слышно ухом)

Под параметрами линии мы здесь понимаем, прежде всего, то, что влияет на работу модема и, соответственно, оценивается и корректируется его подсистемами. К таковым относятся, например, коэффициент усиления (или затухания) сигнала в канале, амплитудно- и фазочастотная характеристика канала, вид эха, сдвиг частоты. Большинство жизненно важных параметров определяется на этапе установления соединения (или ретрейна), в первую очередь — вид АЧХ (настройка эквалайзера) и эха (настройка эхогасителя). Для этого протоколом выделяются специальные фазы, поскольку для того, чтобы настроить эхогаситель, необходимо "молчание" с противоположной стороны. И наоборот, при настройке эквалайзера полезно выключить свой передатчик, чтобы свой сигнал не добавлялся к искажениям канала.

В некоторых случаях параметры канала могут медленно меняться с течением времени, например, из-за изменения температуры блоков каналообразующей аппаратуры. Модем пытается в ходе своей работы отслеживать эти медленные изменения и корректировать, соответственно, свою работу. Это он может делать более или менее успешно. Обычно, достаточно легко парировать небольшие изменения затухания канала, небольшие изменения АЧХ (требуемых настроек эквалайзера), изменения смещения несущей. Известная проблема при разработке подобных следящих систем — найти компромисс между двумя противоречивыми требованиями: обеспечить, чтобы система успевала отслеживать достаточно быстрые изменения контролируемого параметра с одной стороны, и не спешила считать таковыми изменениями кратковременные "шумовые" выбросы параметра, с другой стороны. Еще хуже обычно удается следить за плаванием характеристик эха канала, поскольку постоянно присутствующий сигнал удаленного модема обычно много громче остаточного эха (подсистема работает в условиях, когда шум много превышает полезный сигнал).

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

Слишком частые ретрейны несут с собой две неприятные вещи — во-первых, передача данных в обе стороны на этот период останавливается. Может оказаться, что работа на большей скорости с меньшей надежностью "не стоит свеч" из-за того, что модем большее время проводит в ретрейнах, чем передавая данные (заметим, что на V.34 время одного ретрейна может достигать нескольких секунд). Во-вторых, ретрейн на V.34 — довольно сложная логически процедура, имеющая несколько фаз, в ходе которых используются различные сигналы для измерения параметров канала и различные виды модуляций для передачи служебных данных. Поэтому ретрейн может быть "слабым местом" как из-за возникших в "неподходящее" время шумов (не давших возможности распознать вовремя нужный сигнал, например), так и из-за неучтенных особенностей в реализации протокола у локального или удаленного модема. Например, наличие слабого узкополосного сигнала-помехи на самом краю рабочей полосы, не очень сильно мешающего передаче данных, может не дать продетектировать вовремя один из сигналов в ходе ретрейна, из-за чего соединение так никогда и не будет установлено.

 




Дополнительно

ВИКТОРИНА

Шуруповерт GSR 12V-15 FC позволяет

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.