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

Аддитивный скремблер на ПЛИС

Добрый вечер, коллеги!

 

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

 

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


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

А что такое синтез полинома?

Поиск полинома для скремблера или синтез скремблера под заданный полином?

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


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

А что такое синтез полинома?

Поиск полинома для скремблера или синтез скремблера под заданный полином?

Поиск полинома.

Допустим я хочу сделать скремблер длиной 23 бита.

Вопрос какой полином для него взять.

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


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

Там вроде ничего сложного нет. В специализированной литературе приведены параметры полиномов дающих наибольший возможный период ПСП в зависимости от конкретной длины полинома.

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


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

Там вроде ничего сложного нет. В специализированной литературе приведены параметры полиномов дающих наибольший возможный период ПСП в зависимости от конкретной длины полинома.

Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?

Можно хотя бы пару примеров специализированной литературы?

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


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

Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?

Можно хотя бы пару примеров специализированной литературы?

 

https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%...%B7%D1%8C%D1%8E

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


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

Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?

Можно хотя бы пару примеров специализированной литературы?

Нет, так делать нельзя :)

 

Полином подбирают под реальный payload.

У меня была такая история когда-то. Данные от нескольких rs-232 и ethernet объединялись в одном кадре и скремблировались. Отдельно были проверены rs-ы, отдельно ethernet на своих тестовых данных (текстовые файлы, фильмы). Когда все это было включено одновременно на реальном железе с реальными потоками, то скремблер развалился и посыпались подряд идущие «нули» и «единицы» разной длины. Все это приводило к срыву синхронизма. Выглядело это так. Отключаешь что-то одно: ethernet или rs-232, и все работает. «Потдыкаешь» разъем и сыпят ошибки.

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

 

Немного об этом можно почитать в документе

Data transmission at 48 kilobits per second using 60-108 kHz group band circuits. На стр. 9-10.

 

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

 

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

Подробнее о методе стат. анализа можно почитать в

DSP Based Implementation of Scrambler for 56Kbps Modem. На стр. 6-7.

 

Немного полезных советов по выбору полинома есть в документе

64b/66b low-overhead coding proposal for serial links.

 

Наиболее полезные файлы, которые остались с тех времен, залил архивом.

https://cloud.mail.ru/public/6HWm/DU7fZMYXM

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


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

Допустим я хочу сделать скремблер длиной 23 бита.

Вопрос какой полином для него взять.

Аддитивные скремблеры не использовал.

 

А самосинхронизирующиеся скремблеры делаю так:

Беру простое число вида 1*1*1, в вашем случае длиной 23 бита.

Желательно с нечётным количеством единиц - тогда длинные нули - инвертируются.

 

Т.е. для 23 бит нужно найти простое число в диапазоне 8 388 609...16 777 215.

В этом диапазоне чисел с тремя единицами всего 21 штука.

 

Набиваем мышкой в виндовс калькуляторе и проверяем на простое по таблице:

 

1000 0000 0000 0000 0000 0011 = 8 388 611 8385000- 8389999

1000 0000 0000 0000 0000 0101 = 8 388 613 8385000- 8389999

1000 0000 0000 0000 0000 1001 = 8 388 617 8385000- 8389999 :)

1000 0000 0000 0000 0001 0001 = 8 388 625 8385000- 8389999

1000 0000 0000 0000 0010 0001 = 8 388 641 8385000- 8389999

1000 0000 0000 0000 0100 0001 = 8 388 673 8385000- 8389999 :)

1000 0000 0000 0000 1000 0001 = 8 388 737 8385000- 8389999

1000 0000 0000 0001 0000 0001 = 8 388 865 8385000- 8389999

1000 0000 0000 0010 0000 0001 = 8 389 121 8385000- 8389999

1000 0000 0000 0100 0000 0001 = 8 389 633 8385000- 8389999

1000 0000 0000 1000 0000 0001 = 8 390 675 8390000- 8394999

1000 0000 0001 0000 0000 0001 = 8 392 705 8390000- 8394999

1000 0000 0010 0000 0000 0001 = 8 396 801 8395000- 8399999

1000 0000 0100 0000 0000 0001 = 8 404 993 8400000- 8404999 :)

1000 0000 1000 0000 0000 0001 = 8 421 377 8420000- 8424999

1000 0001 0000 0000 0000 0001 = 8 454 145 8450000- 8454999

1000 0010 0000 0000 0000 0001 = 8 519 681 8515000- 8519999 :)

1000 0100 0000 0000 0000 0001 = 8 650 753 8650000- 8654999 :)

1000 1000 0000 0000 0000 0001 = 8 912 897 8910000- 8914999

1001 0000 0000 0000 0000 0001 = 9 437 185 9435000- 9439999

1010 0000 0000 0000 0000 0001 =10 485 761 10485000-10489999

1100 0000 0000 0000 0000 0001 =12 582 913 12580000-12584999

 

Итак можно выбрать одно из пяти 23 разрядных чисел: 8 388 617, 8 388 673, 8 404 993, 8 519 681, 8 650 753.

 

Я бы выбрал 8 404 993 т.к. в самосинхронизирующиемся скремблере он, IMHO, на длинных входных нулях/единицах даст лучший результат.

 

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

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


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

Такой 'длинный' скремблер сам пробегает состояния достаточно длинных последовательностей из нулей и единиц. Не совсем понятно, зачем нужна такая длина (степень полинома). Основная проблема по моему опыту начинается на разнообразных данных, а не на сериях нулей-единиц, с которой практически любой скремблер неплохо справляется.

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


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

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

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

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

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

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

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

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

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

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