Научная статья на тему 'МНОГОПОТОЧНАЯ РЕАЛИЗАЦИЯ СВЕРТКИ НА ОСНОВЕ БЛОЧНЫХ МЕТОДОВ'

МНОГОПОТОЧНАЯ РЕАЛИЗАЦИЯ СВЕРТКИ НА ОСНОВЕ БЛОЧНЫХ МЕТОДОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
28
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СВЕРТКА / РЕАЛЬНЫЙ МАСШТАБ ВРЕМЕНИ / МЕТОД ПЕРЕКРЫТИЯ СО СЛОЖЕНИЕМ / МЕТОД ПЕРЕКРЫТИЯ С ДОБАВЛЕНИЕМ / ОКОННАЯ ФУНКЦИЯ / МНОГОПОТОЧНАЯ ОБРАБОТКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шарамет А.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Шарамет А.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MULTITHREADED CONVOLUTION IMPLEMENTATION BASED ON BLOCK METHODS

A multithreaded convolution implementation based on block algorithms is considered. Convolution is essentially the basis of many methods that solve the problem of determining the degree of similarity or independence of two processes, in other words, when it is necessary to determine the degree of correlation. The algorithm itself is executed with a significant delay, because for its execution it is necessary to accumulate the entire signal and then process it. The analysis showed that one of the possible ways to reduce time costs is a multithreaded implementation of convolution based on block algorithms. The article shows the main features of the convolution implementation by the overlap method with addition and the overlap method with addition, as well as numerical examples. The results obtained show that the application of these methods without the use of a window function leads to significant distortions in the signal spectrum. Based on the results of the analysis, a universal scheme for performing convolution based on multithreaded processing of an input data block is proposed. This allows to achieve a good compromise between computational complexity, system architecture, and time costs.

Текст научной работы на тему «МНОГОПОТОЧНАЯ РЕАЛИЗАЦИЯ СВЕРТКИ НА ОСНОВЕ БЛОЧНЫХ МЕТОДОВ»

(ее)

http://dx.doi.org/10.35596/1729-7648-2022-20-7-81-87

Оригинальная статья / Original paper

УДК 004.383:621.391

МНОГОПОТОЧНАЯ РЕАЛИЗАЦИЯ СВЕРТКИ НА ОСНОВЕ БЛОЧНЫХ МЕТОДОВ

А. В. ШАРАМЕТ

«КБ Радар» - управляющая компания холдинга «Системы радиолокации» (г. Минск, Республика Беларусь)

Поступила в редакцию 07.06.2022

© Белорусский государственный университет информатики и радиоэлектроники, 2022

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

Ключевые слова: свертка, реальный масштаб времени, метод перекрытия со сложением, метод перекрытия с добавлением, оконная функция, многопоточная обработка.

Конфликт интересов. Автор заявляет об отсутствии конфликта интересов.

Для цитирования. Шарамет А. В. Многопоточная реализация свертки на основе блочных методов. Доклады БГУИР. 2022. 20 (7), С. 81-87.

MULTITHREADED CONVOLUTION IMPLEMENTATION BASED

ON BLOCK METHODS

© Belarusian State University of Informatics and Radioelectronics, 2022

Abstract. A multithreaded convolution implementation based on block algorithms is considered. Convolution is essentially the basis of many methods that solve the problem of determining the degree of similarity

ANDREI V. SHARAMET

JSC "KB Radar " - Managing Company of "Radar Systems " Holding (Minsk, Republic of Belarus)

Submitted 07.06.2022

or independence of two processes, in other words, when it is necessary to determine the degree of correlation. The algorithm itself is executed with a significant delay, because for its execution it is necessary to accumulate the entire signal and then process it. The analysis showed that one of the possible ways to reduce time costs is a multithreaded implementation of convolution based on block algorithms. The article shows the main features of the convolution implementation by the overlap method with addition and the overlap method with addition, as well as numerical examples. The results obtained show that the application of these methods without the use of a window function leads to significant distortions in the signal spectrum. Based on the results of the analysis, a universal scheme for performing convolution based on multithreaded processing of an input data block is proposed. This allows to achieve a good compromise between computational complexity, system architecture, and time costs.

Keywords: convolution, real time scale, overlap method with addition, overlap method with addition, window function, multithreaded processing.

Conflict of interests. The author declares no conflict of interests.

For citation. Sharamet A. V. Multithreaded Convolution Implementation Based on Block Methods. Doklady BGUIR. 2022. 20 (7), 81-87.

Введение

