где h [ m ] = 0 для m вне области [1, M ] . В этой статье используются общие абстрактные обозначения, такие как или , в которых подразумевается, что функции следует рассматривать в их совокупности, а не в конкретные моменты времени (см. Convolution#Notation ).
Идея состоит в том, чтобы вычислить короткие сегменты y [ n ] произвольной длины L и объединить сегменты вместе. Для этого требуются более длинные входные сегменты, которые перекрывают следующий входной сегмент. Перекрывающиеся данные «сохраняются» и используются во второй раз. [1] Сначала мы описываем этот процесс с помощью обычной свертки для каждого выходного сегмента. Затем мы описываем, как заменить эту свертку более эффективным методом.
Рассмотрим отрезок, начинающийся с n = kL + M , для любого целого числа k , и определим :
Тогда для и, что эквивалентно , мы можем записать:
При замене задача сводится к вычислению для . Эти шаги проиллюстрированы на первых трех трассах рисунка 1, за исключением того, что желаемая часть выходных данных (третья трасса) соответствует 1 ≤ j ≤ L . [B]
Если мы периодически расширяем x k [ n ] с периодом N ≥ L + M − 1, согласно :
свертки и эквивалентны в области . Поэтому достаточно вычислить N -точечную круговую (или циклическую) свертку с в области [1, N ]. Подобласть [ M + 1, L + M ] добавляется к выходному потоку, а остальные значения отбрасываются . Преимущество состоит в том, что круговая свертка может быть вычислена более эффективно, чем линейная свертка, согласно теореме о круговой свертке :
где :
DFT N и IDFT N относятся к дискретному преобразованию Фурье и его обратному преобразованию, вычисляемому по N дискретным точкам, и
L обычно выбирается таким образом, чтобы N = L+M-1 было целой степенью числа 2, а преобразования реализуются с помощью алгоритма БПФ для эффективности.
Эффекты переднего и заднего фронтов круговой свертки накладываются и добавляются [C] , а затем отбрасываются. [D]
Псевдокод
( Алгоритм сохранения перекрытия для линейной свертки )h = FIR_impulse_responseМ = длина(ч)перекрытие = М − 1N = 8 × перекрытие (см. следующий раздел для лучшего выбора)размер_шага = N − перекрытиеН = ДПФ(h, N)позиция = 0пока позиция + N ≤ длина(x) yt = IDFT(DFT(x(позиция+(1:N))) × H) y(position+(1:step_size)) = yt(M : N) (отбросить M−1 значений y) позиция = позиция + размер_шагаконец
Соображения эффективности
Когда DFT и IDFT реализуются алгоритмом FFT, псевдокод выше требует около N (log 2 (N) + 1) комплексных умножений для FFT, произведения массивов и IFFT. [E] Каждая итерация производит N-M+1 выходных выборок, поэтому количество комплексных умножений на выходную выборку составляет около :
Например, когда и Eq.3 равны , тогда как прямая оценка Eq.1 потребует до комплексных умножений на выходной образец, худший случай — когда и являются комплексными значениями. Также обратите внимание, что для любого заданного Eq.3 есть минимум относительно Рисунок 2 — это график значений , которые минимизируют Eq.3 для диапазона длин фильтров ( ).
Вместо уравнения 1 мы также можем рассмотреть применение уравнения 2 к длинной последовательности выборок длины. Общее количество комплексных умножений будет:
Для сравнения, количество комплексных умножений, требуемых алгоритмом псевдокода, составляет:
Таким образом, стоимость метода перекрытия-сохранения масштабируется почти как , в то время как стоимость одной большой круговой свертки составляет почти .
Перекрытие-отбрасывание
Overlap–discard [2] и Overlap–scrap [3] — менее часто используемые метки для одного и того же метода, описанного здесь. Однако эти метки на самом деле лучше (чем across–save ) отличать от across–add , потому что оба метода «сохраняют», но только один отбрасывает. «Save» просто относится к тому факту, что для обработки сегмента k + 1 необходимо M − 1 входных (или выходных) выборок из сегмента k .
Расширение перекрытия–сохранение
Алгоритм перекрытия-сохранения может быть расширен для включения других общих операций системы: [F] [4]
Дополнительные каналы ОБПФ могут быть обработаны дешевле, чем первые, путем повторного использования прямого БПФ
Частоту дискретизации можно изменять, используя различные размеры прямого и обратного БПФ.
Частотное преобразование (микширование) может быть достигнуто путем перестановки частотных ячеек
^ Смещение нежелательных краевых эффектов на последние выходы M-1 является потенциальным удобством во время выполнения, поскольку IDFT может быть вычислен в буфере , а не вычислен и скопирован. Затем краевые эффекты могут быть перезаписаны следующим IDFT. Последующая сноска объясняет, как выполняется сдвиг, путем временного сдвига импульсной характеристики.
^ Краевые эффекты можно переместить с начала на конец вывода IDFT, заменив на , что означает, что буфер длины N циклически сдвинут (повернут) на M-1 выборок. Таким образом, элемент h(M) находится при n=1. Элемент h(M-1) находится при n=N. h(M-2) находится при n=N-1. И т.д.
^ "Overlap-Add (OLA) STFT Processing | Spectral Audio Signal Processing". www.dsprelated.com . Получено 2024-03-02 . Название «overlap-save» происходит от того факта, что L-1 выборок предыдущего кадра [здесь: M-1 выборок текущего кадра] сохраняются для вычисления следующего кадра.
^ Харрис, Ф. Дж. (1987). DFElliot (ред.). Справочник по цифровой обработке сигналов . Сан-Диего: Academic Press. стр. 633–699. ISBN0122370759.
^ Фреркинг, Марвин (1994). Цифровая обработка сигналов в системах связи . Нью-Йорк: Van Nostrand Reinhold. ISBN0442016166.
^ Боргердинг, Марк (2006). «Превращение Overlap–Save в многополосный микшерный банк фильтров понижения частоты дискретизации». Журнал IEEE Signal Processing . 23 (март 2006 г.): 158–161. doi :10.1109/MSP.2006.1598092.
Рабинер, Лоуренс Р.; Голд, Бернард (1975). "2.25" . Теория и применение цифровой обработки сигналов . Энглвуд Клиффс, Нью-Джерси: Prentice-Hall. стр. 63–67. ISBN 0-13-914101-4.
Патент США 6898235, Карлин, Джо; Коллинз, Терри и Хейс, Питер и др., «Устройство перехвата и пеленгации широкополосной связи с использованием гиперканализации», опубликовано 10 декабря 1999 г., выдано 24 мая 2005 г. , также доступно по адресу https://patentimages.storage.googleapis.com/4d/39/2a/cec2ae6f33c1e7/US6898235.pdf
Внешние ссылки
Доктор Дипа Кундур, Overlap Add и Overlap Save, Университет Торонто