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

    

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

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

 

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

 

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


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

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
А что такое синтез полинома?

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

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

Допустим я хочу сделать скремблер длиной 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, на длинных входных нулях/единицах даст лучший результат.

 

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

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


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

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация