Предлагаемый способ относится к области электротехники, в частности к способу моделирования канала связи для проверки модуля помехоустойчивого кодирования.
Естественным путем реализации алгоритма помехоустойчивого кодирования является следующая последовательность действий.
1) Моделирование алгоритма на языке высокого уровня (C – C++, Matlab, Octave, SystemC, OpenCL), причем в целых числах.
2) Реализация алгоритма на ПЛИС (программируемая логическая интегральная схема) [Стешенко В. Б. ПЛИС фирмы Altera: Проектирование устройств обработки сигнала, Москва 2000]. ПЛИС представляет собой набор логических элементов на плате и регистров, состоящих из двоичных чисел заданной разрядности, с возможностью их программно коммутировать. Первое отличие от реализации алгоритма на компьютере состоит в том, что разрядность каждого регистра может быть выбрана произвольно, и она не обусловлена разрядностью центрального процессора, которого нет. Второе отличие состоит в том, что все действия выполняют одновременно и параллельно, но на более низкой тактовой частоте чем в системе центральным процессором. Описание алгоритма в этом случае состоит из статического описания коммутации элементов и динамического описания их взаимодействия (VHDL, Verilog). Здесь уже помимо правильности реализации алгоритма возникают вопросы энергопотребления и физического быстродействия. На каждый структурный блок подается синхроимпульс, обеспечивающий его динамическое взаимодействие с остальными, причем сам элемент имеет емкость и/или индуктивность, коммутирующая линия также имеет активное и реактивное сопротивление, которое растет с размерами схемы, что вынуждает увеличивать напряжение питания с целью предотвратить “размывание” фронтов синхронизирующих импульсов. Все выше изложенные факторы ограничивают тактовую частоту ПЛИС 200 МГц. В настоящее время идут попытки использовать язык высокого уровня для программирования ПЛИС, это осложняется тем фактом, что языки высокого уровня не имеют средств для описания статических связей. Однако, есть библиотечные расширения (SystemC) над языком C/C++, которые позволяют моделировать системное поведение модели посредством описания интерфейсов, очередей, сигналов в статическом и динамическом виде, но подобное моделирование не учитывает реальные физические процессы в микросхеме.
Верификация разрабатываемых алгоритмов достигается за счет последовательного применения тестовых векторов, разработанных на предыдущих стадиях. Тестовый вектор может являться оцифрованной смесью сигнала и шума, бинарной конфигурацией ошибок с заданными свойствами, любым набором тестовых значений, который, будучи поданными на вход разрабатываемого устройства или элемента этого устройства, вызовет предсказанную (на предыдущей стадии) реакцию. Хотелось бы отметить, что алгоритмы помехоустойчивого кодирования исправляют все ошибки, в том числе ошибки разработчика и программиста, поэтому часть тестов не связанная с моделированием Монте-Карло в белом гауссовском шуме, может быть пройдена успешно и при наличии ошибок в реализации. Полную верификацию обеспечивают статистически достоверное моделирование на ПЛИС по методу Монте Карло в канале, где аддитивной помехой является белый гауссовский шум (БГШ). Поэтому весьма актуальной является задача разработки компонентов такой модели, в частности генератора белого гауссовского шума в целых числах для реализации его на ПЛИС.
Известные алгоритмы такие Бокса-Мюллера [G. E. P. Box and M. E. Muller, “A note on the generation of randomnormal deviates,” Ann. Math. Stat., vol. 29, pp. 610–61, 1958.] и полярный [Marsaglia, G.; Bray, T. A. (1964). "A Convenient Method for Generating Normal Variables". SIAM Review. 6 (3): 260–264. doi:10.1137/1006063. JSTOR 2027592., D. E. Knuth, The Art of Computer Programming, Volume 2: Seminumerical Algorithms (second edition). Addison-Wesley, Menlo Park, 1981.] требуют вычисления функций log, sin, cos, что является сложной задачей для реализации в целочисленной арифметике. Уоллес предложил свой метод [C. S. Wallace "Fast Pseudorandom Generators for Normal and Exponential Variates", ACM Transactions on Mathematical Software, Vol. 22, No 1, March 1996, Pages 119-127] не требовавший вычислений с плавающей точкой, по крайней мере на каждом такте.
Способ Уоллеса состоит в следующем:
• заранее заполняют массив из
• формируют
• для
• вычисляют корректирующий множитель, используя последний элемент из нового массива, умножают на корректирующий нормирующий множитель на
В дальнейшем алгоритм для улучшения статистических свойств, в частности снижения корреляции между отсчетами претерпел ряд изменений.
Аналогом является китайская заявка Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A приоритет 2018/01/16 опубликована 2018/08/10, где приведен генератор белого гауссовского шума, реализованный по алгоритму Уоллеса [C. S. Wallace, Fast Pseudo-Random Generators for Normal and Exponential Variates, ACM Trans. on Mathematical Software 22 (1996), 119–127].
Способ, реализованный в данном устройстве отличается от способа из статьи [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip H. W. Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005] тем, что:
• взят другой генератор равномерных случайных величин (более простой);
• адреса вычисляют по формулам:
Вычисление каждого из адресов займет не больше такта, так как в случае
Наиболее близким к заявляемому является способ, описанный в [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip H. W. Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005], принятый за прототип.
Способ-прототип состоит в следующем:
• заранее заполняют массив из
• каждый такт, используя 32 битный отсчет генератора равномерных случайных чисел, формируют два 10-разрядных числа:
• в каждый такт формируют 4 адреса:
• считывают по сформированным адресам отсчеты
• где
матрицы
• полученные отсчеты
• также отсчеты
• каждые
Необходимость корректирующего множителя обусловлена тем, что в случае его отсутствия, сумма квадратов каждых
Рассмотрим работу блока ортогонального линейного преобразования. Легко видеть, что отсчеты
Нетрудно видеть, что
Рассмотрим работу блока формирования адресов. Операция суммы с последующим сложением результата по модулю 2 является быстрой операцией, которая может быть выполнена за один такт. Также быстрой является операция умножение на 2, которая, по сути, является битовым сдвигом или перекомпоновкой бит и не требует временных затрат. Однако операция умножения на 3 занимает целый такт и может быть выполнена как сумма
Задачу упрощения и повышения быстродействия способа, в частности балансировки вычислений в блоке формирования адреса решает способ аналог [Чен Ён Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A], однако, при этом адреса формируют иным способом, чем в способе прототипе, что может вызвать ухудшение статистических свойств результирующей последовательности отсчетов белого гауссовского шума.
Наиболее используемой в настоящее время является двухпортовая память, которая позволяет получить доступ для записи или чтения одновременно к двум адресам. Однако известны разработки [Kevin R. Townsend, Osama G. Attia, Phillip H. Jones, and Joseph Zambreno "A Scalable Unsegmented Multiport Memory for FPGA-Based Systems", International Journal of Reconfigurable Computing Volume 2015, Article ID 826283, 12 pages], позволяющие организовать эффективный многопортовый доступ к памяти. Таким образом, видно, что эффективность и быстродействие генератора цифрового белого шума может быть значительно повышена за счет балансировки вычислений и применения многопортовой памяти.
Задача, на решение которой направлено заявляемое техническое решение – повышение эффективности испытания радиоэлектронной аппаратуры, в частности, системы моделирования помехоустойчивых кодов.
Для решения поставленной задачи в способе формирования отсчетов цифрового белого гауссовского шума, заключающемся в том, что заполняют массив из
путем выполнения следующих операций:
полученные отсчеты
согласно изобретению, формируют однобитный сигнал
при этом если
Заявляемый способ решает техническую задачу повышения быстродействия за счет балансирования вычислений в блоке формирования адресов, не изменяя при этом исходного алгоритма без ухудшения статистических свойств результирующей последовательности отсчетов белого гауссовского шума.
Графические материалы, используемые в описании:
фиг. 1 – схема устройства, реализующего заявляемый способ;
фиг. 2 – схема блока формирования адреса.
Заявляемый способ заключается в следующем.
Заполняют массив из
каждый такт, используя 32-разрядный отсчет генератора равномерных случайных чисел, формируют два 10-разрядные числа:
каждый такт формируют 4 адреса:
считывают по сформированным адресам отсчеты
путем выполнения следующих операций:
если
полученные отсчеты
отсчеты
каждые
Новыми отличительными признаками способа являются:
-формирование однобитного сигнал
-если
-формирование четырех адресов по формулам:
Устройство, реализующее заявляемый способ, представлено на фиг. 1, где обозначено:
1 – генератор равномерных случайных чисел (ГРСЧ);
2 – мультиплексор;
3 – блок формирования адресов (БФА);
4 – блок памяти;
5 – блок инициализации;
6 – блок ортогонального преобразования;
7 – блок коррекции.
Устройство содержит последовательно соединенные генератор равномерных случайных чисел 1 и мультиплексор 2, три выхода которого соединены с соответствующими входами блока формирования адресов 3 и соответствуют сигналам
На фиг. 2 представлена схема блока формирования адресов, где обозначено:
3.1 – узел сдвига;
3.2 – вычитатель;
3.3, 3.4 – первый и второй сумматоры;
3.5, 3.6, 3.7, 3.8 – первый, второй, третий и четвертый узлы "исключающее или".
Блок формирования адресов 3 содержит узел сдвига 1, вычитатель 3.2, первый 3.3 и второй 3.4 сумматоры, а также первый 3.5, второй 3.6, третий 3.7 и четвертый 3.8 узлы "исключающее или". При этом вход узла сдвига 1, первые входы вычитателя 3.2 и первого сумматора 3.3 объединены и являются вторым входом блока формирования адресов 3 и соответствуют сигналу
Устройство, реализующее предлагаемый способ работает следующим образом. В генераторе равномерных случайных чисел (ГРСЧ) 1 формируют 32-разрядное равномерное случайное число из которого в мультиплексоре 2 формируют два 10-разрядных сигнала:
по которым проводят считывание отсчетов
а также изменяют знак
где после каждых
Технический результат заключается в увеличении быстродействия способа и достигается за счет балансировки вычислений в блоке формирования адресов 6, для чего предлагается формировать псевдослучайные адреса следующим образом:
Операция вычитания эквивалентна операции сложения при использовании двоично-дополнительного кода, и в совокупности занимает также один такт. Таким образом, все 4 случайные адреса могут быть получены за один такт и переданы на блок памяти. Следует отметить, что вычитание здесь выполняют по модулю
название | год | авторы | номер документа |
---|---|---|---|
Генератор цифрового белого гауссовского шума по методу Уоллеса | 2019 |
|
RU2723272C1 |
Устройство для формирования широкополосного случайного процесса | 1986 |
|
SU1432514A1 |
СПОСОБ РАЗДЕЛЕНИЯ СИГНАЛОВ ПРИ ДЕЙСТВИИ ВНУТРИСИСТЕМНЫХ ПОМЕХ И УСТРОЙСТВО ДЛЯ ЕГО РЕАЛИЗАЦИИ | 2015 |
|
RU2615791C1 |
ГЕНЕРАТОР СЛУЧАЙНОГО ПРОЦЕССА | 1991 |
|
RU2050585C1 |
Цифровой измеритель коэффициента корреляции случайного сигнала | 2020 |
|
RU2747725C1 |
Цифровой имитатор случайных сигналов | 2019 |
|
RU2722001C1 |
Устройство коррекции | 1987 |
|
SU1499507A1 |
СПОСОБ ПОВЫШЕНИЯ ПОМЕХОУСТОЙЧИВОСТИ ПРИЕМА OFDM СИГНАЛОВ В КАНАЛАХ С ПАМЯТЬЮ | 2015 |
|
RU2618211C2 |
СПОСОБ ПОДСТРОЙКИ ЧАСТОТНЫХ КОЭФФИЦИЕНТОВ ПЕРЕДАЧИ КАНАЛОВ МНОГОКАНАЛЬНОГО ПРИЕМНИКА | 2002 |
|
RU2239284C2 |
Устройство для формирования случайных процессов с заданным спектром | 1981 |
|
SU1027723A1 |
Изобретение относится к области электротехники и может быть использовано для моделирования канала связи для проверки модуля помехоустойчивого кодирования. Техническим результатом является увеличение быстродействия генератора цифрового белого гауссовского шума. Для этого в способе предлагается формировать псевдослучайные адреса следующим образом:
Операция вычитания эквивалентна операции сложения при использовании двоично-дополнительного кода и в совокупности занимает также один такт. Таким образом, все четыре адреса могут быть получены за один такт и переданы на блок памяти. Причем эти адреса получены в точном соответствии с алгоритмом Уоллеса. Следует отметить, что вычитание здесь выполняют по модулю
1. Способ формирования отсчетов цифрового белого гауссовского шума, заключающийся в том, что заполняют массив из
путем выполнения следующих операций:
полученные отсчеты
отличающийся тем, что формируют однобитный сигнал
при этом если
2. Способ по п.1, отличающийся тем, что применяют способ генерации Таусворта с порождающим полиномом
CN 108390648 A, 10.08.2018 | |||
CN 106774624 A, 31.05.2017 | |||
CN 101888209 A, 17.11.2010 | |||
Генератор гауссовского случайного процесса | 1984 |
|
SU1234834A1 |
Авторы
Даты
2020-06-09—Публикация
2019-10-01—Подача