Перейти к содержанию
    

Фреймовая синхронизация DVB-S2

Уже понял. Написал программу которая кодирует ридом-маллера, скремблирует, модулирует, умножает текущий на компл.сопр. следующий отсчет. В итоге получил одинаковую последовательность для всех видов модуляции. Все поддтвердилось.

Для определения кода вида модуляции предполагаю следующее: закодировать все виды модуляции кодом рида-маллера, заскремблировать, получить 64 последовательносnb по 64 бита, далее замодулировать PI/2BPSK, получить 64 последовательности из 64-х комплексных чисел. Взять каждый второй отсчет. Это и будут отводы коррелятора для определения PLS. Т.е. параллельно работают 64 коррелятора по 32 комплексных отвода. Там где определяется максимум есть код вида модуляции + пилот. Мои соображения насчет определения PLS верны? И еще: описаная схема довольно громоздка. Может есть какой способ ее сократить о котором я не догадываюсь?

Смотрите Вашу предыдущую тему

Делаете все в точности, как описал Amurak

1. По SOF заголовку определяете начало фрейма и, соответственно, начало PLS фрейма

2. Далее то, что Вы написали:

Демодуляция pi/2 BPSK;

далее следующие 64 бита дескремблирую;

из этих 64-х дискремблированных бит беру каждый второй;

эти 32 бита декодирую из кода Рида-Маллера;

получаю 5 бит - MODCOD и один бит поля TYPE - этот бит соответствует типу фрейма (short/normal)

3. Еще один бит декодируется мажоритарно из исходных дескремблированных 64-х бит и соответствует наличию/отсутствию пилотов

Все, ничего там коррелировать с PLS фреймом не надо. Сам PLS заголовок можно декодировать корреляционно, т.к. код РМ ортогонален

 

 

Сейчас Вы выполнили пункт 1, только для определения начала фрейма использовали SOF+PLSC. Более того,

помимо начала кадра, можно определить: <...> по знаку суммы с выхода PLSC-коррелятора (с учетом инверсии спектра) - наличие/отсутствие пилотов.
(т.е. таким образом можно выполнить пункт 3)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите Вашу предыдущую тему

Делаете все в точности, как описал Amurak

1. По SOF заголовку определяете начало фрейма и, соответственно, начало PLS фрейма

2. Далее то, что Вы написали:

Демодуляция pi/2 BPSK;

далее следующие 64 бита дескремблирую;

из этих 64-х дискремблированных бит беру каждый второй;

эти 32 бита декодирую из кода Рида-Маллера;

получаю 5 бит - MODCOD и один бит поля TYPE - этот бит соответствует типу фрейма (short/normal)

3. Еще один бит декодируется мажоритарно из исходных дескремблированных 64-х бит и соответствует наличию/отсутствию пилотов

Все, ничего там коррелировать с PLS фреймом не надо. Сам PLS заголовок можно декодировать корреляционно, т.к. код РМ ортогонален

 

Да Вы все верно пишите. Только вот демодуляция pi/2 bpsk выполняется просто (принятием решений в режиме ФМ4) если стоит "созвездие" ФМ4, на выходе получаем битовую последовательность (из одного бита), которую и обрабатываю. А вот если синхронизма по несущей нет (вместо созвездия круг), то демодуляция pi/2 bpsk уже не так тривиальна, но видимо, возможна. Я пока с этим не разбирался.

А подскажите дальнейшие действия: предположим я определил начало посылки и вид модуляции. Дальше я включаю соответствующую схему восcтановления несущей? А время вхождения в синхронизм?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да Вы все верно пишите. Только вот демодуляция pi/2 bpsk выполняется просто (принятием решений в режиме ФМ4) если стоит "созвездие" ФМ4, на выходе получаем битовую последовательность (из одного бита), которую и обрабатываю. А вот если синхронизма по несущей нет (вместо созвездия круг), то демодуляция pi/2 bpsk уже не так тривиальна, но видимо, возможна. Я пока с этим не разбирался.

А подскажите дальнейшие действия: предположим я определил начало посылки и вид модуляции. Дальше я включаю соответствующую схему восcтановления несущей? А время вхождения в синхронизм?

