Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аддитивный скремблер на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
BSACPLD
Добрый вечер, коллеги!

Подскажите, пожалуйста, что лучше почитать про синтез полиномов для аддитивного скремблера.
x736C
А что такое синтез полинома?
Поиск полинома для скремблера или синтез скремблера под заданный полином?
BSACPLD
Цитата(x736C @ Mar 30 2018, 02:01) *
А что такое синтез полинома?
Поиск полинома для скремблера или синтез скремблера под заданный полином?

Поиск полинома.
Допустим я хочу сделать скремблер длиной 23 бита.
Вопрос какой полином для него взять.
dm.pogrebnoy
Там вроде ничего сложного нет. В специализированной литературе приведены параметры полиномов дающих наибольший возможный период ПСП в зависимости от конкретной длины полинома.
BSACPLD
Цитата(dm.pogrebnoy @ Mar 30 2018, 12:40) *
Там вроде ничего сложного нет. В специализированной литературе приведены параметры полиномов дающих наибольший возможный период ПСП в зависимости от конкретной длины полинома.

Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?
Можно хотя бы пару примеров специализированной литературы?
dm.pogrebnoy
Цитата(BSACPLD @ Mar 30 2018, 12:52) *
Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?
Можно хотя бы пару примеров специализированной литературы?


https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%...%B7%D1%8C%D1%8E
x736C
Цитата(BSACPLD @ Mar 30 2018, 12:52) *
Т.е. просто выбрать полином с наиболее длинным периодом повторения ПСП и этого будет достаточно?
Можно хотя бы пару примеров специализированной литературы?

Нет, так делать нельзя sm.gif

Полином подбирают под реальный 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
BSACPLD
Спасибо.
Буду разбираться sm.gif
_4afc_
Цитата(BSACPLD @ Mar 30 2018, 11:48) *
Допустим я хочу сделать скремблер длиной 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 sm.gif
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 sm.gif
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 sm.gif
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 sm.gif
1000 0100 0000 0000 0000 0001 = 8 650 753 8650000- 8654999 sm.gif
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, на длинных входных нулях/единицах даст лучший результат.

Возможно для аддитивного скремблера следует рассмотреть полином с большим количеством единиц (отводов).
x736C
Такой 'длинный' скремблер сам пробегает состояния достаточно длинных последовательностей из нулей и единиц. Не совсем понятно, зачем нужна такая длина (степень полинома). Основная проблема по моему опыту начинается на разнообразных данных, а не на сериях нулей-единиц, с которой практически любой скремблер неплохо справляется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.