Быстрая свертка на основе быстрого преобразования Фурье
Знакомство с ключевыми вопросами использования быстрого преобразования Фурье комплексных сигналов длины N для повышения эффективности вычислений дискретной свертки. Общая характеристика основных условий выбора минимального периода для кольцевой свертки.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 29.01.2019 |
Размер файла | 373,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Быстрая свертка на основе быстрого преобразования Фурье
Рассмотрены практические вопросы использования быстрого преобразования Фурье комплексных сигналов длины N для повышения эффективности вычислений дискретной свертки за счет одновременной обработки двух действительных последовательностей каждая длины N. Представлены условия выбора минимального периода для кольцевой свертки, и приведена оценка погрешности вычисления свертки из-за сокращения длины ядра. Оценена сложность реализации свертки в элементарных операциях. Показаны преимущества вычисления длинных сверток в частотной области.
Процесс томографической реконструкции объекта по его проекциям связан с большим объемом вычислений, среди которых свертка занимает заметное место. Оптимизация вычислений свертки важна как для томографической реконструкции, так и практически для любой области цифровой обработки сигналов [1].
Рассмотрим случай одномерной свертки сигнала (исходной проекции) с соответствующим ядром. В терминах линейных систем ядро представляет собой импульсный отклик системы на -функцию и характеризует ее динамические свойства. Ядро свертки - функция с четной симметрией.
Пусть сигнал представляет собой входную последовательность длиной N1 отсчетов. Ядро содержит нечетное число отсчетов N2. При обработке входной последовательности длиной N1 отсчетов число отсчетов полного ядра равно величине N2 = 2N1 - 1. При апериодической свертке [1] двух конечных последовательностей длиной N1 и N2 отличных от нуля отсчетов свертки будет не более
M = N1 + N2 - 1 = 3N1 - 2.
Апериодическая свертка может быть заменена периодической (круговой или циклической), если период повторения сигнала будет, по крайней мере, столь же большим как длина отсчетов результата свертки (3N1 - 2). При таких условиях не происходит никакого наложения сигналов, что облегчает реализацию качественной интерполяции. На практике требуемое число отсчетов результатов свертки обычно равно длине входной последовательности N1. Это позволяет несколько сократить минимальный период круговой свертки. Проведенный анализ показал, что при четной симметрии ядра и нечетном числе его членов величина M может быть выбрана из менее жесткого условия:
M N1 + (N2 - 1)/2 = < 2N1 - 1.
сигнал дискретный свертка
При этом возникает некоторое наложение на отдельных участках результатов свертки. Тем не менее, интересующий участок круговой свертки длиной N1 остается без влияния наложений и содержит правильные результаты. Это важно, потому что мы можем примерно в 1,5 раза сократить минимальный период круговой свертки, получая при этом правильный результат для N1 интересующих значений апериодической свертки.
Для сверток с коротким ядром N2 < 2N1 - 1 могут возникнуть проблемы с использованием интерполяции с ограниченным спектром (например, sinc-интерполяции). Дело в том, что ход полученной после такой интерполяции плавной кривой, проходящей через все интересующие точки N1, будет также зависеть и от остальных M - N1 точек, претерпевших искажения от наложения сигналов из-за сокращения периода круговой свертки.
Известно, что трудоемкая операция дискретной свертки во «временной» области (области сигнала) эквивалентна в частотной области простому умножению одноименных гармоник спектров сигнала и ядра. Однако при этом необходимо дополнительно выполнить переход из области сигналов в область спектров и, после умножения одноименных гармоник спектров, дополнительно сделать обратный переход в область сигналов. Переход из временной области в частотную и обратно требует прямого дискретного преобразования Фурье (ДПФ) входных последовательностей по M отсчетов, умножения одноименных гармоник спектра с последующим обратным преобразованием результатов их произведения во временную область с помощью обратного ДПФ (ОДПФ). Теоретические основы вычисления свертки в частотной области известны весьма давно. Прошло почти два столетия с тех пор, как Жан Батист Жозеф Фурье (1807 г.) представил доклад о возможности представления непрерывного периодического сигнала в виде суммы синусоид.
Наряду с преобразованием непрерывных сигналов (как периодических, так и непериодических), в цифровой обработке сигналов самое широкое распространение получило дискретное преобразование Фурье. Трудно даже перечислить области применения ДПФ. Назовем только несколько примеров - это цифровой спектральный анализ, проектирование фильтров и многое другое.
Практическое применение вычисления свертки с переходом в область спектров имеет смысл только при условии применения эффективных методов ДПФ и ОДПФ. В этом плане особого внимания заслуживает быстрое преобразование Фурье (БПФ), представляющее собой частный случай ДПФ при числе отсчетов N = pq, где p и q - целые числа. В настоящее время, с полным на то основанием, БПФ связывают с именем Кули и Тьюки (1960 г.) [2]. (Справедливости ради следует отметить что, пожалуй, первым, кто использовал свойства ДПФ для усовершенствования алгоритма его расчета, столетием ранее, был немецкий математик Гаусс. Свой вклад внесли Рунге (1903 г.), Ланцош (1942 г.) и др.).
Возможность применения БПФ длинны N для вычисления круговой свертки вместо ДПФ длины M, ограничена единственным требованием:
N ? M
Свертка в частотной области. Пусть сигнал (например, проекционные данные томографа) и ядро заданы соответственно N1 и N2 действительными отсчетами. Минимальный период ДПФ при отсутствии наложения:
M 3N1 - 2
При вычислении ДПФ методом БПФ по основанию 2 достаточно увеличить период до N = 2q ? M. В общем, для выполнения свертки необходимо выполнить следующие операции.
Дополнить последовательности сигнала N1 и ядра N2 нулевыми отсчетами до общей длины периода N.
Выполнить прямое комплексное БПФ сигнала длиной N отсчетов (мнимая составляющая равна нулю).
Выполнить прямое комплексное БПФ ядра длиной N отсчетов (мнимая составляющая равна нулю).
Произвести почленное умножение одноименных гармоник спектров сигнала и ядра. Для этого в общем случае необходимо выполнить N комплексных умножений.
Выполнить обратное БПФ (ОБПФ) результатов N комплексных умножений.
Выбрать из N результатов действительной части ОБПФ N1 значений свертки (мнимая составляющая результатов ОБПФ очевидно равна нулю).
В результате выполнения пунктов 1-6, формально используя теорему об эквивалентности свертки во временной области умножению в частотной области, можно получить апериодическую свертку исходного сигнала N1 с ядром N2 = = 2N1 - 1.
Оптимизация вычислений свертки. Рассмотрим пути повышения эффективности вычисления свертки. Быстрое преобразование Фурье дает возможность преобразования комплексного сигнала длины N, представляющего собой пару последовательностей (действительной и мнимой), длиной N отсчетов каждая [3]. Это открывает возможность одновременной обработки двух действительных последовательностей [4]. Но так как программа БПФ предполагает наличие действительной и мнимой составляющей, то в данном случае на выходе вместо ожидаемых спектров пары входных действительных последовательностей мы получим «нечто» другое. В принципе, если нас интересуют спектры, то путем некоторых дополнительных операций их можно получить. При вычислении же свертки в этом нет нужды. Оказалось, что достаточно выполнить почленное умножение комплексных гармоник спектров «нечто» и ядра. Из области спектров при помощи ОБПФ N комплексных результатов умножения преобразуется в две круговых свертки двух входных сигналов с ядром. Такой подход позволяет примерно вдвое сократить число операций на вычисление свертки.
Есть также возможность несколько сократить объем вычислений при реализации БПФ за счет использования прямого порядка обработки отсчетов со стороны сигнала (т.н. «прореживание по частоте»), так как при выполнении покомпонентного умножения спектров порядок следования гармоник не имеет значения. Это позволяет исключить операции, связанные с созданием требуемого порядка следования членов обрабатываемой последовательности.
Еще одна возможность сокращения количества операций - переход от операций комплексных умножений к действительным умножениям. Переход на умножении спектров позволяет в 6 раз уменьшить требуемое количество операций с плавающей точкой. Условие правомочности перехода к действительным умножениям спектров - отсутствие мнимой составляющей в спектре ядра. Последнее, учитывая четность функции ядра (h[i] = h[-i]), может быть достигнуто за счет соответствующего его кольцевого сдвига (на 0 или N/2 отсчетов). Рассмотрим пример. Пусть длина периода N = 8, а исходное ядро задано в 5-ти дискретных точках:
сигнал дискретный свертка
При сдвиге на N/2 исходные 5 отсчетов следует дополнить нулями слева и справа, причем центральный отсчет исходной последовательности h[0] должен быть расположен в точке N/2 (N/2 = 4) участка 0…N - 1:
Показанные выше оба расположения исходных отсчетов ядра на кольце исключают появление в спектре ядра мнимой составляющей. Заметим, что оба расположения эквивалентны с точки зрения результатов свертки. Однако если не предполагается последующая интерполяция свертки, удобнее воспользоваться расположением (5a). В этом случае все N1 результатов свертки идут первыми. Полученный после одного прямого БПФ спектр ядра запоминается и далее при выполнении свертки используется для всего массива данных. Рассмотрим на простом примере вычисление свертки двух входных последовательностей длиной N1 = 4 ([0, 0, 0, 1] и [1, 0, 0, 0]) с ядром длиной N2 = 7, ([-3, -7, -35, 105, -35, -7, -3]). После дополнения нулями входных последовательностей до одинаковой длины (N1 + (N2 - 1)/2 ? 2P = 8) получим:
Ядро может быть представлено двумя различными способами, при которых его спектр не содержит мнимой составляющей. В нашем случае (N = 8) возможны два эквивалентных представления ядра:
Единственно, чем отличаются указанные последовательности (h), так это кольцевым сдвигом по отношению к входным последовательностям (sx, sy).
Две входные действительные последовательности (sx, sy), каждая длиной N отсчетов, рассматриваем как одну комплексную последовательность длиной N. После выполнения комплексного БПФ длиной N получим действительную (Sx) и мнимую (Sy) составляющие спектра. Выполняем их покомпонентное умножение на полученный ранее действительный спектр ядра (Hr):
После выполнения обратного БПФ результатов умножения спектров во временной области получим значения двух кольцевых сверток. Результаты кольцевых сверток с ядром h сигналов sx и sy будут расположены соответственно на месте действительной и «мнимой» составляющих результата обратного БПФ.
Линейная свертка исходных последовательностей ([0, 0, 0, 1], [1, 0, 0, 0]) и ядра ([-3, -7, -35, 105, -35, -7, -3]), вычисленная при помощи суммы парных произведений, соответственно равна:
Результаты вычисления кольцевых сверток тех же данных с ядром (6a):
В случае использования представления ядра в виде (6b) результаты вычисления кольцевых сверток претерпевают кольцевой сдвиг:
На рис. 1 представлены результаты линейной интерполяции кольцевых сверток последовательностей sx и sy с ядром h (см. (6), (6a)). Видно, что результаты первых четырех отсчетов совпадают с отсчетами линейных сверток.
Таким образом, на последнем примере еще раз подтверждена эквивалентность представлений ядра (5a) и (5b). Далее ограничимся его представлением в виде (5a).
сигнал дискретный свертка
Оценим требуемое количество элементарных операций на выполнение свертки входной последовательности длиной N1 с полным ядром длиной N2 = 2N1 - 1. Рассмотрим случай N1 ? 2P. Допуская частичное перекрытие, примем длину периода M ? 2N1 - 1. С учетом применения БПФ N = 2P+1. Для получения по N1 значений двух сверток необходимо выполнить прямое и обратное БПФ длины N = 2P+1 и произвести 2N действительных умножения спектров. БПФ по основанию 2 комплексного сигнала длины N = 2P+1 для своей реализации требует (N/2) log2N комплексных умножения и N log2N комплексных сложения. При отсутствии интерполяции количество операций реализации обратного БПФ такое же, как и прямого. На реализацию комплексного умножения необходимо 4 действительных умножения и 2 сложения, для комплексного сложения - 2 действительных сложения. С учетом изложенного выше, требуемое количество действительных сложений (s) и умножений (u) на реализацию одной свертки длиной 2P потребуется:
(Последнее выражение предполагает примерно одинаковую длительность операций умножения и суммирования, что при работе с плавающей точкой близко к истине).
Оценим необходимое количество операций при вычислении свертки в виде суммы парных произведений. Обычно считают, что для вычисления свертки сигнала длиной N1 с ядром длиной N2 требуется примерно N1*N2 операций умножения с накоплением. Если учесть, что нас интересует только N1 значений свертки, то число операций умножения с накоплением можно уменьшить примерно вдвое и сделать равной N12.
Общее число элементарных операций при вычислении свертки составит величину 2*N12 = 2*(2P)2:
сигнал дискретный свертка
Сравнивая количество операций при различных реализациях свертки ((9) и (10)), приходим к выводу о целесообразности использования методов быстрой свертки уже при p > 5. Практически переход в область спектров оправдан при вычислении свертки длиной не менее 64-128 отсчетов.
На рис. 2 показано суммарное количество операций умножения и суммирования при вычислении одного отсчета свернутой проекции при длине входной последовательности 2P. Линейная зависимость (12 + 10p) соответствует случаю использования БПФ, экспоненциальная (2P+1) - вычислению свертки в виде суммы парных произведений. Трудоемкость вычисления свертки с переходом в область спектров по отношению к трудоемкости вычисления в виде суммы парных произведений (op_conv/op_conv2 =) представлена на рис. 3. Из соотношения следует, что при большой длине свертки (например, 1024 или 2048) использование БПФ существенно сокращает требуемое количество операций (в 18,3 и 33,6 раза соответственно).
Особенность свертки на основе БПФ с полным ядром заключается в требовании выбора периода из условия N 2N1 - 1. При N1 ? 2P достаточно сделать период равным N = 2P+1. Но уже при условии N1 = 2P + 1 приходится выбирать период вдвое больше (N = 2P+2), что более чем в два раза увеличивает требуемое количество операций. Интуитивно чувствуется, что заменив исходное полное ядро ядром несколько меньшей длины, при длинных свертках мы совершим сравнительно небольшую погрешность. Однако это позволяет вдвое снизить период (N = 2P+1). Оценим порядок погрешности результатов свертки из-за использования более короткого ядра. Ясно, что погрешность зависит как от ядра, так и конкретного набора отсчетов сигнала. Как правило, вес ядра быстро затухает. Для определенности рассмотрим ядро Шеппа-Логана, часто используемое в компьютерной томографии:
Рис.2
сигнал дискретный свертка
Рис.3
Также предположим, что нормированная к 1 входная последовательность длиной N1 имеет в начале и в конце по d отсчетов равных 1. Теперь можно получить значение максимальной погрешности свертки из-за сокращения длины полного ядра M до величины 2N1 - 1 - 2d. Погрешность (по модулю) достигает максимального значения для первого и последнего элементов результатов свертки. Ее величина определяется простым соотношением:
График максимальной погрешности свертки представлен на рис. 4.
Из рассмотренного материала видно, что, допустив приемлемую погрешность из-за сокращения длины ядра, в ряде случаев можно дополнительно (более чем в 2 раза) сократить объем вычислений свертки. Такой метод особенно подходит при свертке проекционных данных в томографии. Это связано с тем, что обычно начало и конец проекции содержат нулевые отсчеты. В результате погрешность свертки из-за сокращения длины ядра будет еще меньше приведенной выше оценки.
Выводы
Замена операции свертки в области сигналов умножением их спектров для длинных последовательностей позволяет существенно сократить требуемое количество операций. Так, при длине входной последовательности 2048 отсчетов использование БПФ сокращает требуемое количество операций более чем в 30 раз.
Повышению эффективности вычисления свертки способствует:
использование комплексного БПФ одновременно двух действительных последовательностей, одна из которых рассматривается как чисто мнимая. В результате вдвое снижаются затраты на преобразования из области сигналов в область спектров и обратно;
представление ядра после добавления требуемого числа нулевых отсчетов в виде четной функции. Это дает возможность при умножении спектров в 6 раз сократить количество операций за счет замены комплексных умножений действительными;
сокращение длины кольцевой свертки за счет некоторого наложения сигналов вне зоны интереса, а также за счет выбора более короткого ядра. В результате в ряде случаев можно дополнительно вдвое снизить период БПФ, сохраняя при этом допустимую погрешность.
Література
1.Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов. - М.: Мир, 1978. - 848 с.
2.Cooley J.W. and Tukey J.W. An Algorithm for the Machine Calculation of Complex Fourier Se-ries // Math. Comput. - 1965. - Vol. 19, N. 90. - Р. 297-301.
3.Войнаровский М. Программирование. Быстрое преобразование Фурье. - 2002. http://psi-logic.narod.ru/fft/fft1.htm
4.Implementing Fast Fourier Transform Algorithms of Real-Valued Sequences with the TMS320 DSP Family. APPLICATION REPORT: SPRA291. Robert Matusiak, 1997.
Размещено на Allbest.ru
...Подобные документы
Методика анализа преобразования сигналов линейными цепями, их физические процессы в различных режимах. Особенности применения дискретного преобразования Фурье и алгоритма быстрого преобразования Фурье в инженерных расчетах. Выходная реакция линейной цепи.
курсовая работа [171,1 K], добавлен 19.12.2009Алгоритм расчета фильтра во временной и частотной областях при помощи быстрого дискретного преобразования Фурье (БПФ) и обратного быстрого преобразования Фурье (ОБПФ). Расчет выходного сигнала и мощности собственных шумов синтезируемого фильтра.
курсовая работа [679,2 K], добавлен 26.12.2011Расчет характеристик фильтра во временной и частотной областях с помощью быстрого преобразования Фурье, выходного сигнала во временной и частотной областях с помощью обратного быстрого преобразования Фурье; определение мощности собственных шумов фильтра.
курсовая работа [2,8 M], добавлен 28.10.2011Вычисление Z-преобразования дискретной последовательности отсчетов сигнала. Определение дискретной свертки. Порядок построения схемы нерекурсивного фильтра, которому соответствует системная функция. Отсчеты дискретного сигнала по заданным параметрам.
контрольная работа [602,7 K], добавлен 23.04.2013Общие сведения об эхокомпенсации. Алгоритм быстрого преобразования Фурье. Физический смысл дискретного преобразования. Вычислительные алгоритмы, использующие симметрию и периодичность последовательности. Тестирование проектируемого эхокомпенсатора.
курсовая работа [905,4 K], добавлен 03.02.2012Преобразование дискретной последовательности отсчетов сигнала. Определение дискретной свертки. Схемы рекурсивного и нерекурсивного фильтров. Определение отсчетов дискретного сигнала. Отсчеты импульсной характеристики. Введение преобразования Лапласа.
контрольная работа [396,8 K], добавлен 23.04.2014Определение преобразования Гильберта, особенности и варианты проектирования. Сущность метода частотной, быстрой свертки. Эффекты квантования параметров. Импульсная характеристика дискретного преобразования Гильберта, реализуемые фильтры, проектирование.
курсовая работа [1,8 M], добавлен 06.01.2014Построение цифровой системы обработки информации. Реализация структурной схемы анализатора спектра на основе алгоритма быстрого преобразования Фурье. Выбор микропроцессоров различных серий, сравнительный анализ эффективности микросхем К1802 и К1815.
курсовая работа [4,1 M], добавлен 01.12.2013Изучение линейных систем перевода сигнала. Сущность дискретного преобразования Фурье. Объяснения, демонстрации и эксперименты по восстановлению искаженных и смазанных изображений. Рассмотрение теории деконволюции и модели процесса искажения и шума.
дипломная работа [8,0 M], добавлен 04.06.2014Исследование математических методов анализа сигналов с помощью преобразований Фурье и их связь. Соотношение Парсеваля, которое выполняется для вещественной, частотно-ограниченной функции f(t), интегрируемой на интервале, соответствующем одному периоду.
контрольная работа [903,7 K], добавлен 16.07.2016Основные характеристики стационарных линейных дискретных фильтров. Процедура вычисления дискретной свертки. Отсчеты импульсной характеристики (коэффициенты ряда Фурье), их связь с частотной характеристикой фильтра. Произвольная входная последовательность.
презентация [58,2 K], добавлен 19.08.2013Сигнал - материальный носитель информации и физический процесс в природе. Уровень, значение и время как основные параметры сигналов. Связь между сигналом и их спектром посредством преобразования Фурье. Радиочастотные и цифровые анализаторы сигналов.
реферат [118,9 K], добавлен 24.04.2011Рассмотрение реализации дискретного преобразования Фурье, использования "оконных функций" Хэннинга и Хэмминга для уменьшения эффекта "утечки спектра". Оценка синтеза трех фильтров автоматизированным способом (используя приложение fdatool системы Mathlab).
курсовая работа [1,1 M], добавлен 24.01.2018Использование спектра в представлении звуков, радио и телевещании, в физике света, в обработке любых сигналов независимо от физической природы их возникновения. Спектральный анализ, основанный на классических рядах Фурье. Примеры периодических сигналов.
курсовая работа [385,8 K], добавлен 10.01.2017Особенности методики применения математического аппарата рядов Фурье и преобразований Фурье для определения спектральных характеристик сигналов. Исследование характеристик периодических видео- и радиоимпульсов, радиосигналов с различными видами модуляции.
контрольная работа [491,1 K], добавлен 23.02.2014Расчет спектра сигнала через ряд Фурье. Диапазон частот, в пределах которого заключена часть энергии колебания. Восстановленный сигнал из гармоник. Алгоритм восстановления и дискретные значения времени. Изучение спектрального представления сигналов.
лабораторная работа [356,3 K], добавлен 18.05.2019Спектральные характеристики периодических и непериодических сигналов. Свойства преобразования Фурье. Аналитический расчёт спектра сигнала и его энергии. Разработка программы в среде Borland C++ Bulder 6.0 для подсчета и графического отображения сигнала.
курсовая работа [813,6 K], добавлен 15.11.2012Субполосное кодирование и преобразование Габора. Дискретное косинусное и ортогональное перекрывающееся преобразования. Преимущество преобразования при помощи блоков фильтров перед преобразованием Фурье. Синтез фильтров в трансверсальной реализации.
курсовая работа [2,9 M], добавлен 28.08.2013Оценка алгоритмов цифровой обработки сигналов в условиях наличия и отсутствия помех. Проектирование модели дискретной свертки в среде Mathcad 14. Анализ кодопреобразователей циклических кодов и их корректирующие способности. Работа цифрового фильтра.
курсовая работа [3,0 M], добавлен 11.02.2013Расчет спектральной плотности экспоненциального импульса цифрового устройства с помощью формулы прямого преобразования Фурье. Построение АЧХ и ФЧХ спектральной плотности. Построение амплитудного спектра периодического дискретизированного сигнала.
контрольная работа [197,1 K], добавлен 23.04.2014