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

Синхронизатор турбокодов

Появилась задача по реализации синхронизатора для декодера турбокодов на ПЛИС.

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

Можете ли посоветовать учебники/статьи/сайты, где описаны варианты реализации синхронизаторов (по возможности, с учетом аппаратной платформы в виде ПЛИС)? 
Можете поделиться какими-то наработками в коде (SV/Verilog/VHDL) по этой теме?
Буду рад любой помощи в данном вопросе

Заранее спасибо!)

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


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

ИМХО, вас спасет только DA синхронизация на длинных последовательностях с хорошим корреляционным пиком. Длина определяется отступом 6дб от энергетики турбокода. Почитать в любой книге по связи. 

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


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

В 22.07.2022 в 15:52, des00 сказал:

ИМХО, вас спасет только DA синхронизация на длинных последовательностях с хорошим корреляционным пиком. Длина определяется отступом 6дб от энергетики турбокода. Почитать в любой книге по связи. 

Задача в том, что самому выбрать последовательность для синхронизации я не могу, так как необходимо настроиться на известный сигнал.
Со своей стороны я знаю лишь маркер - 11110101000010111000.

Синхронизатор построен по такому алгоритму, что в битовом формате среди всего поступающего потока осуществляется поиск этого маркера на протяжении нескольких циклов. Если не нахожу в предполагаемом месте, то сдвигаю на N бит и продолжаю поиск. Если нахожу маркер, то для уверенности в факте синхронизации анализирую еще 3 цикла (в сумме 4) и только после этого данные подаются на турбодекодер.

Алгоритм работает медленно, ввиду того, что приходится последовательно анализировать несколько циклов.
Можно ли как-то ускорить этот процесс ?

 

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


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

Zalman_

Можете сделать согласованный фильтр на сигнал +1 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1 ?

Пороговое устройство, поиск максимума?

Потом рекурсивную версию, чтобы на нули слишком много памяти не тратить?

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


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

В 25.07.2022 в 20:27, petrov сказал:

Zalman_

Можете сделать согласованный фильтр на сигнал +1 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1 ?

Пороговое устройство, поиск максимума?

Потом рекурсивную версию, чтобы на нули слишком много памяти не тратить?

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

Как я понял, вы предлагаете идею, похожую на обнаружение кодов Баркера (насколько помню, там обнаружение происходит по корреляционному пику).

Только не могу понять в чем существенное отличие от описанного мной алгоритма ?

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


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

Zalman_

А чем согласованный фильтр будет отличаться от описанного мной алгоритма?

_

Если честно, я не понял вашего описания.

_

происходит по корреляционному пику

_

Обычное обнаружение известного сигнала, весь сигнал должен быть в памяти фильтра, чтобы преодолеть порог, разумеет отсюда возникает задержка. Хотите быстро и надёжно, значит нужна длинная известная последовательность, как уже выше писали, если короткая периодическая, значит надо долго ждать накопления. 

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


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

17 минут назад, Zalman_ сказал:

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

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

А у вас любая битовая ошибка портит паттерн и вы его уже не распознаете.

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


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

Наверное, меня не так поняли

Задача стоит в синхронизации перед декодером Turbo Product Code (TPC).
На входе у меня координаты точек после демодулятора.

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


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

Zalman_

Давайте все детали подробно, мы уже поняли что вам нужна блочная синхронизация, какая сигнализация для этого предусмотрена, как она вставляется, модулируется? Откуда это вообще взялось, кто придумал, стандарт какой?

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


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

On 7/25/2022 at 10:16 AM, Zalman_ said:

Если нахожу маркер, то для уверенности в факте синхронизации анализирую еще 3 цикла (в сумме 4) и только после этого данные подаются на турбодекодер.

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

 

Если хочется параллельно - значит надо сравнивать 4 числа (приходящих с задержками 0-3 цикла) с константой 20'hF50B8.

Для допуска ошибки - сравнение делать через XOR с подсчётом единиц (ошибок) и их порогом.

 

Если битовая синхронизация может слететь - сравнивать больше чисел  с больших задержек (>10).

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


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

_4afc_

Если хочется параллельно - значит надо сравнивать 4 числа (приходящих с задержками 0-3 цикла) с константой 20'hF50B8.

Для допуска ошибки - сравнение делать через XOR с подсчётом единиц (ошибок) и их порогом.

Если битовая синхронизация может слететь - сравнивать больше чисел  с больших задержек (>10).

_

И при этом рядом турбокоды, как такое возможно? ))

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


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

В 26.07.2022 в 17:32, petrov сказал:

Zalman_

Давайте все детали подробно, мы уже поняли что вам нужна блочная синхронизация, какая сигнализация для этого предусмотрена, как она вставляется, модулируется? Откуда это вообще взялось, кто придумал, стандарт какой?

AHA 4540 

Нужно сделать два выделенных блока
 

InkedAHA4540.jpg

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


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

Zalman_

Микросхема AHA 4540 сама осуществляет синхронизацию, зачем вы это делаете вручную?

_

Если это просто как образец для подражания берётся, то не стоит такое повторять, можно получше сделать, известная достаточно длинная последовательность c хорошей АКФ модулирует BPSK, обнаруживается согласованным фильтром, по ней же неоднозначность фазы устраняется.

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


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

В 27.07.2022 в 14:38, petrov сказал:

Zalman_

Микросхема AHA 4540 сама осуществляет синхронизацию, зачем вы это делаете вручную?

_

Если это просто как образец для подражания берётся, то не стоит такое повторять, можно получше сделать, известная достаточно длинная последовательность c хорошей АКФ модулирует BPSK, обнаруживается согласованным фильтром, по ней же неоднозначность фазы устраняется.

1. Планируется система обработки сигналов, структура которых уже давно известна и определена (отмечу, что разрабатываемая система только принимает сигнал и влиять на передающую часть я физически не могу). Данные сигналы входят в список тех сигналов, которые обрабатывает схема AHA 4540. Наиболее неприятный сигнал с точки зрения длительности периода, имеет период 16320.
2. Делаю вручную потому, что система обработки сигналов создается на ПЛИС.
3. Из предыдущих пунктов вытекает то, что необходимо создать либо такую же систему (по качеству работы), либо лучше.

По итогу, не хотелось бы создавать велосипед в этой области, поэтому и прошу помощи в этом вопросе от более опытных людей.
 

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


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

Zalman_

Данные сигналы входят в список тех сигналов, которые обрабатывает схема AHA 4540.

_

Какие созвездия используются?

Все используемые созвездия модулируются одной и той же известной последовательностью 11110101000010111000 для блочной синхронизации?

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


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

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

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

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

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

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

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

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

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

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