Реализация свертки при обработке дискретных сигналов является одной из самых важных процедур в цифровой обработке сигналов. При этом большинство существующих на практике аппаратных реализаций сверток предполагает, что размер блока входных данных существенно превышает размер импульсной характеристики. Проведенный анализ показывает, что существует несколько подходов по ее реализации. В рамках первого подхода [1-3] осуществляется последовательная обработка блока входных данных по мере их поступления. Это делает вычислительную сложность минимальной и не зависимой от аппаратной реализации. С другой стороны, аппаратные затраты и задержка пропорционально увеличиваются с увеличением размера блока входных данных. В приложениях, работающих в реальном масштабе времени, или при обработке сигналов с большой базой такая задержка становится неприемлемой и должна быть уменьшена [1, 4]. Эти аппаратные затраты связанны с необходимостью выполнения дополнительных операций по вводу/выводу и временному хранению данных которые становятся сопоставимы с затратами на непосредственное выполнение свертки. Другим возможным вариантом снижения времени выполнения этой процедуры является параллельная обработка [4, 5] нескольких блоков входных данных меньшего размера с их последующим объединением. Такой подход позволяет распределить вычислительные ресурсы по времени с учетом доступности блока входных данных и законченности промежуточных результатов.

Постановка задачи

Рассматриваемая операция может быть выполнена на основе линейной свертки, круговой свертки или дискретного преобразования Фурье (ДПФ). В основе быстрых алгоритмов вычисления свертки лежит ДПФ. Это позволяет выполнить операцию быстрей, чем путем прямых вычислений [6, с. 507]. Результат свертки двух дискретных последовательностей описывается выражением

M-1

y (n ) = h (к ) * X (n )=£ h (к) x (n - к ), (1)

к=0

где x(n) - входная дискретная последовательность; h (к) - импульсная характеристика фильтра.

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

выполнить операцию фильтрации с использованием многопоточных программно-аппаратных систем цифровой обработки.

Представим длинную последовательность входных данных х(п) в виде набора блоков длинной Р. Для выполнения фильтрации на основе ДПФ необходимо учесть, что его длину желательно выбирать исходя из выполнения условия Р + Q -1 < 2м. Тогда входной блок данных может быть записан в виде

:( п ) =

х(п-kP), прип = 1,2,...,P

0.

(2)

Это позволяет входной блок данных (2) представить в виде суммы коротких сверток

(3)

6-1 е-1

J (n) = h (k) * х (п ) = Х h (k) * х (п - kP) = £ J (п - kP).

k=0 k=0

Так как вычислительная сложность круговой свертки по сравнению с линейной выше [6], то:

j (п) = IDFT (DFT (h (k)) DFT (х (п))),

где DFT - дискретное преобразование Фурье; IDFT - обратное DFT.

(4)

Основная часть

Метод перекрытия со сложением [1, 3]. Пусть свертка имеет длину Q. Тогда результатом ее выполнения на основе линейной свертки входного блока данных длиной Р является последовательность длинной Р + Q -1. Чтобы выполнить линейную свертку на основе круговой, необходимо линейную преобразовать в круговую свертку путем дополнения ее нулями (рис. 1), пока их длинна не будет равна длине линейной свертки, т. е. Р + Q-1.

К

P

p

P

■Ч

х(п) Xj (п)

1 2 3 4 5 6 7 8 0 0 0 0

х2(п) 1 2 3 4

е -1

х3 (п)

е-1

Рис. 1. Параллельная обработка методом перекрытия со сложением Fig. 1. Parallel processing by the overlap-save method

После этого осуществляется поэлементное сложение данных.

Численный пример. В качестве примера рассмотрим фильтр с импульсной характеристикой h(k) = [4 3 2 1], размер которой составляет Q = 4, и входные данные

х(п) =[1 2 3 4 5 1 2 3 4 5 1 2 3 4 5]. Исходя из того, что для выполнения ДПФ желательно,

чтобы размер блока был равен 2N (примем, что размер блока P = 8). Тогда для выполнения операции векторного умножения необходимо дополнить тремя нулями каждый из блоков (х(п) = [1 2 3 4 5 0 0 0]) и четырьмя нулями h(k) ( h(k) = [4 3 2 1 0 0 0 0]). Результаты поэтапного

выполнения свертки в соответствии с выражением (4) на примере одного блока ввиду их идентичности представлены в табл. 1.

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

2

3

4

5

6

7

8

2 3

4

5

6

7

8

23

4

5

6

7

8

5

6

7

8

0

0

0

0

2

3

4

5

6

7

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8

0

0

0

0

ДокладыБГУИР Doklady BGUIR Т. 20, № 7 (2022)_V. 20, No. 7 (2022)

Таблица 1. Результаты вычислений на примере одного блока Table 1. Calculation results on the example of one block