Демодуляция пи/2 выполняется точно также как и обычная bpsk, столь лишь разницей, что перед принятием решения надо дополнительно довернуть каждый символ на пи/2. Если демодулировать в режиме QPSK, то будете терять в помехоустойчивости 3 дб. Насчет синхронизма: в приведенной статье отмечается, что предлагаемая схема фреймовой синхронизации SOF+PLSC на порядок быстрее, чем классическая схема синхронизации по SOF. Почему? Потому, что в ее основе лежит принцип дифференциального детектирования, которое не зависит от начальной отстройки по частоте (в разумных пределах, конечно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Демодуляция пи/2 выполняется точно также как и обычная bpsk, столь лишь разницей, что перед принятием решения надо дополнительно довернуть каждый символ на пи/2. Если демодулировать в режиме QPSK, то будете терять в помехоустойчивости 3 дб. Насчет синхронизма: в приведенной статье отмечается, что предлагаемая схема фреймовой синхронизации SOF+PLSC на порядок быстрее, чем классическая схема синхронизации по SOF. Почему? Потому, что в ее основе лежит принцип дифференциального детектирования, которое не зависит от начальной отстройки по частоте (в разумных пределах, конечно).

Т.е. Вы имеете ввиду что я доворачиваю каждый принятый символ на 90 гр. и сразу принимаю решение в режиме BPSK, а фактически беру знак одного из каналов. В итоге получаю однобитный поток, в котором корреляторами ищу PLSC. Так? Ну тогда как то все просто, т.к. корреляторы будут строиться из операции "xor". И почему бы тогда и SOF не искать таким же способом, с поправкой на возможную инверсию спектра?

А далее чего делать? Включить соответствующую схему восстановления несущей для приема пакета данных (вид модуляции ведь определен ранее)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. Вы имеете ввиду что я доворачиваю каждый принятый символ на 90 гр. и сразу принимаю решение в режиме BPSK, а фактически беру знак одного из каналов.

да, можно и по знакам.

В итоге получаю однобитный поток, в котором корреляторами ищу PLSC. Так? Ну тогда как то все просто, т.к. корреляторы будут строиться из операции "xor". И почему бы тогда и SOF не искать таким же способом, с поправкой на возможную инверсию спектра?

А далее чего делать? Включить соответствующую схему восстановления несущей для приема пакета данных (вид модуляции ведь определен ранее)?

я делаю по-другому: на первом этапе грубо определяю частотную отстройку, устраняю ее и затем только запускаю коррелятор для поиска фреймовой синхронизации. коррелятор "трудится" по поиску только SOF хедера в формате плавучки при 2-х отсчетах на символьный интервал. без предварительного восстановления несущей коррелятор по SOF неработоспособен, в отличие от схемы SOF+PLSC из приведенной статьи, которая допускает начальную отстройку по несущей потому, что основана на принципе дифференциального детектирования. В этом случае после определения вида модуляции (модкода) можно запускать ФАПЧ , которая отработает непосредственно по пакету данных (плюс пилоты в помощь, если они есть). Т.е. Вам надо определится какую из схем фреймовой синхронизации будете использовать SOF или SOF+PLSC. Я теперь начал больше склоняться к схеме SOF+PLSC. К сожалению, эта статья попалась мне только сейчас.

 

искать и обрабатывать PL Header можно и по бинарному потоку, но теряется помехоустойчивость всей схемы фреймовой синхронизации. хотя может оказаться, что и этого достаточно. к слову, код Рида-Маллера (32,6) способен исправить t=7 - ми кратную ошибку (dmin = 16).

Изменено пользователем Serg76

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

без предварительного восстановления несущей коррелятор по SOF неработоспособен, в отличие от схемы SOF+PLSC из приведенной статьи. В этом случае после определения вида модуляции (модкода) можно запускать ФАПЧ , которая отработает непосредственно по пакету данных. Вам надо определится какую из схем фреймовой синхронизации будете использовать SOF или SOF+PLSC.

 

искать и обрабатывать PL Header можно и по бинарному потоку, но теряется помехоустойчивость всей схемы фреймовой синхронизации. хотя может оказаться, что и этого достаточно. к слову, код Рида-Маллера (32,6) способен исправить t=7 - ми кратную ошибку (dmin = 16).

Т.е. коррелятор SOF+PLSC у Вас служит для поиска заголовка, а мод.код "достаете" обрабатывая бинарный поток? Я реализовал (правда пока не опробывал) определение вида модуляции коррелятором PLSC (32 коррелятора по 32 отвода в комплексном виде), схема очень тяжела для ПЛИС. Есть мнение что нужно переделать ее в бинарный вид. И тогда использовать Ваш вариант: SOF+PLSC для начала заголовка и обработку битового потока для определения вида модуляции. И, кстати, наверное можно использовать только коррелятор по PLSC для определения начала заголовка если максимальный выход с 32 корреляторов еще сравнить с некоторым порогом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. коррелятор SOF+PLSC у Вас служит для поиска заголовка, а мод.код "достаете" обрабатывая бинарный поток?

Да, коррелятор SOF+PLSC служит для поиска PL Header, т.е. для поиска начала фрейма. после этого сразу декодирую модкод из этого же заголовка, но представленного бинарным потоком (жесткие решения pi/2 демодулятора). для увеличения помехоустойчивости можно применить мягкое декодирование, в данном случае это несильно усложнит обработку, РМ код декодируется достаточно просто как в хардеке, так и софтдеке. Единственное, при реализации на ПЛИС в софтдеке обработка усложнится за счет увеличенной разрядности входных отсчетов.

 

Я реализовал (правда пока не опробывал) определение вида модуляции коррелятором PLSC (32 коррелятора по 32 отвода в комплексном виде), схема очень тяжела для ПЛИС.

в этом нет никакой необходимости. в который раз обращаяю Ваше внимание на приведенную в статье схему: В ЕЕ ОСНОВЕ ЗАЛОЖЕН ПРИНЦИП ДИФФЕРЕНЦИАЛЬНОГО ДЕТЕКТИРОВАНИЯ. а это значит, что какой бы модкод не был закодирован в PLS фрагменте, после его прохождения через диффкодер на выходе будем получать константное значение. ВСЕГДА!!!! а если точнее, то через такт, поэтому в той части схемы, которая отвечает за корреляцию PLS, отводы взяты через один такт, а в части схемы, относящейся к корреляции SOF отсчеты берутся по-тактно. Чтобы стало еще понятнее посмотрите на 64 бита с выхода кода РМ. здесь два варианта: каждый второй бит в этой последовательности либо повторяет предыдущий, либо инверсный к нему. и подумайте что будет с этой последовательностью, если мы ее обработаем по mod2, т.е. осуществим "xor"? если же обработка происходит в "плавучке" - квадратурном потоке, то эквивалентом операции "xor" будет служить умножение отсчетов на задержанное комплексно-сопряженное z[2i]z[2i+1] и результатом опять будет последовательность констант, потому что умножение комплексного отсчета на ему сопряженное есть квадрат модуля (дословно из статьи: in the modulated domain, the differential z[2i]z[2i+1] is equal to a constant)

 

Есть мнение что нужно переделать ее в бинарный вид. И тогда использовать Ваш вариант: SOF+PLSC для начала заголовка и обработку битового потока для определения вида модуляции.

начните с этого, если не хватит помехоустойчивости - перейдете в домен мягких решений.

 

и уже после того, как определите конфигурацию фрейма, можно запускать ФАПЧ , которая будет работать непосредственно по пакету данных, т.е. получаем режим NDA + pilot.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ЕЕ ОСНОВЕ ЗАЛОЖЕН ПРИНЦИП ДИФФЕРЕНЦИАЛЬНОГО ДЕТЕКТИРОВАНИЯ. а это значит, что какой бы модкод не был закодирован в PLS фрагменте, после его прохождения через диффкодер на выходе будем получать константное значение. ВСЕГДА!!!!начните с этого, если не хватит помехоустойчивости - перейдете в домен мягких решений.

и уже после того, как определите конфигурацию фрейма, можно запускать ФАПЧ , которая будет работать непосредственно по пакету данных, т.е. получаем режим NDA + pilot.

Я разобрался с "фишкой" диффкодера и все сказанное Вами подтвердилось по результатам программы. Я же имел ввиду что реализовал 32 коррелятора на мод код. без применения диф. кодирования. Взял 5 бит вида модуляции + пилот + длина кадра, закодировал Маллером, заскремблировал, замодулировал (не применяя усножение на компл. сопр отсчет), взял каждый второй отсчет, в итоге получил уникальный для каждого вида модуляции набор из 32-х комплексный чисел вида: (1+j), (-1-j). Во это и есть отводы корреляторов. Вроде должна работать. Но видимо проверять нет смысла - Ваш вариант предпочтительней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я разобрался с "фишкой" диффкодера и все сказанное Вами подтвердилось по результатам программы. Я же имел ввиду что реализовал 32 коррелятора на мод код. без применения диф. кодирования.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...