Быстрая линейная свертка

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

Таким образом, алгоритм фильтрации в частотной области записывается следующим образом:

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

2. Вычисляются ДПФ дополненных нулями последовательностей.

3. Вычисленные ДПФ поэлементно умножаются.

4. Вычисляется обратное ДПФ от результата перемножения.

 

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

Очевидно, что для получения линейной свертки двух N-точечных последовательностей и необходимо умножить каждое значение на каждое значение . Следовательно, N значений нужно перемножить с N значениями и потребуется всего умножений.

Рассмотрим теперь вычислительную сложность быстрой линейной свертки. Прибавление необходимых дополняющих нулей означает, что каждая преобразованная последовательность имеет длину точек. Предположим, что , где d – целое число. В этом случае число комплексных умножений для - точечного БПФ составит . Согласно уравнению быстрой линейной свертки необходимо вычислить два ДПФ и одно обратное ДПФ. Таким образом, необходимо вычислить три - точечных БПФ с операций комплексных умножений. Кроме этого, необходимо осуществить перемножение слагаемых результатов ДПФ входного сигнала и импульсной характеристики. Следовательно, общее количество операций комплексного перемножения составит . Так как дждое комплексное перемножение потребует четырех действительных умножений, необходимо выполнение действительных умножений.

Таким образом, непосредственное вычисление линейной свертки требует действительных умножений, в то время как метод быстрой свертки требует действительных умножений. Сравнительный анализ вычислительных затрат для быстрой линейной свертки и непосредственно линейной свертки приведен в Таблице 1.1. Из Таблицы видно, что быстрая свертка лучше прямого метода в том случае, если длина последовательностей превышает 128 дискретов данных. Для последовательности из 1024 точек быстрая свертка дает результат за время, в 10 раз меньшее, чем для линейной свертки.

 

Таблица 1.1. Вычислительные затраты линейной свертки и быстрой линейной свертки

N Линейная свертка Быстрая линейная свертка Отношение затрат
1 088 4.25
1 024 2 560 2.5
4 096 5 888 1.4375
16 384 13 312 0.8125
65 536 29 696 0.4531
262 144 65 536 0,250
1 048576 143 360 0,1367
4 194 304 311 296 0.0742

 

Литература

Маркович И.И. Цифровая обработка сигналов в системах и устройствах: монография / И.И. Маркович; Южный федеральный университет. – Ростов н/Д: Издательство Южного федерального университета, 2012. – 236 с. (стр. 62)

Солонина А.И., Арбузов С.М. Цифровая обработка сигналов: Курс лекций. / А.И. Солонина, С.М. Арбузов. – СПб.: БХВ – Петербург, 2007 – 744 с (232 c.).

 








Дата добавления: 2017-09-19; просмотров: 1729;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.