Операция / Operation Результат 0,8 / Result 0.8

DFT(h(n)) [10,0 + i0,0; 5,4 -14,8; 2,0 - i2,0; 2,6 - i0,8;... ...2,0 + i0,0; 2,6 + i0,8; 2,0 + i2,0;5,4 + i4,8]

DFT( x (n)) [15,0 + i0,0; - 5,4 - i7,2; 3,0 + i2,0; - 2,6 - il, 2;... ...3,0 - i0,0; - 2,6 + il, 2; 3,0 - i2,0; -5,4 + i7,2]

DFT( x (n))DFT(h(k )) [1,5 + i0,0; - 0,6 - i0,1; 0,1 - i0,0; - 0,1 - i0,0;... ...0,1 + i0,0; -0,1 + i0,0; 0,1 + i0,0; -0,6 + i0,1]

IDFT ( DFT ( x ( n)) DFT ( h ( k ))) [4 11 20 30 40 26 14 5]

У1О )

y ( » )[

4 11 20 30 40 26 14 5

- У 2(n) 4 11 20 30 40 26 14 5

- У3(п) 4 11 20 30 40 26 14 5

• 11 20 30 40 30 25 25 30 40 30 25 25 30 40 26 14 5

Рис. 2. Принцип формирования перекрытия Fig. 2. The principle of overlap formation

Метод перекрытия с добавлением [1, 3]. Для каждой из Р выборок из начала каждого блока в начало последующего добавляется Q —1 значений. При этом начало первого блока дополняется нулями, ввиду отсутствия предыдущего блока данных (рис. 3). Импульсная характеристика фильтра дополняется Q -1 нулями. В результате подобных трансформаций длины блоков и импульсной характеристики будут одинаковыми и составят P + Q — 1.

m-L--L--L-►

x(») 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

X(n)

H*

M-L

X2(n)

M-L

X3(n)

-M-L

X4 (n)

Рис. 3. Параллельная обработка методом перекрытия с добавлением Fig. 3. Parallel processing by the overlap-add method

После этого осуществляется поэлементное дополнение данных.

Численный пример. В качестве исходных данных возьмем численные значения входных данных из предыдущего примера. Тогда первый блок данных примет вид x (n) = [0 0 0 1 2 3 4 5].

При этом результат выполнения операции DFT(A(£)) не изменяется (табл. 1). Результаты поэтапного выполнения свертки в соответствии с выражением (4) на примере первого блока представлены в табл. 2.

После этого из начала каждого блока удаляется начальных Q -1 выборок (рис 4).

Особенностью реализации выражения (4) является то, что аргументом DFT являются два входных блока данных кратных 2N. Это накладывает ограничение на его использование.

В районе стыков выходных блоков данных будут иметь место большие нелинейные искажения. Это приводит к существенным пульсациям в спектре сигнала (рис. 5, а).

о

о

3

4

7

8

4

5

7

8

4

5

8

о

о

о

ДокладыБГУИР Doklady BGUIR Т. 20, № 7 (2022)_V. 20, No. 7 (2022)

Таблица 2. Результаты поблочных вычислений Table 2. The results of block-by-block calculations

Операция / Operation Результат / Result

DFT( х (п)) [15,0 + ¿0,0; -1,3 + ¿8,9; - 2,0 + ¿3,0; - 2,7 + ¿0,9;... ... - 3,0 + ¿0,0; - 2,7 - ¿0,9; - 2,0 - ¿3,0; -1,3 - ¿8,9]

DFT( х ^»DFTChCk)) [1,5 + ¿0,0; 0,4 + ¿0,5; 0,0 + ¿0,1; -0,1 + ¿0,0;... ... -0,1 + ¿0,0; -0,1 -¿0,0; 0,0 -¿0,1; 0,4 -¿0,5]

IDFT (DFT (х (п)) DFT (h (k))) [26 14 5 4 11 20 30 40]

IDFT (DFT (х (п)) DFT (h (k))) [38 39 43 30 25 25 30 40]

IDFT (DFT (х (п)) DFT (h (k))) [12 25 38 26 14 5 0 0]

У1(п) 26 14 5 4 11 20 30 40

У2(п) 38 39 43

У3(п)

У4(п)

У(п)

12

5

0

0

4

11

5

Рис. 4. Параллельная обработка методом перекрытия со сложением Fig. 4. Parallel processing by the overlap-add method

0.04

I

/

---исходный сигнал

-выход фильтра

150 200 250 300 0 50 100 150 200 250 30I

N, [бин] N, [бин]

а b

Рис. 5. Спектр сигнала на выходе: а - без оконной функции; b - с оконной функцией Fig. 5. The spectrum of the output signal: a - without a window function; b - with a window function

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

- быть равной нулю везде, кроме интервала 2N;

- иметь малый уровень боковых лепестков на краях;

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

В качестве одной из возможных к применению оконных функций предлагается рассмотреть окно Ханна (Хеннинга) [6 , с. 93-97] с уровнем боковых лепестков минус 31,5 дБ, которое описывается выражением: 2пп

>( п ) = 0,5 ^ 1 - c

N-1

где N - ширина окна.

(5)

60 80 t, [отсчет]

60 80 N, [бин]

b

Рис. 6. Окно Ханна (Хеннинга), N = 128 : а - оконная функция; b - спектр оконной функции Fig. 6. Hanna (Henning) window: a - window function; b - spectrum by window function

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

Jll

Трансформация сигнала

Прямое ДПФ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Оконная функция

Импульсная характеристика

Обратное Л Трансформация

ДПФ У сигнала

Прямое ДПФ

Трансформация сигнала

Прямое ДПФ

Оконная функция

Импульсная характеристика

Обратное Л Трансформация

ДПФ У сигнала

Прямое ДПФ

Трансформация сигнала

Прямое

ДПФ

Оконная функция

Импульсная характеристика

Обратное У Трансформация

ДПФ У сигнала

Прямое ДПФ

а

Рис. 7. Структурная схема многопоточной реализации свертки на основе блочных методов Fig. 7. Block diagram of multithreaded convolution implementation based on block methods

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

Заключение

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

Список литературы

1. Myers, D. G. Digital Signal Processing: Efficient Convolution and Fourier Transform Techniques / D. G. Myers // Prentice-Hall, Englewood Cliffs. N.J., 1990.

2. Shaila, D. Apte, Digital Signal Processing / D. Shaila, 2nd ed. Wiley India, 2009.

3. Salivahanan, S. Digital Signal Processing / S. Salivahanan, C. Ganapriya, 2nd ed. Tata McGraw Hill, 2011.

4. Proakis, J. G. Digital Signal Processing: Principles, Algorithms and Applications / J. G. Proakis, D. G. Manolakis, 4th ed. Pearson Education, Inc., 2007.

5. Vetterli, M. Running FIR and IIR Filtering using Multirate Filter Banks / М. Vetterli // IEEE Trans. Acoust. Speech Signal Process. 1988. Vol. ASSP-36, No 5.

6. Лайонс, Р. Цифровая обработка сигналов / Р. Лайонс. М.: Бином-прес, 2013.

References

1. Myers D. G. (1990) Digital Signal Processing: Efficient Convolution and Fourier Transform Techniques. Prentice-Hall, Englewood Cliffs, N.J.

2. Shaila D. (2009) Apte, Digital Signal Processing. 2nd ed. Wiley India.

3. Salivahanan S., Ganapriya C. (2011) Digital Signal Processing. 2nd ed. Tata McGraw Hill.

4. Proakis J. G., Manolakis D. G. (2007) Digital Signal Processing: Principles, Algorithms and Applications. 4th ed. Pearson Education, Inc.

5. Vetterli M. (1988) Running FIR and IIR Filtering using Multirate Filter Banks. IEEE Trans. Acoust. Speech Signal Process. ASSP-36 (5).

6. Laions R. (2013) Cifrovaya Obrabotka Signalov. Moskov, Binom-pres.

Сведения об авторе

Шарамет А. В., к.т.н, доцент, докторант кафедры электронных вычислительных средств Белорусского государственного университета информатики и радиоэлектроники, начальник тематического отдела ОАО «КБ Радар» - управляющая компания холдинга «Системы радиолокации».

Information about the author

Sharamet A. V., Cand. of Sci., Associate Professor, Doctoral Student at the Department of Electronic Computing of the Belarusian State University of Informatics and Radioelectronics, Head of the Thematic Department of JSC "KB Radar" -Managing Company of "Radar Systems" Holding.

Адрес для корреспонденции

220062, Республика Беларусь,

г. Минск, пр-т Независимости, 117а

ОАО «КБ Радар» - управляющая компания

холдинга «Системы радиолокации»

Тел. +375 29 633-68-84

E-mail: a.sharamet@kbradar.by

Шарамет Андрей Владимирович

Address for correspondence

220062, Republic of Belarus,

Minsk, Nezavisimosti Ave., 117a

JSC "KB Radar" - Managing Company of

"Radar Systems" Holding

Tel. +375 29 633-68-84

E-mail: a.sharamet@kbradar.by

Sharamet Andrei Vladimirovich

i Надоели баннеры? Вы всегда можете отключить рекламу.