реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Фреймовая синхронизация DVB-S2, Алгоритм фреймовой синхронизации DVB-S2
masverter
сообщение Jun 22 2017, 08:38
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 26-02-13
Пользователь №: 75 801



Цитата(Anton1990 @ Jun 21 2017, 19:45) *
Уже понял. Написал программу которая кодирует ридом-маллера, скремблирует, модулирует, умножает текущий на компл.сопр. следующий отсчет. В итоге получил одинаковую последовательность для всех видов модуляции. Все поддтвердилось.
Для определения кода вида модуляции предполагаю следующее: закодировать все виды модуляции кодом рида-маллера, заскремблировать, получить 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. Более того,
Цитата(masverter @ Jun 15 2017, 00:07) *
помимо начала кадра, можно определить: <...> по знаку суммы с выхода PLSC-коррелятора (с учетом инверсии спектра) - наличие/отсутствие пилотов.
(т.е. таким образом можно выполнить пункт 3)
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 22 2017, 15:06
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(masverter @ Jun 22 2017, 11:38) *
Смотрите Вашу предыдущую тему
Делаете все в точности, как описал 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тановления несущей? А время вхождения в синхронизм?
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jun 22 2017, 18:27
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Anton1990 @ Jun 22 2017, 18:06) *
Да Вы все верно пишите. Только вот демодуляция pi/2 bpsk выполняется просто (принятием решений в режиме ФМ4) если стоит "созвездие" ФМ4, на выходе получаем битовую последовательность (из одного бита), которую и обрабатываю. А вот если синхронизма по несущей нет (вместо созвездия круг), то демодуляция pi/2 bpsk уже не так тривиальна, но видимо, возможна. Я пока с этим не разбирался.
А подскажите дальнейшие действия: предположим я определил начало посылки и вид модуляции. Дальше я включаю соответствующую схему восcтановления несущей? А время вхождения в синхронизм?

Демодуляция пи/2 выполняется точно также как и обычная bpsk, столь лишь разницей, что перед принятием решения надо дополнительно довернуть каждый символ на пи/2. Если демодулировать в режиме QPSK, то будете терять в помехоустойчивости 3 дб. Насчет синхронизма: в приведенной статье отмечается, что предлагаемая схема фреймовой синхронизации SOF+PLSC на порядок быстрее, чем классическая схема синхронизации по SOF. Почему? Потому, что в ее основе лежит принцип дифференциального детектирования, которое не зависит от начальной отстройки по частоте (в разумных пределах, конечно).
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 23 2017, 16:04
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



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

Т.е. Вы имеете ввиду что я доворачиваю каждый принятый символ на 90 гр. и сразу принимаю решение в режиме BPSK, а фактически беру знак одного из каналов. В итоге получаю однобитный поток, в котором корреляторами ищу PLSC. Так? Ну тогда как то все просто, т.к. корреляторы будут строиться из операции "xor". И почему бы тогда и SOF не искать таким же способом, с поправкой на возможную инверсию спектра?
А далее чего делать? Включить соответствующую схему восстановления несущей для приема пакета данных (вид модуляции ведь определен ранее)?
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jun 23 2017, 18:12
Сообщение #20


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Anton1990 @ Jun 23 2017, 19:04) *
Т.е. Вы имеете ввиду что я доворачиваю каждый принятый символ на 90 гр. и сразу принимаю решение в режиме BPSK, а фактически беру знак одного из каналов.

да, можно и по знакам.
Цитата(Anton1990 @ Jun 23 2017, 19:04) *
В итоге получаю однобитный поток, в котором корреляторами ищу PLSC. Так? Ну тогда как то все просто, т.к. корреляторы будут строиться из операции "xor". И почему бы тогда и SOF не искать таким же способом, с поправкой на возможную инверсию спектра?
А далее чего делать? Включить соответствующую схему восстановления несущей для приема пакета данных (вид модуляции ведь определен ранее)?

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

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

Сообщение отредактировал Serg76 - Jun 23 2017, 18:14
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 24 2017, 05:21
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



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

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

Т.е. коррелятор SOF+PLSC у Вас служит для поиска заголовка, а мод.код "достаете" обрабатывая бинарный поток? Я реализовал (правда пока не опробывал) определение вида модуляции коррелятором PLSC (32 коррелятора по 32 отвода в комплексном виде), схема очень тяжела для ПЛИС. Есть мнение что нужно переделать ее в бинарный вид. И тогда использовать Ваш вариант: SOF+PLSC для начала заголовка и обработку битового потока для определения вида модуляции. И, кстати, наверное можно использовать только коррелятор по PLSC для определения начала заголовка если максимальный выход с 32 корреляторов еще сравнить с некоторым порогом.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jun 24 2017, 09:04
Сообщение #22


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Anton1990 @ Jun 24 2017, 08:21) *
Т.е. коррелятор SOF+PLSC у Вас служит для поиска заголовка, а мод.код "достаете" обрабатывая бинарный поток?

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

Цитата(Anton1990 @ Jun 24 2017, 08:21) *
Я реализовал (правда пока не опробывал) определение вида модуляции коррелятором 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)

Цитата(Anton1990 @ Jun 24 2017, 08:21) *
Есть мнение что нужно переделать ее в бинарный вид. И тогда использовать Ваш вариант: SOF+PLSC для начала заголовка и обработку битового потока для определения вида модуляции.

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

и уже после того, как определите конфигурацию фрейма, можно запускать ФАПЧ , которая будет работать непосредственно по пакету данных, т.е. получаем режим NDA + pilot.
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Jun 24 2017, 13:43
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(Serg76 @ Jun 24 2017, 12:04) *
В ЕЕ ОСНОВЕ ЗАЛОЖЕН ПРИНЦИП ДИФФЕРЕНЦИАЛЬНОГО ДЕТЕКТИРОВАНИЯ. а это значит, что какой бы модкод не был закодирован в PLS фрагменте, после его прохождения через диффкодер на выходе будем получать константное значение. ВСЕГДА!!!!начните с этого, если не хватит помехоустойчивости - перейдете в домен мягких решений.
и уже после того, как определите конфигурацию фрейма, можно запускать ФАПЧ , которая будет работать непосредственно по пакету данных, т.е. получаем режим NDA + pilot.

Я разобрался с "фишкой" диффкодера и все сказанное Вами подтвердилось по результатам программы. Я же имел ввиду что реализовал 32 коррелятора на мод код. без применения диф. кодирования. Взял 5 бит вида модуляции + пилот + длина кадра, закодировал Маллером, заскремблировал, замодулировал (не применяя усножение на компл. сопр отсчет), взял каждый второй отсчет, в итоге получил уникальный для каждого вида модуляции набор из 32-х комплексный чисел вида: (1+j), (-1-j). Во это и есть отводы корреляторов. Вроде должна работать. Но видимо проверять нет смысла - Ваш вариант предпочтительней.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jun 24 2017, 18:13
Сообщение #24


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Anton1990 @ Jun 24 2017, 16:43) *
Я разобрался с "фишкой" диффкодера и все сказанное Вами подтвердилось по результатам программы. Я же имел ввиду что реализовал 32 коррелятора на мод код. без применения диф. кодирования.

то, что Вы реализовали 32 коррелятора я как раз понял, поэтому и указал, что в этом нет никакой необходимости. чтобы этого избежать как раз и ввели дифференцирование.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 21:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01438 секунд с 7
ELECTRONIX ©2004-2016