2.2.3. Циклическая сверткаВ гл. 1 было показано, что Фурье-преобразование свертки двух последовательностей есть произведение их Фурье-преобразований. В этом разделе мы выведем эквивалентное утверждение для ДПФ. Зададимся вопросом, какая последовательность является обратным ДПФ для произведения двух ДПФ? Предположим, что имеются две последовательности конечной протяженности и с опорной областью . Каждая из этих последовательностей имеет ДПФ и соответственно. Пусть является -точечным дискретным спектром, построенным следующим образом: . (2.46) Найдем теперь . Начнем с рассмотрения периодически дополненных последовательностей , , , , и . Поскольку , (2.47) то можно использовать обратный дискретный ряд Фурье (2.3) и записать . (2.48) Выразив в виде (2.49) и подставив это выражение в (2.48), получим (2.50) За исключением пределов суммирования, это выражение имеет форму обычной (линейной) суммы двумерной свертки. Вместо суммирования по всем отсчетам произведения достаточно складывать только те отсчеты результирующей последовательности, которые лежат в области . Последовательность прямоугольно-периодична с периодами и . Поскольку (2.51) можно записать (2.52) Назовем циклической сверткой и . Выражение «циклическая свертка», также взятое из цифровой обработки одномерных сигналов, означает, что испытывает циклический сдвиг по отношению к в противоположность обычной линейной свертке, где просто линейно сдвигается относительно . Циклическая свертка может быть также записана в ином виде: . (2.53) Как и обычная свертка, циклическая свертка обладает свойством коммутативности, ассоциативности и дистрибутивности относительно сложения. Используя символ для обозначения операции двумерной циклической свертки, можно записать . (2.54) Заметим, что результат циклической свертки зависит не только от двух сворачиваемых последовательностей конечной протяженности, которые сворачиваются, но также и от периодов и , определяющих размер ДПФ. ДПФ имеет преимущество перед преобразованием Фурье, поскольку может быть подсчитано путем комплексных умножений и сложений, как уже упоминалось ранее. К сожалению, произведение двух ДПФ соответствует циклической свертке двух последовательностей, а в моделировании и конструировании ЛИС-систем нас интересует линейная свертка двух последовательностей. Однако, как и в одномерном случае, существует простое средство, позволяющее использовать циклическую свертку для вычисления линейной свертки. Предположим, что имеет опорную область , a - . Обозначим через результат линейной свертки . (2.55) Последовательность имеет опорную область (2.56) Используя ДПФ размером и , можно найти циклическую свертку , которая записывается следующим образом: для . (2.57) Периодическое продолжение последовательности конечной протяженности можно записать в виде . (2.58) Подставив это выражение в (2.57) и сделав соответствующие преобразования, получим для . (2.59) Благодаря ограниченным размерам выражение в скобках есть линейная свертка, которую можно обозначить как . В результате получим для . (2.60) Последовательность равна пространственно наложенной копии последовательности в области . Однако поскольку - последовательность ограниченной протяженности, то, выбрав и достаточно большими, а именно , , (2.61) получим, что копии в равенстве (2.60) не будут перекрываться, и равенство (2.60) превращается в равенство для . (2.62) Следовательно, результат циклической свертки равен результату линейной свертки, что и требовалось. Из этого вытекает следующая процедура вычисления линейной свертки с использованием ДПФ. 1. Выбрать и удовлетворяющие условию (2.61). 2. Дополнить необходимым количеством нулей для заполнения области . 3. Дополнить таким же образом. 4. Вычислить -точечное ДПФ и . 5. Найти произведение . 6. Вычислить -точечное обратное ДПФ для . Результат этого вычисления и есть искомая линейная свертка. В этой процедуре, как понимает читатель, шаги 4-6 обеспечивают выполнение круговой свертки , которая равна линейной свертке благодаря правильному выбору и . Пример 4 В качестве численного примера рассмотрим особенно простой случай, когда и представляют собой последовательности размера , . (2.63) Мы имеем явное выражение последовательностей как множества значений отсчетов, причем - индекс столбца, a - строки. Отсчет находится в нижнем левом углу. ДПФ размера можно записать следующим образом: (2.64) Подставив числа в (2.64), получим , (2.65) , (2.66) . (2.67) Взяв обратное ДПФ размера , получим циклическую свертку размера : . (2.68) Теперь рассчитаем линейную свертку тех же двух последовательностей с использованием -точечного ДПФ. Линейная свертка двух -точечных последовательностей будет -точечной последовательностью. Поскольку размер ДПФ в каждом измерении больше ожидаемого размера линейной свертки, -точечная циклическая свертка и линейная свертка будут идентичны. Дополняя и до заполнения опорной области , получим , . Рассчитаем -точечное ДПФ: (2.69) Взяв обратное ДПФ размера от , получим . (2.70) Если эту последовательность преобразовать в последовательность размера путем пространственного наложения, результат будет идентичен (2.68). Если вы проверяли числа в этом примере, то вне сомнения убедились, что расчеты очень утомительны и что потрачено гораздо больше усилий, чем это было бы необходимо для прямого вычисления линейной свертки. В разд. 2.3 мы рассмотрим быстрый эффективный алгоритм выполнения -мерного ДПФ, который позволяет вычислить свертку с меньшим числом арифметических операций, чем это требуется для прямого расчета свертки в виде суммы.
|