Обновить

Комментарии 16

А для чего вся эта возня по четвертям?

Для устранения любого количества пакетных ошибок (от 0 до 100%) и для стабильной работы в условиях, когда перескок фазы случается два раза за время передачи одного блока

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

Если есть второй канал. Это редко бывает - дефицит частот

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

А как отличить ошибку фазы от изменения сигнала?

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

Это где-то реализовано? Как определить частоту биений? В каких пределах должна быть разница частот? Если так получается проще и надежнее, конечно, этот способ лучше

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

А еще бывает и односторонняя связь

... из-за переключения в режим «обратной работы» при перескоке фазы опорного сигнала.

Возможны разные варианты реализации систем синхронизации ФМ. Например, ФАПЧ на основе схемы Костаса. При модуляции 180 градусов ничего там перескакивать не будет.

Варианты всегда есть. Я добавил еще один, который не использует аналоговую обработку типа ФАПЧ, не нуждается в синхронизации и пилот-сигналах, обеспечивает высокую помехоустойчивость и скорость 0,16 бит/Гц.

По-моему у вас цифры не сходятся:

При использовании ОФМн с такой же длиной блока (32 бита) при такой же интенсивности фазовых сбоев (два скачка на блок) неправильно демоделируются 4 бита, т.е. возникает 12,5% ошибок. При использовании АФМнГК ошибки начинают появляться только при трех и более скачках фазы на блок данных.

В данном случае избыточность 32-5=27 бит. Код Рида-Соломона, с которым вы сравнивали, при такой избыточности гарантировано исправляет 13 бит. А это 40,6%, или 6 сбоев фазы при ОФМн, если все сбои привели к удвоению ошибок.

При большой степени избыточности (n>>k) число исправляемых ошибок t приближается к 50% от длины кодового слова n. Однако существенно большей эффективностью обладают голографический код, описанный здесь.

Цифры говорят, что с существенно меньшей. В 3 раза как минимум.

Особенностью РС-кода (кода Рида-Соломона) является то, что столь высокую исправляющую способность он демонстрирует только для пакетных ошибок. В то же время для большинства цифровых каналов, описываемых моделью двоичного симметричного канала без памяти, характерны случайные ошибки. Если перейти от пакетных ошибок к равномерно распределенным по кодовому слову случайным ошибкам, максимальное число исправляемых РС-кодом ошибок составит t=n/2k-1.

Код Рида-Соломона исправляет число ошибок 50% от числа избыточных символов только для пакетных ошибок (идущих одним непрерывным блоком), со случайными ошибками он справляется гораздо хуже t=n/2k-1. При n=32, k=5 и случайных ошибках РС-код исправит 2 ошибки. Один сбой фазы при ОФМн создает как раз 2 пакетные ошибки и код Рида-Соломона справляется. Два сбоя фазы создают два пакета ошибок, расположенных случайно относительно друг друга и РС-код бессилен.

Формулу "t=n/2k-1" я к сожалению нигде не нашёл, и получить не смог. Да и формула странная - по ней при избыточности в 4 раза код может исправить 1 ошибку за всю жизнь, а избыточность 100% (n=2k) не может исправить ни одной ошибки.

Ладно, с РС-кодом я и сам до конца не разобрался, пусть будет так. Но вот ещё один ваш пример из предыдущей статьи:

Корректирующие способности помехоустойчивого кода, имеющего n = 2^k символов в кодовой комбинации, из которых k символов информационные, оцениваются максимальным количеством ошибок t, которые он может исправить при заданной степени избыточности. Например, для кода Рида-Маллера (РМ-код) t = 2^(k-2)-1, что соответствует исправлению ошибок любого вида, составляющих до 25% длины кодового слова.

Вот эту цифру мне уже удалось получить. Но ведь и 25% - это в 2 раза лучше, чем 12,5%.

Формулу "t=n/2k-1" я к сожалению нигде не нашёл

Формула приведена здесь. Там же есть сравнение исправляющей способности нескольких кодов. Да, РМ-код лучше исправляет случайные ошибки, но не более 25%. РС-код лучше исправляет пакетные ошибки - до 50%. В ОФМн при скачке фазы появляется пакет из двух ошибок и РС-код с ним справляется, если длина блока не менее 32 бит. Если время когерентности достаточно большое, этого достаточно. При малом времени когерентности в блоке появляется два и более пакета ошибок и нужен более мощный код. Или переходить на АФМн. Но в ней при сбое фазы возникает не пара ошибок, а 100% ошибок - инвертируются все последующие биты. Мне известен только один код, исправляющий 100% ошибок - голографический. Это универсальный код, исправляющий все виды ошибок (случайных - до 50%, но больше и не бывает. При увеличении количества они становятся детерминированными). Его недостаток - требуется большая избыточность (более 3). Поэтому выбор вида модуляции (абсолютная или относительная) накладывает ограничения на выбор кода.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации