Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
6.19. Свертка и корреляция с использованием теоретико-числовых преобразованийДо сих пор вопросы свертки и корреляции теоретически и практически рассматривались только для данных, дискретизованных по времени. Квантованные данные (т. е. данные, дискретизованные, по амплитуде) также были рассмотрены в гл. 5, но при этом каждый отсчет представлялся в виде суммы истинной непрерывной величины и ошибки, а задача состояла в том, чтобы оценить ошибку или минимизировать ее. В данном разделе будет использован совершенно другой подход, а именно будут рассматриваться данные, которые могут принимать только квантованные (целые) значения. Будет изложен интересный метод вычисления сумм произведений сдвигаемых последовательностей (сверток и корреляций) таких чисел, позволяющий в некоторых случаях получить существенную экономию времени счета. Мы были вынуждены бороться с эффектами округления и переполнения только потому, что при выполнении вычислений без устранения переполнений и без округлений часто нарушается основное требование любой строгой системы счисления, состоящее в том, чтобы в результате выполнения операций над числами получались числа только той же системы счисления. Предположим, что суммируются два десятиразрядных двоичных целых числа при длине слова 10 разрядов. Правильный результат сложения может быть представлен только 11 разрядами. Таким образом, могут иметь место два случая. В первом из них старший разряд суммы равен нулю, и тогда сумма представляется, очевидно, 10-разрядным словом. Во втором случае старший разряд равен 1, так что результат не может быть размещен в имеющемся регистре. Этот случай называется переполнением. Для математика переполнение указывает на то, что при операции сложения нарушается условие замкнутости, если система возможных чисел включает только 10-разрядные целые числа. При умножении возникают еще большие проблемы подобного рода. Чтобы удовлетворить условию замкнутости, и были введены операции округления и усечения. Фактически были изменены определения сложения и умножения, которые стали включать операции сдвига и округления. В результате условие замкнутости стало выполняться, однако равенство перестало быть точным. Совершенно другой подход состоит в том, чтобы выполнять вычисления в соответствии с другими, модифицированными определениями сложения и умножения, которые удовлетворяли бы и условию замкнутости, и условию точного равенства, но за счет допущения о «неправильных» промежуточных результатах. Если и конечный результат такой процедуры вычислений «неправильный», она не представляет интереса. Однако если правильный конечный результат гарантирован, тот факт, что промежуточные результаты были неверны, не имеет никакого значения. Хорошим примером подобного рода вычислений является суммирование знакопеременных целых чисел с использованием фиксированной запятой (в обратном или дополнительном кодах). Если заранее известно, что результирующая сумма может быть корректно представлена при заданной длине слова, любое переполнение в процессе счета можно не учитывать. Для этого примера справедлив новый подход; изучим его более детально для общего случая. Рассмотрим правила сложения и умножения по модулю М, где М — целое, называемое модулем. Допустимыми числами при выполнении операций будут считаться числа 0, 1, 2, 3, 4, ..., М —1. Два числа а и b называются сравнимыми по модулю М, если их разность в точности кратна М; следовательно, понятия сравнимости и равенства не совпадают, за исключением случая, когда разность между а и b меньше М. В последнем случае единственное число, кратное и меньшее М, может быть только нулем, поэтому а и b должны быть равны. При сложении чисел с использованием слов k-разрядной длины результат в случае переполнения отличается от «обычного» результата на величину, кратную 2. Следовательно, при условии, что По индукции конечный результат будет сравнимым с обычной суммой, несмотря на возможные многократные переполнения. Если же известно, что конечная обычная сумма представляется k-разрядным числом, то, так как разность между двумя k-разрядными числами меньше, чем Напомним основные свойства сравнений: 1. Переместительный закон: 2. Сочетательный закон: 3. Распределительный закон: 4. Тождественность: 5. Отрицание: для каждого 6. Замкнутость: оба числа, 7. Аналогия: если Необходимо сделать два замечания. Во-первых, при выполнении вычислений по модулю М замкнутость сохраняется всегда, поскольку, если разрядность результата вычисления превышает длину слова, есть возможность, не изменяя результата, вычитать из него любое целое число модулей, так как при этом он остается Так как в дальнейшем будут использоваться и сравнения, и - равенства, необходимо ввести соответствующие обозначения. Обозначим операцию сравнения как
Операция
На практике применение этого способа приведения к остатку требует больших затрат времени; к счастью, существуют более простые приемы. Нас интересует вычисление сверток и корреляций, но, как известно, корреляцию можно представить в виде свертки, поэтому ниже анализируется только вычисление свертки. Поскольку операции умножения и сложения будут рассматриваться по модулю М, имеет смысл говорить о свертке двух последовательностей по модулю М. Пусть при использовании обычной арифметики последовательность
При использовании в вычислениях операции Покажем теперь, что между способами вычисления свертки с использованием БПФ и арифметики по модулю М существует полная аналогия, хотя это справедливо лишь для определенных значений модуля М. Чтобы продемонстрировать это утверждение, следует предварительно рассмотреть свойства показательной последовательности по модулю М. Рассмотрим последовательность
или
Последнее соотношение соответствует автомату с конечным числом состояний; величина а может принимать только М значений, так что Эта периодичность может быть либо абсолютной, либо с установлением в начале. Приведем два примера:
Второй пример значительно интереснее. Из свойств показательной последовательности следует, что произведение Теорема. Величины р и q являются взаимно обратными по модулю М, если р и М являются взаимно простыми. Доказательство. Поскольку возможно М значений q, составим следующий набор уравнений:
Существуют две возможности: либо в одном из этих М уравнений вместо вопросительного знака стоит 1 (означающая, что уравнение соответствует правильному значению q, обратному р), либо 1 нет ни в одном из уравнений. В последнем случае, поскольку имеется М уравнений, а величин справа может быть только М — 1 (не больше), должна наблюдаться повторяемость. Пусть повторяемость будет при
или
Следовательно, М является делителем р(а — b). Далее, а — b меньше М и поэтому не может содержать все сомножители М. Однако, согласно условию, р не имеет общих сомножителей с М. Следовательно, вторая из возможностей приводит к противоречию и становится ясно, что pq может быть сравнимо с 1 по модулю М, если только р и М не имеют общих сомножителей. В то же время было показано, что если р не имеет общих сомножителей с М, то в записанных выше уравнениях не может быть повторений, поэтому в одном из них вместо вопросительного знака должна быть 1. Таким образом, доказаны и необходимое, и достаточное условия теоремы. Из приведенной теоремы непосредственно следует, что произвольное число х, взаимно простое с М, позволяет сформировать степенную последовательность
Докажем ее методом, аналогичным доказательству предыдущей теоремы. Для этого представим, что записаны все целые
Сократив на произведение Часто в качестве модуля выбирают простое число Р. По определению
Этот результат известен как теорема Ферма. Практически все вопросы теории чисел так или иначе связаны с работами Ферма; ниже мы еще неоднократно будем к ним обращаться. Изучение свойств последовательности
где а — целое число, взаимно простое с М и имеющее порядок N. Формула (6.124) аналогична ДПФ, но в качестве
Отрицательный знак в показателе степени а в преобразовании (6.125) имеет определенный смысл, поскольку было показано, что члены периодической степенной последовательности имеют обратные им числа. При записи преобразования (6.125) были сделаны два предположения. Первое касается существования числа
Меняя порядок суммирования, находим
Можно показать, что оба эти выражения являются взаимно обратными. Для этого убедимся, что
легко доказывается. Если же
Все смежные члены суммы взаимно уничтожаются, остаются первый и последний, равные
Отсюда можно легко получить нужный результат, если не учитывать необходимости делить обе части равенства (6.129) на Подведем итог вышеизложенному. 1. Теоретико-числовое преобразование последовательности из N отсчетов определяется следующим образом:
где модуль М и длина последовательности N не имеют общих сомножителей, N является делителем 2. Обратное теоретико-числовое преобразование последовательности из N отсчетов определяется следующим образом:
где Все эти условия можно сформулировать в более сжатой форме следующим образом (без доказательства). Преобразование будет обеспечивать вычисление круговой свертки при а, имеющем порядок, равный N, тогда и только тогда, когда Р — 1 делится на N, причем Р — любой из простых сомножителей М. Доказательство теоремы о свертке для теоретико-числового преобразования очевидно. Математические выкладки будут такими же, как и для ДПФ; читатель может проделать их самостоятельно в качестве упражнения. Поэтому будем считать доказанным, что, вычислив обратное преобразование от произведения теоретико-числовых преобразований, можно получить результат, сравнимый с круговой сверткой исходных последовательностей. Если число N составное, для вычисления прямого и обратного преобразований можно использовать алгоритм БПФ и таким образом очень быстро получить результат, сравнимый с круговой сверткой последовательностей целых чисел. Здесь, по-видимому, имеет смысл привести практический пример. Чтобы продемонстрировать математическую сторону, а не эффективность вычислений, рассмотрим простейший случай: найдем четырехточечную круговую свертку последовательности 1, 2, 0, 0 саму с собой. Выберем модуль М = 17 и а = 4. Величина N, естественно, равна 4, а Прямое преобразование с применением БПФ:
В итоге получено преобразование исходной последовательности. Возведем его коэффициенты в квадрат по модулю 17: Преобразование от свертки 9 13 1 15 При обратном преобразовании умножаем на знак в показателе степени и выполняем преобразование аналогично предыдущему:
Итак, получен результат круговой свертки исходной последовательности с ней самой. Поскольку максимальное значение истинного результата равно 4, сравнимость полученных значений по модулю 17 обеспечивает равенство. Заметим, что в процессе вычислений все результаты записывались по модулю 17 с приведением к остатку всякий раз, когда результат вычисления выходил за пределы от 0 до 16. Рассмотрим теперь практические аспекты нового метода. Свертки, полученные с использованием теоретико-числового преобразования, в отличие от обычного метода с применением БПФ являются точными. Поскольку числа по модулю М образуют конечное множество, ни на одном из этапов вычислений приближения не вводились. Действительно, при наличии ошибки даже в одном, самом младшем разряде результат был бы совершенно неверным. К счастью, данная система счисления не требует ни округления, ни усечения даже при самых сложных вычислениях. В практических применениях интерес представляет скорее не сравнимость результатов, а их равенство, поэтому значения свертки должны быть ограничены тем или иным способом, чтобы можно было заменить сравнимость на равенство. Если, например, каждая из двух 64-точечных последовательностей представлена 10-разрядными числами, для точного представления результата необходим 26-разрядный регистр. Таким образом, вычисления с использованием теоретико-числового преобразования потребуют использования модуля М, превышающего Еще одна особенность использования теоретико-числового преобразования состоит в необходимости часто выполнять операции приведения к остатку, чтобы избежать представления промежуточных результатов словами с большим числом разрядов. В самом деле, фактически после каждой операции необходимо выполнить приведение к остатку. Для этой цели, как было отмечено выше, можно использовать деление числа на модуль и сохранение лишь остатка, однако деление требует больших затрат времени и его стараются избегать, особенно при выполнении совместно со сложением. В действительности, поскольку нам нужен только остаток, выполнять деление нет необходимости. Методы определения остатка зависят от конкретного М, причем простейшие с точки зрения нахождения остатка, но в то же время наиболее важные модули имеют вид Арифметика по модулю Проводимые в настоящее время исследования различных М в виде Арифметика по модулю При умножении произведение имеет обычно больше чем g разрядов. Если разложить произведение на два слова, одно из которых представлено младшими разрядами, а другое — остальными разрядами, то второе слово следует вычесть из первого. Например, при Упомянем также и правило изменения знака числа: нужно инвертировать g разрядов и добавить число Общепризнано, что эта арифметика несколько более сложная, чем обычно используемая система сложений и умножений. С другой стороны, здесь нет необходимости в делении для приведения к остатку, поскольку деление заменяется значительно более простой операцией. Таким образом, среди возможных модулей Теперь, если h нечетное, М будет делиться на 5, поскольку Одно интереснейшее свойство преобразования по модулю М, равному числу Ферма, выявляется при анализе возможных значений а. Поскольку
Обратное преобразование равно
где
Пример,
т. е. к младшему значащему разряду представленного в обратном коде слова, сдвинутого за рязрядную сетку, добавляется +1, а к последнему младшему значащему разряду сдвинутого исходного слова добавляется —1. Заметим, что перенос, связанный с добавлением Ко времени написания книги этап логического проектирования арифметического устройства для выполнения числового преобразования Ферма еще не был завершен, но само преобразование было запрограммировано на ЦВМ IBM 360. Оказалось, что с помощью этого преобразования свертки можно вычислять примерно в три раза быстрее, чем с использованием обычного алгоритма БПФ. Причинами сокращения времени вычисления являются следующие: 1. Числовое преобразование Ферма выполняется без умножений, поэтому для расчета 2. Используются операции только над действительными числами, что обеспечивает выигрыш во времени преобразования в два раза по сравнению с обычным алгоритмом БПФ; 3. Числовое преобразование Ферма позволяет вычислить точное значение свертки; при этом нет необходимости использовать арифметику с плавающей запятой, делать проверки на переполнение или принимать какие-либо другие меры предосторожности. Следует, однако, рассмотреть и недостатки нового метода. Один из них связан с ограничениями, накладываемыми на выбор модуля, размера преобразования и величины а, что сильно сужает круг применений. Тот факт, что получаемый результат здесь всегда точный, вынуждает использовать большие модули и, следовательно, оперировать на протяжении всего вычисления преобразования словами большой длины. При аппаратурной реализации стоимость памяти может намного превзойти стоимость умножителей, так что почти полное исключение умножений может все-таки не скомпенсировать увеличения стоимости памяти. В то же время при цифровой обработке сигналов почти никогда не требуется получать абсолютно точный результат. Другой фактор, способствующий увеличению длины слова, связан с тем, что для чисел Ферма и На практике в расчет приходится принимать и другие соображения. При обработке сигналов на ЦВМ нет необходимости сводить к минимуму число умножений, если ЦВМ имеет встроенный быстродействующий умножитель. В то же время при всей простоте операций по модулю чисел Ферма для их выполнения требуются несколько команд программы. Более того, возможности программирования операции приведения к остатку существенно зависят от длины слова машины. Читатель может в этом убедиться, написав программу приведения к остатку по модулю Ограничение, связанное с размером свертки, можно смягчить двумя способами. Во-первых, заметим, что N можно удвоить, если в качестве а использовать величину, имеющую порядок Агарвал и Баррас показали, что величина а, задаваемая формулой
имеет порядок Значительно более существенное смягчение ограничения размера преобразования может быть достигнуто несколько более дорогой ценой за счет того, что любую одномерную свертку можно вычислить, используя алгоритмы свертки двумерных последовательностей. Это, казалось бы, абстрактное утверждение в действительности основано на том, что обычная свертка может быть вычислена методами расчета круговой свертки. Для этого обрабатываемые данные представляются в виде таких двумерных массивов с дополнением нулями и повторением части данных там, где это необходимо, чтобы результат вычисления двумерной свертки совпадал с искомыми значениями одномерной свертки. Читатель может убедиться, что следующую одномерную круговую свертку:
можно найти, вычислив круговую двумерную свертку двух следующих двумерных массивов:
Заметим, что половина результатов дает правильный ответ, а остальные результаты — неверный. Применение двумерной свертки для вычисления одномерной свертки дает возможность использовать двумерное числовое преобразование Ферма. В результате если в одномерном случае модуль ограничивал размер последовательности N точками, то в двумерном случае появляется возможность обрабатывать последовательности из Рассмотрев достоинства и недостатки числового преобразования Ферма, можно остановиться на том, в каких задачах применение нового преобразования представляется целесообразным. Такие задачи должны иметь следующие характеристики: 1) последовательности должны быть достаточно короткими (суммируется около 50 произведений сдвинутых членов); 2) существует необходимость в высокой точности; 3) умножение является значительно более дорогостоящей операцией по сравнению со сложением. Рассмотрим два возможных применения нового преобразования. Первое относится к оценке спектров (одновременно большого количества) широкополосных сигналов. Из теории спектрального анализа известно, что число сдвигов при расчете корреляционной функции может составлять лишь долю от полного количества обрабатываемых отсчетов. В разд. 6.18 был рассмотрен алгоритм вычисления автокорреляционной функции, основанный на суммировании в частотной области. Но подобное суммирование можно выполнить и в области чисел Ферма. Используя такую методику и применяя 32-разрядные слова, можно рассчитать 65 значений автокорреляционной функции при N = 128 для такого количества исходных отсчетов, которое ограничено лишь однозначным представлением чисел в пределах выбранного модуля. При длине слова в 10 разрядов (включая знак) таким способом можно обработать 2000 отсчетов. Помимо сложений, при расчете коэффициентов преобразований Ферма и накоплении достаточно выполнить лишь одно умножение на каждый входной отсчет вместо 65 умножений при обычном методе вычисления корреляции. Естественно, что получаемый при этом результат будет точным, что в данном случае может быть даже более важным, чем в большинстве других. (Следует отметить, что описанное в данном разделе теоретико-числовое преобразование в равной степени применимо к числам как без знака, так и со знаком.) Рассмотрим второе возможное применение теоретико-числового преобразования, относящееся к двумерной КИХ-фильтрации. Речь пойдет, об обработке многоэлементного изображения с использованием произвольной импульсной характеристики размером LxL. Если L имеет величину порядка 5-20, применение БПФ для вычисления свертки будет неэффективным, хотя и более выгодным, чем в одномерном случае. Однако числовое преобразование Ферма будет весьма эффективным. Для импульсной характеристики указанных размеров в отличие от фильтрации прямым методом число умножений сокращается примерно на два порядка за счет увеличения числа сложений, которое тем не менее обычно даже меньше, чем в прямом методе. Таким образом, можно ожидать. что числовое преобразование Ферма вскоре будет использоваться для линейной фильтрации изображений. Алгоритмы обработки в конечных математических структурах, аналогичные алгоритмам быстрого преобразования Фурье, представляют интересную область исследований, и их применения, несомненно, не ограничиваются лишь вычислением сверток. Как было показано, существует принципиально новый подход к организации вычислений с характерными для него взаимосвязями между разрядностью слова, модулем, величиной а, допустимой неоднозначностью значений результатов и т. д. Возможности этого нового подхода, первоначально казавшегося весьма многообещающим, оказались сильно ограниченными. Можно ожидать, что дальнейшие исследования позволят найти другие математические структуры, которые будут обладать многими достоинствами и в то же время будут целиком или в значительной степени свободны от недостатков структур, рассмотренных в данном разделе. Однако не менее важно и то, что был разработан еще один метод быстрой свертки, о котором мы и не подозревали до тех пор, пока не был исследован аналог обычного метода быстрой свертки в другой системе счисления. ЛИТЕРАТУРААлгоритмы БПФ1. Cooley J. W., Tukey J. W., An Algorithm for the Machine Computation of Complex Fourier Series, Math. Сотр., 19, 297—301 (April 1965). 2. Bergland G. D., A Guided Tour of the Fast Fourier Transform, IEEE Spectrum, 6, No. 7, 41—52 (1969); есть русский перевод: Бергланд Дж. Д., Руководство к быстрому преобразованию Фурье, Зарубежная радиоэлектроника, № 3 (1971). 3. Cochran W. Т., Cooley J. W., Favin D. L., Helms H. D., Kaenel R. A., Lang W. W., Maling G. C., Nelson D. E., Rader С. M., Welch P. D., What is the Fast Fourier Transform, IEEE Trans, on Audio and Electro-acoustics, 15, No. 2, 45—55 (June 1967); есть русский перевод: Кокрен У. и др., Что такое быстрое преобразование Фурье?, ТИИЭР, 55, № 10 (1967). 4. Cooley J. W., Lewis P., Welch P. D., The Finite Fourier Transform, IEEE Trans, on Audio and Electroacoustics, 17, No. 2, 77—86 (1969). 5. Cooley J. W., Lewis P., Welch P. D., Historical Notes on the Fast Fourier Transform, IEEE Trans, on Audio and Electroacoustics, 15, No. 2, 76—79 (June 1967); есть русский перевод: Кули, Льюис, Уэлч, Исторические замечания относительно быстрого преобразования Фурье, ТИИЭР, 55, № 10 (1967). 6. Singleton R. С., A Method for Computing the Fast Fourier Transform with Auxiliary Memory and Limited High Speed Storage, IEEE Trans, on Audio and Electroacoustics, 15, No. 2, 91—98 (June 1967). 7. Cooley J. W., Lewis P., Welch P. D., The Fast Fourier Transform Algorithm: Programming Considerations in the Calculation of Sine, Cosine, and Laplace Transforms, J. Sound Vib., 12, No. 3, 315—337 (1970). 8. Singleton R. C., An Algorithm for Computing the Mixed Radix Fast Fourier Transform, IEEE Trans, on Audio and Electroacoustics, 17, No. 2, 93—103 (June 1969). 9. Pease M. С., An Adaptation of the Fast Fourier Transform for Parallel Processing, J. Assn. Сотр. Mach., 15, No. 2, 252—264 (April 1968). 10. Rader С. M., Discrete Fourier Transforms When the Number of Data Samples is Prime, Proe. IEEE, 56, No. 6, 1107—1108 (June 1968). 11. Cooley J. W., Lewis P., Welch P. D., The Fast Fourier Transform and Its Applications, IEEE Trans. Education, 12, 27—34 (March 1969). 12. Gold В., Rader С. M., Digital Processing of Signals, McGraw-Hill, N.Y., 1969; есть русский перевод: Голд Б., Рэйдер Ч., Цифровая обработка сигналов, изд-во «Советское радио», 1973. 13. Bluestein L. I., A Linear Filtering Approach to the Computation of Discrete Fourier Transform, IEEE Trans, on Audio and Electroacoustics, 18, No. 4, 451—456 (1970). 14. Rabiner L. R., Schafer R. W., Rader С. M., The Chirp z-Transform Algorithm and Its Application, Bell Syst. Tech. J., 48, No. 5, 1249—1292 (May-June 1969). Методы статистического спектрального анализа1. Jenkins G. M., Watts D. G., Spectral Analysis and Its Applications, Hol-den-Day, Inc., Pub., San Francisco, Calif., 1968; есть русский перевод: Дженкинс Г., Ватте Д., Спектральный анализ и его приложения, изд-во «Мир», 1971. 2. Welch P. D., The Use of the FFT for Estimation of Power Spectra: A Method Based on Averaging Over Short, Modified Periodgrams, IEEE Trans, on Audio and Electroacoustics, 15, No. 2, 70—73 (1967). 3. Cooley J. W., Lewis P., Welch P. D., The Use of the Fast Fourier Transform Algorithm for the Estimation of Spectra and Cross Spectra, Proc. of the 1969 Polytechnic Inst, of Brooklyn Symp. on Computer Processing in Communications, 5—20 (1969). 4. Cooley J. W., Lewis P., Welch P. D., The Application of the Fast Fourier Transform Algorithm to the Estimation of Spectra and Cross-Spectra, J. Sound Vib., 12, 339—352 (1970). 5. Rader С. M., An Improved Algorithm for High Speed Autocorrelation with Applications to Spectral Estimation, IEEE Trans, on Audio and Electroacoustics, 18, No. 4, 439—442 (1970). Теоретико-числовые преобразования и свертка1. Pollard J. М., The Fast Fourier Transform in a Finite Field, Mathematics of Computation, 25, No. 114, 365—374 (April 1971). 2. Rader С. M., Discrete Convolution Via Mersenne Transforms, IEEE Trans, on Computers, C-21, No. 12, 1269—1273 (Dec. 1972). 3. Agarwal R. C., Burrus C. S., Fast One-Dimensional Convolution by Multidimensional Techniques, IEEE Trans, on Acoustics, Speech, and Signal Processing, ASSP-22, No. 1, 1-10 (Feb. 1974). 4. Agarwal R. C., Burrus C. S., Fast Convolution Using Fermat Number Transforms with Applications to Digital Filtering, IEEE Trans, on Acoustics, Speech, and Signal Processing, ASSP-22, No. 2, 87—97 (April 1974).
|
1 |
Оглавление
|