Текст
                    Быстрые
алгоритмы
в цифровой
обработке
изображений
Преобразования
и медианные
фильтры
Под редакцией
Т.С. Хуанга
Перевод с английского
под редакцией
Л.П.Ярославского

МОСКВА „РАДИО И СВЯЗЬ” 1984

Two -Dimensional Digital Signal Processing II Transforms and Median Filters Edited by T. S. Huang With Contributions by J.-O. Eklundh T.S. Huang В. I. Justusson H. J. Nussbaumer S. G. Tyan S. Zohar Springer-Verlag Berlin Heidelberg New York 1981
УДК 621.391:681.301 т. С. Хуанг, Дж.-О. Эклунд, Г. Дж. Нуссбаумер, Ш. Зохар, Б. И. Юстуссон, Ш.-Г. Тян. Быстрые алгоритмы в цифровой обработке изображений/Т. С. Хуанг, Дж. -О. Эклунд, Г. Дж. Нуссбаумер и др.; Под ред. Т. С. Хуанга: Пер. с англ. — М.: Радио и связь, 1984. — 224 с., ил. Изложены основы теории и применения новых эффективных в вычисли- тельном отношении алгоритмов цифровой обработки изображений. Рассмотрены алгоритмы быстрого транспонирования двумерных массивов, хранящихся во внешних запоминающих устройствах, принципы организации вычислений при реализации алгоритма Винограда дискретного преобразования Фурье, позволяю- щего выполнить его с уменьшенным, по сравнению с известными алгоритмами быстрого преобразования Фурье, числом умножений; раскрыты основные идеи, лежащие в основе полиномиальных преобразований и их использования для рычисления свертки и спектрального анализа двумерных сигналов; с позиций детерминистического и статистического подходов обсуждаются свойства медиан- ных фильтров и их возможные применения в обработке изображений. Для научных работников, занимающихся цифровой обработкой изображе- ний и других двумерных сигналов и вопросами ее математического и аппара- турного обеспечения. Табл. 26. Ил. 49. Библиограф. 168 назв. Редакция переводной литературы Перевод с английского А. А. Гурова, В. Б. Макулова, С. Л. Ярославского 1502000000—130 Б 046(01)—84 52—84 © by Springer-Verlag Berlin Heidelberg 1981. All Rights Reserved. Authorized translation from English language edition published by Springer-Verlag Berlin Heidelberg New York. © Перевод на русский язык, предисловие редактора перевода, примечания, дополнительный список литерату- ры, предложенный редактором перевода. Издательство «Радио и связь», 1984.
Предисловие редактора перевода Читателю, взявшему в руки эту книгу, нет надобности объяс- нять, насколько актуальными сейчас являются задачи цифро- вой обработки изображений. Но, может быть, не всякий чита- тель ощутил на себе, как велика дистанция от первых опытов, показывающих, что ту или иную задачу обработки изображений можно решить на ЭВМ. в принципе, до реальной регулярной ра- боты. И это — не только и не столько технические трудности создания или «добывания» достаточно мощной ЭВМ и устройств ввода-вывода изображений, а трудности принципиальные. Они связаны с тем, что изображение — это двумерный и, во- обще говоря, векторный сигнал, несущий огромное количество информации. Кроме того, изображение часто выступает как осо- бый сигнал, предназначенный для визуального восприятия. В этих случаях требуется, чтобы обработка выполнялась в реальном масштабе времени пользователя, т. е. за секунды или доли се- кунды на один кадр. Цветное изображение, содержащее 500X Х500 элементов (примерно соответствует телевизионному веща- тельному стандарту), по современным представлениям — весьма скромное по объему изображение, а ведь это массив в 750 000 бай- тов, который необходимо обработать за секунды, причем только пересылка этого массива со скоростью 1 Мбайт/с занимает почти секунду. Преодолеть это «проклятие размерности» можно лишь пра- вильной, рациональной организацией вычислений, такой органи- зацией, которая не только могла бы «бороться» с двум,ерностью, но и использовала бы двумерность для эффективной работы вы- числительных устройств последовательного действия, которыми мы в настоящее время располагаем. Если известна конкретная задача обработки изображений, мож- но искать эффективные способы обработки, учитывая особенно- сти и ограничения этой конкретной узкой задачи. Но если, как требуется сейчас, говорить о регулярной обработке изображений для решения достаточно широкого класса задач в этой области и создавать для этого аппаратурно-программно-алгоритмическое обеспечение, то необходимо выделить набор определенных стан- дартных операций, из которых, как из готовых блоков, можно строить алгоритм (и соответственно программу или цифровой процессор) для решения произвольной задачи. Такими операци- ями являются двумерная свертка, двумерное дискретное преоб- •5
разование Фурье и другие линейные ортогональные преобразо- вания. Хорошо известно, как стимулировало развитие цифровой об- работки изображений изобретение алгоритма быстрого преобра- зования Фурье и других быстрых алгоритмов ортогональных пре- образований. В последние годы в этом отношении наметился су- щественный прогресс, связанный с теоретико-числовыми преобра- зованиями, алгоритмом Винограда вычисления дискретного пре- образования Фурье и, наконец, полиномиальными преобразова- ниями, где удается воспользоваться двумерностью данных для ускорения вычислений. Предлагаемая читателю книга поможет специалистам освоить эти достижения. Но ДПФ и свертка — это только линейные преобразования. В арсенале средств обработки изображений необходимы и нели- нейные преобразования. Конечно, произвольное преобразование цифрового сигнала можно реализовать из линейных и нелиней- ных преобразований отдельных отсчетов сигнала (поэлементных нелинейных преобразований). Однако все-таки желательно иметь более крупные блоки, чем поэлементные преобразования. Особенность изображений как двумерных сигналов состоит в том, что отдельные элементы изображения меняются обычно не независимо друг от друга, а находятся в определенной связи с соседними элементами. Поэтому большинство алгоритмов преоб- разования изображений носит локальный характер, т. е. обраба- тывают изображения сразу по группам элементов, располагаю- щихся в некоторой окрестности вокруг данного. Линейные пре- образования легко и естественно удовлетворяют такому свойству локальности и при этом допускают построение алгоритмов, вы- числительная сложность которых мало зависит от размеров охва- тываемой окрестности. Такие же свойства требуются и от нели- нейных преобразований изображений. В настоящее время намечается формирование одного весьма полезного класса нелинейных преобразований, обладающего свойствами локальности и простоты вычислений. Его составляют алгоритмы, которые можно было бы назвать алгоритмами ран- говой фильтрации, так как они основаны на измерении локаль- ных ранговых статистик изображений. Поскольку любые ранго- вые статистики можно найти из локальных гистограмм, а локаль- ные гистограммы можно вычислить рекурсивно, в принципе вы- числительная сложность алгоритмов ранговой фильтрации почти не зависит от размеров окрестности. При вычислении конкретных ранговых статистик и производных от них возможны дальнейшие упрощения, связанные, в частности, с информационной избыточ- ностью изображений. Наиболее известный сейчас алгоритм этого класса — алгоритм медианной фильтрации. Ему посвящены две главы предлагаемой книги, которые, безусловно, привлекут внимание специалистов, так как в них впервые подробно и систематически разбираются б
свойства медианных фильтров. Как известно, медиана является робастной (устойчивой к распределению) оценкой среднего зна- чения выборки, и именно свойство робастности определяет пре- имущества медианного фильтра перед фильтрами, вычисляющими локальное среднее и использовавшимися до сих пор для сглажи- вания изображений. Эта связь медианной фильтрации с робаст- ными алгоритмами оценки параметров, развиваемыми в настоя- щее время в математической статистике, не показана в книге, и поэтому на нее целесообразно указать особо. Она дает повод для далеко идущих обобщений медианных фильтров, например, обобщений в сторону создания медианных согласованных двумер- ных фильтров как робастных аналогов хорошо известных линей- ных согласованных фильтров. Другими примерами ранговых алгоритмов могут служить ал- горитмы экстремальной фильтрации, которые заменяют анализи- руемый элемент изображения максимумом или минимумом по окрестности. А если заменять значение элемента изображения его рангом по окрестности, т. е. номером, который данный эле- мент займет в ряду расположенных по возрастанию значений элементов в заданной окрестности, очевидно, мы получим не что иное, как хорошо известный алгоритм скользящей эквализации. Таким образом, к ранговым алгоритмам можно отнести и сколь- зящую эквализацию, и другие алгоритмы адаптивных амплитуд- ных преобразований, основанные на анализе локальных гисто- грамм. Эта связь подчеркивает еще одно свойство ранговых ал- горитмов, их локальную адаптацию к характеристикам обраба- тываемого изображения и потенциальные возможности использо- вания их не только для робастного сглаживания, но и для вы- деления признаков при препарировании и автоматическом распо- знавании изображений. Эти соображения также стоит учитывать при чтении последних двух глав книги. При переводе книги и переводчики, и редактор столкнулись с рядом трудностей, притом не только терминологического по- рядка. Книга невелика по объему, но очень насыщена новыми фактами, излагаемыми, особенно в гл. 2—4, в достаточно, а иног- да, может быть, чрезмерно общей форме. Поэтому мы постара- лись по возможности облегчить ее чтение с помощью примечаний. Надеемся, что читателю окажется полезным также предлагаемый редактором дополнительный список литературы на русском языке по вопросам цифровой обработки изображений и быстрым алго- ритмам обработки. Перевод книги выполнен В. Б. Макуловым (предисловие, гл. 1, 2, 4), А. А. Гуровым (гл. 3) и С. Л. Ярославским (гл. 5, 6). Д-р физ.-мат. наук Л. П. Ярославский
Предисловие В последнее десятилетие размах исследований в области циф- ровой обработки изображений стремительно возрос. И это не удивительно, если учесть, что в широком смысле обработка изо- бражений — это обработка многомерных сигналов, а большинство сигналов в реальном мире является многомерными. Фактически и одномерные сигналы, с которыми мы работаем, часто пред- ставляют собой упрощенную копию многомерных сигналов. На- пример, речь часто рассматривают как одномерный сигнал, т. е. функцию одной переменной (времени). Однако в действительности речевой сигнал существует в пространстве и поэтому является функций четырех переменных (трех пространственных переменных и времени). Существуют аналоговые (оптические и электронно-оптические) и цифровые методы обработки изображений. Из-за присущих цифровым методам преимуществ (гибкости, точности), быстрого развития вычислительной техники и таких связанных с ней от- раслей техники, как производство схем высокой и сверхвысокой степени интеграции, можно смело сказать, что, за исключением некоторых специальных задач, предпочтение отдается обычно циф- ровым методам. Цель данной книги, как и предыдущего тома (Two-Dimensional Digital Signal Processing I: Linear Filters), — дать глубокий ана- лиз трех важнейших классов цифровых методов решения задач обработки изображений: линейной фильтрации, преобразований и медианной фильтрации. Эти книги взаимосвязаны, но пользо- ваться ими можно и независимо друг от друга. В шестом томе серии Picture Processing and Digital Filtering (первое издание, 1975)1 были подробно рассмотрены избранные задачи цифровой обработки двумерных сигналов, включая преоб- разования, проектирование фильтров и реставрацию изображений. С тех пор в этих направлениях был достигнут значительный про- гресс. В 1978 г., когда планировалось второе издание этого тома (опубликовано в 1979 г.), мы решили не вносить существенных изменений, а лишь добавить новую главу, содержащую краткий обзор наиболее современных достижений. Мы рассчитывали, что подробное рассмотрение некоторых важных новых результатов 1 Имеется перевод: Обработка изображений и цифровая фильтрация/Под ред. Т. Хуанга: Пер. с англ. — М.: Мир, 1979. — 318 с. — Прим. ред. 8
появится в последующих томах физической серии издательства Шпрингер. Две книги, о которых здесь идет речь, стали первыми из за- думанных томов. Материал в них разделен на три части. В пер- вой, посвященной линейным фильтрам, представлены полученные недавно основные результаты в области синтеза рекурсивных и нерекурсивных фильтров, исследования их устойчивости, калма- новской фильтрации (с приложением к улучшению визуального качества и реставрации изображений). Среди наиболее важных вопросов здесь рассмотрены вопросы проектирования и исследо- вания устойчивости рекурсивных по полуплоскости фильтров, пред- ставляющих в настоящее время большой интерес. Вторая и третья части вошли в настоящий том. В разделах, посвященных преобразованиям, обсуждаются две задачи: алго- ритмы транспонирования больших матриц и теоретико-числовые методы вычисления преобразований и свертки. Приведен деталь- ный вывод алгоритма Винограда преобразования Фурье. В первой и второй частях основное внимание уделено линей- ной обработке. В третьей части, посвященной медианной фильт- рации, изучается особый метод нелинейной обработки. Медианная фильтрация стала довольно популярной в обработке изображений и речевых сигналов. Однако по этим вопросам опубликованы лишь скудные материалы. Две главы третьей части содержат но- вые результаты, большинство из которых приводятся здесь впервые. Главы в этом томе носят дидактический характер. В то же время они выводят читателя на самый передний край совре- менных исследований. Книга будет полезна как справочник на- учным работникам и инженерам, может служить дополнительным учебным пособием при чтении курсов различной сложности по цифровой обработке сигналов, обработке изображений и цифро- вой фильтрации. Урбана, Иллинойс, сентябрь 1980 Томас С. Хуанг
ГЛАВА 1 ВВЕДЕНИЕ (Т. С. Хуанг) 1 Цель этого тома заключается в подробном рассмотрении дву- мерных цифровых преобразований и медианной фильтрации. Такой выбор продиктован приложениями этих -математических операций к обработке изображений. Существуют три основные области обработки изображений [1.1]: эффективное кодирование, реставрация и улучшение визу- ального качества изображений, распознавание образов. Многие методы реставрации и улучшения визуального качества изобра- жений основаны на использовании линейных пространственно-ин- вариантных (ЛПИ) фильтров. Такие фильтры подробно рассмот- рены в [1.1, 1.2]. Преобразования и связанные с ними методы позволяют построить эффективную с вычислительной точки зре- ния реализацию ЛПИ-фильтров. Многие преобразования полезны также при эффективном кодировании и выделении признаков в распознавании образов. Для успешной реставрации изображений и улучшения их ви- зуального качества часто требуются нелинейные методы. Одним из таких методов, популярных в последнее время не только в обработке изображений, но и вообще в обработке сигналов, яв- ляется медианная фильтрация. Этот метод может применяться также при решении некоторых задач, связанных с распознава- нием, например, утоньшения линий и выделения небольших изо- лированных объектов на изображении. В следующих разделах более подробно обсуждается содержа- ние глав этой книги. 1.1. Преобразования Различные двумерные преобразования рассматривались с еди- ных позиций (на основе понятия внешнего произведения) в [1.2, гл. 2]. Более детальное обсуждение некоторых из них можно най- ти в [1.3]. Среди этих преобразований наиболее широко применя- ется, несомненно, преобразование Фурье. Другие полезны главным образом в кодировании изображений и отчасти — в задачах рас- познавания. Опыт последних лет показал, что среди независи- мых от изображений преобразований (в эту категорию не входит преобразование Карунена — Лоэва) наилучшие результаты в ко- 1 Department of Electrical Engineering and Coordinated Science Lab., Uni- versity of Illinois, Urbana, IL618O1, USA. 10
дировании изображений дают дискретное косинусное преобразо- вание (ДКП) и слэнт-преобразование \ Как показано в [1.4], с теоретической точки зрения ДКП асимптотически оптимально для всех марковских сигналов конечного порядка1 2. Джейн недавно ввел новое семейство унитарных преобразований, которое вклю- чает многие известные преобразования, такие, как ДКП [1.5]. Разложение по сингулярным значениям (РСЗ) и его приложе- ния достаточно глубоко рассмотрены в [1.2, гл. 1, 2]. Недавно было проведено сопоставление поведения сингулярных значений с автокорреляционной функцией изображения [1.6]. Разработан новый метод подавления шума при реставрации изображений по- средством РСЗ [1.7]. Обычный метод вычисления ДКП состоит в использовании быстрого преобразования Фурье [1.8, 1.9]. Однако новейшие бы- стрые алгоритмы обещают увеличение скорости в шесть раз [1.10]. Для выполнения двумерных преобразований, таких, как пре- образование Фурье или Адамара, на ЭВМ, чья память на маг- нитных сердечниках не позволяет хранить изображение целиком, необходима дополнительная память. При этом обычно исполь- зуется транспонирование матриц. Эффективный алгоритм транс- понирования матриц был предложен в 1972 г. Эклундом [1.11]. Несколько позже он разработал два новых алгоритма и получил некоторые результаты по оптимальной стратегии [1.12] (см. также [1.13]). С другой стороны, двумерное дискретное преоб- разование Фурье (ДПФ) и аналогичные ему преобразования мож- но выполнять и без транспонирования матриц [1.14—1.18]. Интересной новой областью исследований является использо- вание теоретико-числовых методов в обработке сигналов. Пер- вым, кто предложил применить теоретико-числовые преобразова- ния (ТЧП) (например, преобразования по числам Ферма) для вычисления быстрой двумерной свертки, был Рейдер. Блестящим введением в эту идею является раздел, написанный им в [1.24]. Детальное изложение можно найти в [1.25, 1.26]. Используя ТЧП, заметную экономию вычислений можно получить в тех случаях, когда: 1) одномерные последовательно- сти, подлежащие обработке, относительно коротки; 2) необходи- ма значительная точность и 3) операции умножения дороже опе- раций сложения. 1 В оригинале slant transform. Этот термин иногда переводится как преоб- разование по наклонному базису или преобразование по пилообразному базису; смысл состоит в том, что базисные функции имеют кусочно-пилообразную фор- му. — Прим. ред. 2 Преимущество дискретного косинусного преобразования связано с более фундаментальным фактом — ДКП соответствует преобразованию Фурье чет- ным образом продолженных последовательностей. Благодаря четному продолже- нию устраняются разрывы на краях последовательности и ее ряд Фурье схо- дится намного быстрее [1]. — Прим. ред. 11
Виноград применил теоретико-числовые методы к вычислению ДПФ [1.27—1.30]. При этом число умножений значительно сни- жается по сравнению с БПФ, а число сложений почти не ме- няется. Например, для 1024-точечной последовательности БПФ требует 12 288 умножений и 26 624 сложений, тогда как алгоритм Винограда преобразования Фурве (АВПФ) для 1008 точек тре- бует 4212 умножений и 25 224 сложений. Дополнительные сведе- ния и соображения по программной реализации можно найти в [1.31—1.34]. АВПФ реализован в быстродействующем процессоре обработ- ки сигналов [1.35]. Ошибки квантования (обусловленные округ- лением и квантованием коэффициентов) при АВПФ для случая вычислений с фиксированной запятой изучались в [1.36]. Было обнаружено, что в общем случае при той же ошибке вычислений АВПФ требует для представления данных на 1—2 бита больше, чем алгоритм БПФ. Материал по преобразованиям в книге разделен на две части: алгоритмы транспонирования матриц и теоретико-числовые ме- тоды. В гл. 2 обсуждаются некоторые эффективные алгоритмы транспонирования матриц, а также прямой метод преобразова- ния Андерсона [1.14]. В гл. 3 описываются быстрые алгоритмы цифровой свертки и преобразования Фурье, основанные на поли- номиальных преобразованиях. В некоторых алгоритмах использу- ется комбинация полиномиальных преобразований и алгоритма Винограда. Подробный вывод АВПФ приведен в гл. 4. 1.2. Медианные фильтры Линейные пространственно-инвариантные (ЛПИ) фильтры по- лезны для реставрации и улучшения визуального качества изо- бражений. Их можно применять, например, при реализации ви- неровских фильтров для снижения уровня шума на изображениях. Однако, чтобы подавить шум и при этом сохранить контурную, часть изображений, приходится применять нелинейные или линей- ные пространственно-неинвариантные (ЛПНИ) фильтры. Ограниче- ния на использование ЛПИ-фильтров в задачах реставрации изо- бражений обсуждаются в [1.2, гл. 1, 5]. Многие нелинейные и ЛПНИ-фильтры для реставрации изо- бражений описаны в [1.2, гл. 1, 5]. В гл. 5 предыдущего тома, посвященного линейным фильтрам [1.1], были описаны калма- новские ЛПНИ-фильтры, используемые для подавления шума при реставрации изображений. В гл. 5 и 6 этого тома рассмотрена особая нелинейная процедура — медианная фильтрация. Обнару- жено, что применение медианных фильтров эффективно для по- давления некоторых видов шума и периодических помех без од- новременного искажения сигнала [1.37—1.39]. Такие фильтры стали весьма популярны в обработке изображений и речевых сиг- налов. 112
Поскольку теоретический анализ поведения медианных фильт* ров очень труден, опубликовано очень мало результатов по этому вопросу. Две главы нашей книги содержат в основном новые результаты, не освещенные до сих пор в открытой литературе. В гл. 5 рассматриваются статистические свойства медианных фильтров. В частности, излагаются различные свойства выходно- го сигнала медианного фильтра при гауссовском шуме или сумме ступенчатой функции и гауссовского шума на входе. Глава 6 посвящена детерминированным свойствам медианных фильтров. Особенно интересными представляются результаты, от- носящиеся к так называемым стабильным точкам медианных фильтров. Стабильной точкой является последовательность (в од- номерном случае) или массив (в двумерном случае), которые не изменяются при медианной фильтрации. В гл. 6 Тян показал, что в одномерном случае стабильными точками медианных фильтров являются «локально-монотонные» последовательности. Исключе- ние составляют некоторые периодические двоичные последова- тельности. В последнее время Галлагер и Вайс [1.40] сумели устранить это исключение, ограничив длину последовательностей. В гл. 6 кратко описан эффективный алгоритм [1.39] медиан- ной фильтрации, основанный на модификации гистограмм. В [1.41, 1.42] обсуждается аппаратурная реализация медианной фильтрации в реальном масштабе времени на основе цифровых избирательных схем. Метод нахождения медианы, основанный на двоичном представлении элементов изображения в апертуре филь- тра, предложен в [1.43], где сравниваются аппаратурная реали- зация этого метода, алгоритм преобразования гистограмм и ме- тод цифровых избирательных схем по сложности и скорости. Реа- лизация медианных фильтров на двоичном матричном процессоре рассмотрена в [1.41]. Разработан метод реализации медианных фильтров в конвейерном процессоре, работающем синхронно с видеосигналом [1.45]. В гл. 5 и 6 изложен материал главным образом теоретического характера. В качестве дополнения представим здесь некоторые экспериментальные результаты. На рис. 1.1 показаны примеры стабильных точек медианных фильтров. Даны исходное изобра- жение (а) и результаты шестикратного применения трех различ- ных медианных фильтров (б). Дальнейшее применение фильтров не вносит существенных изменений в результаты. Таким образом, изображения на рис. 1.1, б—г являются стабильными точками трех медианных фильтров. Медианные фильтры особенно удобны для борьбы с импульс- ным (точечным) шумом. Этот факт иллюстрируется на рис. 1.2. На рис. 1.2, а показан результат передачи изображения 1.1, а по двоичному симметричному каналу с шумом при использовании импульсно-кодовой модуляции. В этом случае на изображении появляется импульсный шум. Применение медианного фильтра позволяет подавить большую часть шумовых выбросов (рис. 1.2, б), 13
Рис. 1.1. Стабильные точки медианных фильтров: а—аэрофотоснимок части аэропорта, дискретизированный на 256x256 элемен- тов по 8 бит/отсчет; б — изображение, подвергнутое шестикратной медианной фильтрации с крестообразной апертурой 3x3; в — то же, при квадратной апер- туре 3X3; г — то же, при квадратной апертуре 5x5 Рис. 1.2. Сравнение медианной фильтрации и линейного сгла- живания: а -- изображение аэропорта, искаженное импульсным шу- мом; б — медианная фильтра- ция е крестообразной аперту- рой 3X3; в — линейное сглажи- вание с крестообразной апер- турой 3X3 14
в то время как линейное сглаживание оказывается совершенно неэффективным (рис. 1.2, в). Хотя в гл. 5 и 6 обсуждаются двумерные (пространственные) фильтры, очевидно, что к движущимся изображениям, таким, как телевизионные, могут применяться трехмерные медианные фильт- ры (пространственно-временные), т. е. апертура фильтра может быть трехмерной. Медианная временная фильтрация особенно удобна для подавления пачек шумовых выбросов, включая выпа- дение строк. Кроме того, она на.мдодо .лучше, чем временное усред- нение (линейное сглаживание), сохраняет .движение. В [1.46] опи- сано несколько экспериментов по временной фильтрации (включая фильтрацию с компенсацией движения). В одном из эксперимен- тов по фильтрации последовательность кадров панорамирования, содержащая белый гауссовский шум и случайные выпадения строк, подвергалась медианной фильтрации и линейному сглажи- ванию. Кадровая частота последовательности составляла 30 кадров/с, каждый кадр содержал примерно 200 строк по 256 элементов в каждой с 8 бит/отсчет. Панорамирование прово- дилось горизонтально со скоростью примерно 5 элементов изо* бражения на кадр. Результаты по одному кадру показаны на рис. 1.3: зашумленный исходный кадр (а), тот же кадр после линейного сглаживания (б) и кадр, обработанный медианным фильтром (в). Необходимо отметить, что медианный фильтр дает Рис. 1.3. Временная фильтра- ция последовательности кадров панорамирования: а — зашумленный оригинал; б — линейное сглаживание по трем кадрам; в — медианная фильтрация по трем кадрам 15
намного лучшие результаты в отношении снижения числа выпа- дений строк и сохранения резкости контуров. Однако для подав- ления гауссовского шума более эффективно линейное сглажива- ние. Приведенные данные согласуются с теоретическими (см. гл. 5 и 6). Хотя и медианная фильтрация и линейное сглаживание ис- пользуются для улучшения субъективного качества изображения, пока не ясно, способствуют ли они дальнейшему машинному ана- лизу изображений — распознаванию образов или измерениям на изображении. Были проведены тщательные исследования влияния линейной и медианной фильтрации на эффективность выделения контуров, анализ формы и текстурный анализ. Некоторые резуль- таты приведены в [1.47]. глава 2 ЭФФЕКТИВНЫЕ МЕТОДЫ ТРАНСПОНИРОВАНИЯ МАТРИЦ (Дж.-О. Эклунд) 1 В этой главе опишем несколько различных алгоритмов транс- понирования матриц, доступ к которым может осуществляться по строкам и столбцам, и обсудим их эффективность в отношении требуемой памяти и числа операций ввода-вывода. Особое вни- мание уделим матрицам, размеры которых являются составным числом, например степенью 2. Оптимальные алгоритмы будут построены именно для этого последнего случая. Обсудим также, как можно обрабатывать произвольную матрицу, если встраивать ее в большую, обладающую нужными свойствами. Большинство описываемых алгоритмов требует произвольной адресации к каж- дой строке (или столбцу), как это делается в дисковом файле с произвольным доступом. Внимание будет уделено также случаю, когда доступ к строкам осуществляется только последовательно, как в ленточном файле. Первый случай представляет особый ин- терес, так как некоторые методы позволяют транспонировать квад- ратную матрицу, оставляя ее на своем месте. А это, в свою оче- редь, означает возможность выполнения также любых двумерных разделимых преобразований квадратной матрицы без выделения дополнительного места во внешней памяти. Рассмотрим также непосредственный метод двумерного преоб- разования Фурье. Сравнение его с методом, предполагающим 1 National Defense Research Institute (FOA), P. O. Box 11.66 S-581 11 Lin- koping, Sweden. 16
транспонирование, показывает, что в обычных приложениях они по существу равноценны по эффективности. Однако имеются и важные различия. 2.1. Транспонирование матриц в обработке сигналов Интегральные преобразования (например, преобразование Фурье) являются важным вычислительным инструментом в циф- ровой обработке сигналов. В двумерном случае их дискретные представления являются двойными суммами, вычисляемыми по- следовательно по двум координатам. Эти двойные суммы можно вычислять непосредственно, когда преобразуемый массив целиком размещается в оперативном запоминающем устройстве (ОЗУ). Задача усложняется, когда это невозможно или невыгодно. Часто матрицы хранятся в блок-ориентированных запоминающих уст- ройствах, например на дисках, когда наименьшей доступной записью является полная строка или полный столбец. В этом случае непосредственное вычисление преобразования становится дорогим вследствие затрат времени на доступ к матрице, храня- щейся во внешнем запоминающем устройстве (ВЗУ). Один из способов решения этой проблемы заключается в транс- понировании матрицы после преобразования по строкам. Другой способ, предложенный в [2.1], вытекает непосредственно из опре- деления быстрого преобразования Фурье (БПФ); при этом не- обходимо помнить, что БПФ строится как последовательность преобразований над подмассивами и все эти преобразования вы- полняются с оставлением массива на месте. Оба подхода основаны на разделимости преобразования Фурье. Двумерное дискретное преобразование Фурье (ДПФ) комплекс- ного массива х (т, ri), т=0, 1, ... , М—1, п = 0, 1, ... , N—1, можно определить следующим образом: М-1 N-1 Х(£, Z)-2 х(т, n)W^W%, k^O, 1,..., М — 1, nY-0 п=0 / = 0, 1,..., N— 1, (2.1) где для удобства обозначено 1Рр = ехр(—2л)’/Р). Разделимость означает, что ядро преобразования W1" является произведе- нием двух функций, одна из которых зависит только от т, а другая — от п. Это позволяет вычислять преобразование за два шага: сначала Y (т, /) = V x(m, , п--0 (2.2а) а затем 1 , X (k, /) = 2 Y (т, 1) W%’, т~0 (2.26) 17
где первая сумма является JV-точечным одномерным ДПФ по строкам матрицы [х(т, п)], а вторая — M-точечным одномерным ДПФ по столбцам результирующей матрицы [Y(m, /)]. Следова- тельно, двумерное преобразование можно вычислить с помощью одномерного преобразования и транспонирования матриц, что представляет особенный интерес,ф поскольку существует быстрый алгоритм для одномерного ДПФ и, кроме того, этот алгоритм можно реализовать аппаратурно. С другой стороны, факт, что сумма в (2.26) также является ДПФ, наводит на мысль о возможности непосредственного вы- числения [Х(&, Z)] с использованием методов итеративного сум- мирования для БПФ в сочетании с вводом и выводом преобра- зованных строк. Подходы, основанные на транспонировании, применимы к лю- бым разделимым преобразованиям, а прямые методы работают, если существует быстрый алгоритм преобразования, как например, в случае преобразования Адамара. Оба метода обобщаются также для более высоких размерностей. (О вычислении ДПФ с исполь- зованием траспонирования см. [2.2].) Важнее, однако, что и одномерные преобразования больших массивов могут быть разбиты на преобразования меньших мас- сивов и транспонирование матриц. В случае ДПФ это можно сделать в соответствии с [2.2]. ДПФ массива x(m), т = 0, 1,..., М—1, можно определить сле- дующим образом: X(k) = M^x(m)W^, k = 0, 1,..., М-1. m=0 Теперь, если M=M0Mi, запишем т = т1Мй-\-тй, 0^тв<Мо, k = k0M1 + k1, 0^ko<Mo, 0<^<Мъ и рассмотрим х и X как матрицы, положив x(m)^z/(m0, mJ; X(k)ttY(klt k0). Так как 1ГмМоМ' = 1 и = , то У (ki, ^o)=S7mJ^’+"1-A,’)(^Zf‘M-)^ тя-—0 т, — (1 М„-1 М,—1 = 2 2 у Мо) 1 А“. п:0 —О Вычислив сумму за два шага, получим Z (m0, kJ = (m0, mJ k' , тг—0 mo = 0, 1,.,., Mo— 1, fci=0, 1,..., Mj—1; (2.3) (2.4) (2.5) (2.6) (2.7) (2.8) (2.9) 18
Af„-1 . Y(klt £0) = 2 2(m0l m„=0 &o = O- 1. •••. Mo— 1, ^ = 0, 1. Mx— 1. (2.10) Здесь для данной строки у сначала вычисляем соответствующую строку Z путем перемножения соответствующих фазовых множи- телей и суммирования. Затем для данного столбца Z вычисляем его ДПФ, являющееся соответствующим столбцом У. Для этого необходимо применить транспонирование Z. Были предложены также другие методы вычисления одномер- ных и многомерных преобразований в ОЗУ ограниченного объема. Одни методы требуют транспортирования матриц (см., например, (2.2, 2.3]), другие не требуют (см., например, [2.4, 2.5]). Последние, в общем, менее эффективны. 2.2. Методы транспонирования матриц, хранящихся во внешних запоминающих устройствах 2.2.1. Определение критериев эффективности В следующих разделах будет описан ряд методов транспони- рования матриц, хранящихся в ОЗУ так, что каждая запись со- держит одну строку (или столбец). В дальнейшем, однако, будем всегда считать, что матрицы записаны построчно. Работа всех ал- горитмов, в общем, состоит в том, что они считывают ограничен- ное число записей в ОЗУ, переупорядочивают их, формируют но- вые выходные записи и заносят их в выходной файл, совпадающий или не совпадающий с входным файлом. Эффективность алгорит- мов будет определяться с точки зрения требуемого числа ячеек RM ОЗУ и числа операций ввода-вывода 10 (т. е. числа записей, которые нужно считать или записать). Эти показатели не учиты- вают всех вычислительных затрат, однако неучтенной частью мож- но пренебречь или считать ее неизменной для разных методов, ес- ли они применяются к одной и той же матрице. Точнее, сущест- вуют два основных неучтенных вида затрат. К первому виду относятся затраты на переупорядочение дан- ных в памяти для формирования новых выходных записей. Однако новые записи на выходе можно создавать без фактического пе- ремещения данных в памяти. Например, можно использовать не- явные циклы в операторах вывода в Фортране (см. разд. 2.7). Следовательно, затраты процессорного времени невелики и, кро- ме того, они пропорциональны произведению числа элементов матрицы на число просмотров данных, которое уже учитывается в числе операций ввода-вывода. Хотя мы считаем все алгоритмы построенными именно таким способом, для простоты будем го- ворить о транспонировании матриц и переупорядочении масси- вов в памяти. 19
Неточность оценки второго вида возникает вследствие того, что при учете числа пересылаемых записей мы пренебрегаем возможным различием длин записей для того или иного ме- тода. Поэтому для большей точности необходимо учитывать так- же число слов, подлежащих пересылке. Однако затратами на это можно пренебречь по двум *причинам. Во-первых, время до- ступа к одной записи обычно намного больше, чем время пере- сылки одного слова. Для современных быстродействующих нако- пителей на дисках отношение этих времен обычно превышает 1000. Во-вторых, тщательное рассмотрение различных методов показы- вает, что возможные изменения длины записи обычно малы по сравнению с этим отношением. 2.2.2. Простой метод блочного транспонирования Простой и очевидный метод транспонирования матрицы MXN приведен в [2.1]. При транспонировании этим методом исходные записи длиной N слов разбиваются на части длиной К слов, где К выбирается так, чтобы КМ элементов могли быть размещены в ОЗУ. Затем для каждого 1,..., N/K в ОЗУ считываются уко- роченные записи с номером j = i, i-]-NlK, — , i+ (М—l)N/K, обра- зуя там матрицу МХК, которая затем подвергается транспони- рованию. При этом создаются К последовательных строк матри- цы-результата, которые могут быть переписаны во внешнее за- поминающее устройство. Число операций считывания-записи, необходимых для этого алгоритма, пропорционально MXNIK1. Для обеспечения высокой эффективности необходимо стремиться к большим значениям К, следовательно, требуется большой объем памяти ОЗУ. Фактиче- ски этот метод сопоставим с другими предлагаемыми методами только в тех случаях, когда матрица может быть размещена в ОЗУ почти целиком. Аналогична эффективность и другого ме- тода блочного транспонирования [2.3]. 2.2.3. Транспонирование с использованием разбиений на квадраты Второй алгоритм был впервые предложен Эклундом [2.6]. Он основан на последовательном транспонировании квадратных фраг- ментов и является естественным обобщением другого метода, опи- санного [2.7]. Он также сходен _с методом, используемым в [2.8]. Пусть А — матрица MXN и М = пц ...-гпр^М, где тг>1. По- ложим т0=1, Ма = М, Л'о = Л' и определим для t=l,..., р Pt = пц-... rrii, (2.11) * Указанное автором выражение определяет только число операций считы- вания. Для записи матрицы-результата необходимо еще А’ операций записи. Таким образом, общее число операций ввода-вывода, необходимых для блочно- го алгоритма, определяется выражением MxNIK + N. — Прим, перев. 20
= (2.12) f ГН I I Г N, ,] M^=T (2.!3) где [ 1 определено следующим образом: И=И’ *(2.14) 1[х]4-1 в противном случае, [ ]—обозначение целой части х. Тогда транспонирование мат- рицы А можно выполнить за р шагов следующим образом. Шаг 1. Сформируем ЛК матриц размерами mi ХМ из последо- вательных строк А. Каждую такую матрицу можно разбить на ЛК матриц miX/ni, возможно, дополнив ее предварительно нулями [не более mjmi—1) нулей]. Эти квадратные матрицы можно те- перь транспонировать на месте. В результате получим матрицу Л(1), элементами которой будем считать подматрицы IxPi — фраг- менты строк. При таком рассмотрении матрица Л(1) имеет разме- ры PyMiXNi. Определим индуктивно i-й шаг, считая первые i-1 шагов вы- полненными. Шаг i. На шаге i начнем с матрицы размерами Pi-iMi-i xNi-i. Элементами этой матрицы являются подматрицы — фрагменты строк размерами 1ХР<-1. Затем из строк матрицы строим подматриц m{xNi-i. Каждая из этих под- матриц формируется из тех строк матрицы Л(’-1), которые нахо- дятся в ней на расстоянии Pf-i строк друг от друга. Выбор строк для каждой подматрицы выполняется следующим образом. Если обработано строк (Х=1,.„, Mi—1), то выбираются т, строк, начиная с первой необработанной строки, т. е. строки XP,+p-> ц=1, 2,..., Pi-i, так, что каждая следующая выбираемая строка отстоит от предыдущей (уже выбранной) на Pt--i строк *. Следо- вательно, типичная подматрица состоит из строк, номера которых в матрице А‘~1 определяются выражением XPi + p+vPi-i, где v = 0, 1,... rrti—1, а значения А и у, из указанных выше диапазонов зафиксированы для каждой подматрицы. Сформированные подматрицы, при необходимости дополненные нулями, можно разбить на Ni матриц т{ХШг. Элементами этих квадратных матриц будем считать фрагменты строк размерами 1ХЛ-1. Матрицы транспонируются, и получается матрица с размерами PiMiXNi с элементами-подматрицами 1хРг. Эти эле- менты являются фрагментами строк матрицы-результата А. 1 Представленный здесь алгоритм основан на разбиении исходной матрицы на квадратные фрагменты. Транспонирование выполняется сначала внутри каж- дого фрагмента, а затем фрагменты переставляются должным образом. Переста- новка фрагментов должна осуществляться построчно. Этот процесс и описан здесь. Некоторая сложность описания объясняется стремлением автора рассмот- реть наиболее общий случай. — Прим, перев. 21
Приведенное описание алгоритма дает интуитивное ощущение того, каким образом формируются строки матрицы А как части записей матрицы Это описание полезно также при анализе эффективности алгоритма. Однако из него не следует непосред- ственно, каким образом каждый элемент оказывается в конце концов на правильном месте. Поэтому опишем алгоритм по-дру- гому, безотносительно к разбиениям, так, чтобы иметь возмож- ность доказать работоспособность алгоритма и одновременно по- казать, как он может быть реализован. Вначале рассмотрим случай, когда M^N. Пусть Z(i)] обо- значает положение в матрице Л(б (не рассматриваемой больше как фрагментированная) элемента a(k, I) матрицы A, Z=l, ..., р; k = 0, 1,... М—1; 1 = 0, 1,... W—1. Отметим, что k и I можно един- ственным способом представить в виде £ — kp—1 Рр—1 + •• • + ^1^1 + ko, I = lp—i Р p—i + ••• + li Pl 4~ lg, (2.15) где 0^.ki<Zmi+r, 0^li<zmi+i, a Pi определяется выражением (2.11). Представление (2.15) очевидным образом получается из главных остатков при последовательном делении на т.\, тг,..., тр (подобно тому, как при обычной системе счисления). Для упро- щения будем использовать обозначения — М (Йр—1, . • , kg), I — tl (Ip—J, ..., Zj, Zg). (2.16) Теперь шаг 1 означает, что матрица А разбита на подматрицы /П1Х/И1, которые затем транспонируются. Следовательно, kW = n(kp_i,..., ki, lg), l^ = n(lp~i,..., 11г kg), (2.17) поскольку ki,... , kT,_\ и Zi, ... , lp-i определяют, к какой именно подматрице miXmi принадлежит данный элемент. По индукции предположим, что после Z-1 шагов имеем Jfe(<--I)=n(^J,_1, ..., kiy ki-i, It-,,..., lg), l{i-l) = n(lp^i,..., lh l^, kt-2,..., k0). (2.18) Шаг Z можно теперь описать следующим образом. Будем считать, что матрица разбита на подматрицы размерами PiXPi. Затем внутри каждой подматрицы сформируем матрицы прХт,, выби- рая всевозможные комбинации из пр строк и т{ столбцов, раз- деленных Pt—i строками (столбцами). Это означает, что k{,..., kp_i и Ц,..., остаются неизменными, так как они опре- деляют конкретную матрицу PiXPi, с которой мы работаем. То же относится и к Zi-2, — , Zo и &(_2,..., kg, поскольку эти значения определяют матрицу т{Хт{, к которой принадлежит элемент. В этой матрице элемент a(k, I) перед транспонированием нахо- дится в строке ki-i и столбце Z,_i. Поэтому после транспонирова- ния его положение в матрице Л(б определяется: k =tl(kp—i,..., kit ZJ-_1 li—2> lg), l(i} =n(lp_i,..., li, ki-i, k^, ..., kg). (2.19) 22
Следовательно, [^(р), /<у)] = (/, k). Это и доказывает, что a(k,l) занимает правильное положение в А^Х Отсюда видно, что транс- понирование выполняется как последовательный обмен разряда- ми в выражении (2.15), которое является представлением номеров строки и столбца в позиционно-численном представлении по сме- шанному основанию. В частности, если т, = 2 для всех i, то полу- чаем алгоритм, описанный в [2.7, 2.9]. Остается только установить соотношение между и А. Если Й=М, первые N строк Д<р>, очевидно, являются строками А, тогда как последние Л!—N строк содержат только нули. В сущности, ни- когда_нет необходимости создавать эти строки. С другой стороны, если Л4>М, то строки матрицы также содержат М—М нулей в конце каждой строки. Эти нулевые части строк, как и нулевые строки, никогда не следует записывать в выходную матрицу. Случай M<N может быть рассмотрен аналогично, если в (2.15) записать I = IpPp + Ip-^Pp-iA- +10 (2.20) (2.24) при для i = 0, 1,..., p—1 и 0</P. Конечное положение a(k, l) теперь будет [£(p), Z(p)], где k^lp-^Pp^ + .-. + lo, (2.21) /(₽) = lP Pp + kp^ Pp-t + . •. + k0. (2.22) В этом случае строки матрицы Д(р) содержат одну (Л?^#) или несколько (Л4<Л7) строк матрицы А. Записывая как расчле- ненную на матрицы NPMXM, где Np определяется (2.13), Д(Р) = (В1|В2| ...Bjvp), (2.23) получим А как f В. \ I Вг l-Р । 0 1-^—/ wTd \BN / Следует заметить, что эти операции, так же как и отбрасы- вание нулей, выполняются при формировании выходных записей на шаге р без дополнительной обработки данных. _ Если то, по крайней мере, для некоторых произведений М алгоритм сначала будет транспонировать матрицы КХК, где К. = тт(М, N), а затем отсекать (A^<^) или расщеплять (AJ^-Af) строки. Если строки матриц создаются при выводе на внешнее ЗУ, эффективность алгоритма по требуемому числу ячеек ОЗУ на i-м шаге характеризуется RMS = max {mt Рг_3. (2.25) 23
Л4 дополнительных ячеек памяти позволили бы действительно сформировать строки матрицы А в ОЗУ, что представляет инте- рес при выполнении двумерных преобразований. Однако это лег- ко можно сделать посредством транспонирования в основную па- мять, не используя дополнительные ячейки, если mp^NP, или при- меняя ntpNp дополнительных ячеек, если mp>Np (см. разд. 2.7). Оказывается, что для оптимального разбиения обычно mpNp<^ Можно заметить, что транспонирование в основной памяти на каждом шаге, вместо формирования выходной записи в задан- ном порядке, оказывается не только более медленным, но и тре- бует большего объема памяти. Точнее говоря, имеем RMS, = max{miJVzPI}. (2.26) В дальнейшем покажем (см. подраздел 2.3.1), что значение NiPi увеличивается с ростом i, откуда и следует, что RM3,^RMS. Если строки матрицы Д(р), состоящие из нулей, не записыва- ются, то необходимое число операций ввода-вывода будет опре- деляться выражением: р—1 IOs=M + 2£ MtPi + N. (2.27) t=i Если М = М, то представленный здесь алгоритм обладает тем свойством, что все матрицы Л=24(0>, Л(1),..., содержат по М строк, в то время как содержит N строк, если нули в ней отброшены. Отсюда вытекает, что число операций ввода-вывода зависит только от числа множителей М. Если, как упоминалось ранее, пренебречь изменением (увеличением) длины строк, то можно оптимизировать алгоритм для заданных М и р, миними- зируя требуемое число ячеек ОЗУ. Далее будет показано, как при некоторых условиях можно определить оптимальную в этом смысле факторизацию М. Если же эти условия не выполняются, оптимум можно легко найти в каждом конкретном случае. Кро- ме того, будет продемонстрирована зависимость решения от р. Если М>М, то факторизация, минимизирующая требования к па- мяти, не будет минимизировать требуемое число операций ввода- вывода, однако число операций ввода-вывода для разных факто- ризаций с одним и тем же числом сомножителей меняется незна- чительно. В связи с этим можно предложить простой алгоритм, который итеративно с увеличением М быстро находит фактори- зацию, минимизирующую требования к памяти для каждого р. Поскольку p^flog2M], легко определить, какое из этих решений является самым дешевым с точки зрения объема памяти и опе- раций ввода-вывода. В общем, таким способом можно опреде- лить стратегию, близкую к глобальному оптимуму. Этот подход будет описан в разд. 2.4. 1 Это доказано в разд. 2.3. — Прим, перев. 24
2.2.4. Алгоритм Флойда Алгоритм разбиения на квадраты обладает таким свойством, что если все сомножители М равны 2 или степеням 2, то он может быть реализован с помощью операций сдвига и маскиро- вания. Это следует из описания, приведенного в подразд. 2.2.3 (см. также [2.7]). Другой алгоритм, предложенный Флойдом, также обладает этим свойством. Он совпадает с алгоритмом раз- биения на квадраты, если M=N=2m и может быть применен к любой квадратной матрице непосредственно (без дополнения ну- лями). Матрица МхМ может быть транспонирована за p = log2M проходов, используя 2М ячеек основной памяти, следующим об- образом: 1) формируем матрицу А(1), у которой aw(k, I) =а(—k, I)", 2) формируем матрицу В<°>, у которой b(0)(&, =aw(k, I); 3) рекурсивно, для i=l,..., р формируем В(<) из ди-о, сдвигая столбцы, в номерах которых i-й двоичный разряд [см. Zi—i в (2.15)] равен 1, на 2‘ мест; 4) формируем матрицу А из В(р), полагая a(k, I) =bip)(k, Заметим, что ни Аб), ни В(0) или на самом деле созда- вать не нужно. Доказательство алгоритма приведено в [2.10]. Используя, скажем, 2тМ ячеек ОЗУ, можно выполнить т шагов алгоритма за один проход, как в алгоритме разбиения на квадраты. Однако этот алгоритм затем требует некоторой допол- нительной «бухгалтерии», так как циклический сдвиг элементов охватывает все строки и не может быть выполнен поэтому внутри данной части из 2т строк. Таким образом, видим, что если используются RMf = 2т М (2.28) ячеек памяти, число операций ввода-вывода IOf = 2М [log2 М/т]. (2.29) В частности, в [2.10] показано, что если М является сте- пенью 2, то правая часть (2.29) является также нижней границей числа операций ввода-вывода, необходимых для транспонирования матрицы МхМ при данном объеме памяти. Следовательно, этот алгоритм, так же как алгоритм разбиения на квадраты и ал- горитм, представленный в следующем разделе, минимизирует Ю для данного значения RM. Можно отметить, что ту же самую нижнюю границу получил Стоун [2.11], который также разра- ботал алгоритм, достигающий этой границы. Однако его алго- ритм не применим непосредственно к решению этой задачи и не может быть реализован с помощью только операций сдвига и маскирования. Равенство (2.29) дает только верхнюю границу требуемого числа операций ввода-вывода. В этом отношении оптимальный алгоритм фактически может быть много лучше. Например, опти- 25
мальный алгоритм для матрицы 5x5 с т = 1 даст 10=28 по срав- нению с верхней границей, равной 30 [2.10]. Не существует, од- нако, алгоритма, который обеспечивал бы минимальное значение 10 для всех квадратных матриц при заданном значении RM. Ал- горитм Флойда в том виде, как он описан здесь, в общем случае требует затраты большего числа операций ввода-вывода, чем другие алгоритмы, которые здесь рассматриваются. Однако эти алгоритмы обычно требуют несколько большего объема оператив- ного или внешнего ЗУ. Пример будет приведен в разд. 2.5. Алгоритм Флойда можно очевидным образом обобщить на случай прямоугольной матрицы, используя подход, описанный в подразд. 2.2.3. 2.2.5. Транспонирование методом «ввод строки-вывод столбца» Этот алгоритм является обобщением предложенного Кнутом [2.12] алгоритма транспонирования матриц, хранящихся в ЗУ по- следовательного типа. В первоначальном виде алгоритм транс- понирует матрицу МХМ, хранящуюся последовательно (в фор- ме одна запись — одна строка) за [log2AJ] проходов, используя 2fl°e=Afl+I ячеек ОЗУ и четыре дополнительных последовательных файла. Рассмотрим работу алгоритма. На каждом шаге создают- ся два файла. Шаг 1. Файл 1'. 1^21012022 ••• ^1, М/2^2, Af/2 ••• ••• ... Ом-3,мОм—2, М- Файл 2: 031014^32042... Цз, м/гЩ, м/г Нзм^м^^аугИбг ... Ом-1, мОм.М- Шаг 2. Файл 3: 01102103101410112022032042... Oi, м/402, м/403, м/4 04, м/4 ••• ... 04, м0э1 ... Ом-5, м- Файл 4: 051061071031052062072032... 05, мЦа^ м/цО-т, м^аа, мА ... ... 08, мО;з, 1 ...Ом, м- Каждые два файла на следующем шаге обрабатываются син- хронно посредством считывания одной записи из каждого вход- ного файла и последующей записи данных в выходные файлы в новом порядке, по две записи в каждый файл попеременно. Очевидно, транспонирование будет получено после flog2TH] про- ходов или после M[log2 Al] операций считывания и записи. В процессе работы возникает необходимость в незначительном изменении размеров записей. Фактически требуется увеличивать некоторые записи таким образом, чтобы на i-м шаге, f= 1,..., [log2 Л4] — 1, они содержали по k2i элементов, где k — четное чис- ло. Это означает, что некоторые входные записи на последнем шаге содержат 2 Г1ое2м| элементов. Тщательное рассмотрение алгоритма показывает, что i-й шаг в действительности соответствует последовательности полных пе- 26
обстановок [2.11] пар массивов, элементами которых являются подмассивы из 2;~1 элементов. В этом смысле алгоритм Кнута, конечно, подобен алгоритму Стоуна [2.11], но перестановки вы- полняются при выводе на внешнее ЗУ и переупорядоченные мас- сивы на каждом шаге i не формируются в ОЗУ на этом шаге. Такое обстоятельство наводит на мысль о небольшой модифика- ции алгоритма, при которой на последнем шаге транспонируются матрицы 2x2, элементами которых являются матрицы-столбцы из 2 ri°g2M]-1 элементов. Таким образом, получаем строки транспонированной матрицы в ОЗУ перед записью их в выходной файл. Это свойство полезно, если алгоритм применяется в соче- тании, например, с вычислением БПФ. Рассмотренный алгоритм может быть естественным образом обобщен на случай прямоугольных матриц с помощью метода, описанного в подразд. 2.2.3. Он эффективен для транспонирования матриц, хранящихся в ЗУ последовательного типа. Например, он, вообще говоря, более эффективен, чем подход, предложенный в [2.14, 2.15] (доказательство см. в [2.6]). Пусть матрица А хранится в ЗУ с произвольным доступом. Тог- да алгоритм имеет обобщение, которое работает в точности анало- гично алгоритму разбиения на квадраты, за исключением только одного аспекта. Имея матрицу размерами 1 XPi-1, которая построена из фрагментов строк матрицы А, формируем строки записывая т.: последовательных столбцов подматриц в опе- ративную память. Тогд_а строки матриц будут состоять из ча- стей строк матрицы А размера Pt. Обычно нет необходимости дополнять строки на выходе фиктивными данными для вырав- нивания размеров матрицы. Отметим, что для двоичного случая этот метод не идентичен методу разбиения на квадраты. Однако они равноценны в отно- шении требований к ресурсам, т. е. RMrc = RMs = max {mz P^}, (2.30) p—1 IORC = IOS ^M + Z^MiPi + N. (2.31) i=i Имеющиеся отличия иногда могут оказаться важными. Так, пе- рестановки на месте не столь просты, как транспонирование квад- ратных матриц. Но обычно это нас не интересует до последнего шага, и поэтому можно считать, что оба метода будут работать одинаково (см. примеры в разд. 2.5). Более важны особенности, которые касаются требований к внешней памяти. Применительно к квадратным матрицам, хранящимся в файлах с произвольным доступом, оба алгоритма могут работать с оставлением на месте с одним единственным файлом. Это справедливо также для ме- тода прямоугольных разбиений, приведенного ниже, который мож- но заставить работать с квадратами (щг==п{)- Для неквадратных матриц эти три метода уже не подобны друг другу. 27
Первоначальный выходной файл может всегда быть после- довательным и неизменным. Независимо от этого метод разбие- ния на квадраты может работать с оставлением на месте вплоть до шага р, на котором матрица А запоминается во второй области произвольного доступа. Метод разбиения на прямоугольники тре- бует двух областей произвольного доступа для размещения Л(2() и A(2i+1), i=0, 1.. Кроме того, размеры файлов будут меняться. Наконец, метод «ввод строки-вывод столбца» может быть реали- зован подобно методу разбиения на квадраты. Если, однако, на последнем шаге порядок, в котором обрабатываются группы строк изменяется (см. пример в разд. 2.6), строки А могут формироваться последовательно. К тому же метод работает с последовательными файлами, если число дополнительных файлов составляет max {mJ. 1 Конечно, существуют также прямоугольные варианты приведен- ного в этом разделе алгоритма. Мы советуем читателю самому разобраться в этих деталях. 2.2.6. Алгоритм прямоугольных разбиений Последний алгоритм, который мы рассмотрим, впервые был предложен в [2.13]. Этот алгоритм состоит в последовательном транспонировании подматриц порядка т^Хп^, где т, и tii — мно- жители М и N соответственно^ Позже Рамапрайян_ [2.8] обобщил алгоритмы на случай, когда М = пц- — тр^М и N = nr...-np^N, где р, т\,..., тр и П1,... ,п определяются численной оптимизацией требуемого времени вычислений. Алгоритм работает следующим образом. Пусть А — матрица МхМ, и предположим, что M = mi-тр~^М u N = nr...-np^N, где р — произвольное целое число, р^2. Положим то=1, ло=1, М0=М, N0 = N и определим набор целых чисел для i = 0, 1, ... , р: =m0-m1-...-mz; Qi=n<)-n1-...-nl-, = (2.32) Тогда на i-м шаге, i = l, 2,..., р, входная матрица где А(о) = =А, рассматривается как матрица A!<_iXM-i, элементами кото- рой являются матрицы Qi-iXA-i, представляющие собой факти- чески подматрицы А. Эта секционированная матрица рассматри- вается как матрица MiXNt, из которой селективно считываются в оперативную память матрицы т;Хп;, где они транспонируются и записываются в A(i). Строки в считываемые матрицы выбира- ются как в [2.13], т. е. с шагом Qt-j. Таким образом, матрица будет построена из блоков размерами QiXPi и на шаге р будет сформирована матрица NXM, содержащая А. Можно посмотреть на и по-другому, считая ее построен- ной из фрагментов ixPi-i, так как подматрицы Qi-\XPi-i на самом деле никогда не создаются. Тогда строки будут содер- жать фрагменты 1ХР{, которые образуют части строк матрицы А. 28
Если М = М и N=N, алгоритм совпадает с алгоритмом, приве- денным в [2.13]. В противном случае матрица на i-м шаге превращается в минимальную для данных mit... ,тр и т,..., пр матрицу, с которой работает алгоритм [2.13]. Требуемый объем памяти определяется выражением RMr = max {mt Р^ + Pt Nt}, (2.33) где при i=/=p второе слагаемое может быть опущено. Число операций ввода-вывода р—1 Юк = Л1 + 22йМг + ЛГ. (2.34) <=1 2.3. Оптимизация эффективности алгоритма 2.3.1. Две леммы Все представленные в предыдущем разделе алгоритмы, за ис- ключением двоично-ориентированного алгоритма Флойда, включа- ют преобразование исходной матрицы в матрицу больших раз- меров. Обсудим теперь, каким образом выбирать это преобразо- вание для оптимизации эффективности алгоритмов. Прежде всего нам нужны две основополагающие леммы. Пусть М и N — произвольные целые числа, Л1>1, Л^>1, и предположим, что для некоторого р>1 Л4 = «1,..., тр, где т,>1, 1=1,..., р. Определим, как и прежде, m0=I, Pi = mo-...-mi, i= = 0, 1,..., p и No=N, Ni= i=l,..., p. Тогда имеем сле- дующее. Лемма 1. Последовательность (NiPi)pi=o является возраста- ющей. Доказательство. По определению, Ni=[Ni-i/mi]^Ni-i/ini, т. е. Следовательно, умножение на дает NiP-i^ Эта лемма просто устанавливает, что в алгоритме разбиения на квадраты длина строк увеличивается. Лемма 2. N/Pt^NiCN/Pi + l, i=l, .... р. Доказательство. Используем индукцию по числу сомножителей Pi. Имеем дг _ если т\ является делителем JV; ([IV/mJ + l в противном случае. В первом случае справедливость леммы очевидна, во втором — надо только заметить, что [JV/mJ <CN/mt. Предположим, что неравенство справедливо для i—1 сомножи- телей, т. е. N/P^ < 2Vf_1 < + 1. (2.35) 29
Запишем Ni-i — qinti-^-ri, где 0<у,<тг-. Тогда = [TV,—1/тг] и '<=<> (2.36) 1<7г+ 1, если 0<Гг<Ш4. Используя левое неравенство из (2.35), находим N( > (N> (NiPt-JImt == N/Pi. (2.37) С другой стороны, если Гг = 0, то . Ni = Ni_1lmi<.(.NlPi^1+ l)/mi = N/Pi+ l/mi<.N/Pi+ 1. (2.38) Далее, если 1^г,<тг-, можно записать N. = q. 4-1 = Nt-Tjmt + (mf—rf)/mz < (Л^/Р,--! + 1)/тг + + (rni—ri)/mi = N/Pl-\-[mi — (rz — l)]/mi^N/Pi + I ф (2.39) Отсюда непосредственно вытекает следующее. Следствие. Так как Nt — целое, Ni и NtPi инвариантны отно- сительно изменения факторизации Pt = mi-...• /и,-. В частности, mlt..., mi можно переставить. Введем несколько новых, более общих обозначений. Будем обозначать конечные массивы положительных целых чисел через [а], [р],... или через перечисление их элементов (mi, т2,..., тр). Для данного массива [а]= (mi, т2,..., тр) запишем подмассивы [а,] = (пгь ..., mj) и положим N м = N,..., Лг[а>] = [Nla)_i}lm}] и Ла.]=1. ^[а;] =mi-...-mj, / = 1.р. 2.3.2. Алгоритм разбиения на квадраты Положим Р[ап=т}М1а}_^ Р[а7._]] и P[ct] = max {/?(а , }. Тогда имеем следующее. Теорема 1.Пусть М и N — заданные целые числа, 1, У7>1, и предположим M = где т^т-^ ... 1. Пусть [a]=(mf,..., тр), и предположим, что л[а] — произвольная пере- становка [а]. Тогда Р[а]г^Р[л[а]]. Перед тем как доказывать теорему, сделаем несколько заме- чаний. Вернувшись к выражениям (2.25), (2.27), обнаружим, что в соответствии с утверждением теоремы алгоритм разбиений на квадраты при заданной факторизации требует минимального объ- ема памяти, если сомножители упорядочены по их убыванию. Тог- да получим, что строки матрицы А никогда не формируются (как последовательные массивы) в ОЗУ. Но это требует выделения на шаге р не более mpNp дополнительных ячеек памяти (см. [2.6]), и мы увидим, что и в этом случае упорядочение сомно- жителей по убыванию обеспечивает минимум. Теорема также спра- ведлива, если /?'[ар —ttijNjP^^, что получается, если на каждом шаге формируются строки; в этом виде ее можно доказать по- добным образом. То, что действительно существует зависимость от порядка со- множителей, доказывают следующие примеры. 30
Примеры. Если ^ = 22 и Л? = 5-3=15, имеем ^(5)=110 и К(5,з> = 75, в то время как Р<з)=66 и Р(з,з) —120, т. е. Р(3,5) = 120>110=J?(5,3). Задавая Л1 = в6.5=30, видим, что 7?(6,5) = 132, в то время как R(5,6) = 150, т. е. это свой- ство не зависит от того, меньше чем N или нет. В этих двух примерах мак- симум достигается для максимального сомножителя. Это не всегда так при M>N. Например, если N=22 и Л4=7-6, то Я<7) = 154 и Р(7,в> = 168. Однако, если то Rmax всегда достигается для послед- него по порядку максимального сомножителя (см. ниже). Это утверждение, однако, неверно для массива nijNjPj, р, по- лучаемого, когда обмен выполняется на каждом шаге. Доказательство. Предположим, что mt — сомножитель, для которого достигается максимальное значение /?[а]. Пусть я[а] — произвольная перестановка (а], и рассмотрим самый короткий мас- сив в начале я[а], содержащий все элементы пц,..., т,. Обозначим его [0]. Если [0] содержит j элементов, то г'^/^р, и его последним элементом является гпъ, где Пусть [0]— подмассив, по- лученный из [0] удалением тк. Теперь переупорядочим [р] в [у] следующим образом. Если k = i, положим [у] = [0], но если 'k<i, массив[у] получается из [0] переменой мест гпг и mh. Пусть, как и прежде, [у] — подмассив в начале [у], содержащий j—1 эле- ментов. Теперь можно увидеть, что, так как P[v] , из леммы 2 и ее следствия вытекает, что JVfyj (заметим, что лемма 2 ограничивает Ni интервалом, содержащим точно одно целое чис- ло). Кроме того, mtP[^ = mkP[^, так что rnhP^ N fj5j :^tniP[y] IV [v] . Пусть [6] — массив, получаемый из [у] помещением mi,..., т,_1 в начало. Тогда снова, используя следствие леммы 2, получаем =P[71W[V]. Применяя лемму 1 к [6], имеем Р [«IJ > mk N[Р] > m; Р[7] N[v] = т; Р[6] 6] >тгЛ_1ЛГг_1 = /?[а] ф Эта теорема не учитывает необходимость в дополнительных ячейках памяти для формирования строк матрицы А на шаге р. Для этого достаточно выделить на р-м шаге mpNp дополнитель- ных слов (см. [2.6]). Тогда имеем: Следствие. Теорема 1 справедлива также для массива (Ti)Pi=i, Ti = m.iPi-iNi-i, i= 1,..., р—1; Tp = mpPp-iNp-i-\-mpNp. Доказательство. Пусть m'i,..., т'р — переупорядоченная по- следовательность ть..., тр, и обозначим через соответ- ствующий массив, для которого отыскивается максимум. Пред- положим также, что max T'i — T'j. Тогда можно увидеть, что в соответствии с предположениями т'р^тр, так что P'p-i^Pp-i и, следовательно, N'p-\ NP-\. Итак, поскольку Р'Р = Рр=т и N'p — Np, получаем T'p=P'pN'p-i+m'pN'p'^PpNp-i+mpNp=Tp. Этим и доказывается следствие, так как согласно теореме max ^max Т*. ф 31
Теперь докажем тот, впрочем, достаточно очевидный факт, что наилучшая факторизация на р+1 сомножитель требует меньшего объема оперативной памяти, чем произвольная факторизация на р сомножителей. Определим для данного М (Л4) = {[а] = (т1,..., тру, mt>l, т1-...тр-^ М} (2.40) и положим Sp (М) = min{/?[«]; [а] е QP(A4)}. (2.41) Теорема 2. Если М можно представить в_ виде произведения р+1 нетривиальных сомножителей, то SP+i (Л-f)(Л-1). Доказательство. Пусть [а] = (mi,..., тр) — оптимальная факто- ризация М, дающая SP(M). В соответствии с предположением, по крайней мере один сомножитель, например, т3, может быть запи- сан как mj = st, где $>1, />1, s и t — целые. Положим [(3] = = (mi,..., m3_i, s, t,m.j+l,..., mp), [o]= (ть ..., m3_i, s) и [r]= = (mi,... , m3_i, s, t). Из следствия леммы 2 известно, что N^] =Nj, а кроме того, из этой же леммы вытекает, что A^fo] ^Л’3_1. Так как получим Sp+1 (М)= max{Р,No,..., Р}_. N s Pj—l^j—l> ^P p~i} max{PjA/o,..., Pj^1Nj_2> PjNj-i> Pj+iNj, •••, PpNp—1} = <$р(Л1) ф (2.42) Теорема остается справедливой и в случае, когда требования к памяти на шаге i определяются значением miPiNi, но доказа- тельство ее в этом случае несколько сложнее. Теперь нам нужна теорема, характеризующая оптимальное разложение на р сомножителей. Один результат в этом направ- лении дает следующая теорема. Введем обозначение rp (М) = min {||[а]||0О; [а] f= Qr, (Л4)}, (2.43) где || (mb ..., тр) ||00 = max {mJ. Теорема 3. Предположим, что M^N. Тогда P[a]_=Sp(M), толь- ко если ||[а]||0О = Гр(Л4). Фактически, если в QP(M) имеется не- сколько элементов с минимальной нормой гР(М), то величину Sp(M) будут минимизировать те из них, которые встречаются реже всех. Доказательство. В соответствии с теоремой 1 мы должны рас- сматривать только массивы, расположенные по убыванию. Пусть (a]=(mb ... , mf)EQp. Тогда, так как M^N, лемма 2 дает тг- Р^ < Pt (N/P^ + 1) = т^ + Pt < (т; + 1) N. (2.44) 32
Отсюда вытекает, что в точке максимума должно быть = Если [а] и [а'] — два убывающих массива в QP(M), такие, что Гр(Л?) то, очевидно, (2.45) так что Последняя часть теоремы вытекает из (2.25) и леммы 1, если используется расположение по убыванию ♦ Из этой теоремы следует, что требования к памяти (для фик- сированного р) являются минимальными, когда значения сомно- жителей изменяются как можно меньше. Однако это не справед- ливо при M^>N. Если, например, Л4 = 9-9-4-4 = 6-6-6-6 и М=243, то /?(9,9,4,4) =2187, тогда как R(6,6,6,6) =2592. Тем не менее, как будет показано в разд. 2.4, теорему можно использовать для облегчения поиска оптимального разбиения. Теорема не справед- лива, если рассматривать Р-нормы или массив mtPiNi (см. [2.6]). Можно также отметить, что даже если M<N, лучшая факториза- ция М могла бы удовлетворять неравенству M>N. К сожалению, требуемое число операций ввода-вывода [см. (2.27)] не будет минимально, если сомножители упорядочены в убывающую последовательность. Если, например, 714 = 52, то Л? = = 5-4-3, 3-4-5 и 4-5-3 дают Ю£=52+230+^ 52+228+W и 52+ +224+N соответственно. Если М = М, то IOS = (2р+1 )Л4+ЛТ неза- висимо от порядка сомножителей. Вообще, из леммы 2 известно, что M^MiPi^.M-\-Pi—1, т. е. M + /V + 2pM^ I0'p,^M + W + 2pM + 2£(Pi—1). (2.46) >=i Необходимое дополнительное число операций ввода-вывода, вы- званное увеличением Л1 до М, оказывается при т;>1 не больше, чем 2у'(Л-1) = 2[ —f----------L—+ ...+ (п—1)1< <247> Это соответствует менее чем 2М/тр просмотрам данных. Используя тот факт, что, начиная с шага 2, некоторые строки одержат фиктивные элементы, можно, конечно, дополнительно низить это значение. Такая процедура, однако, усложнит реа- (изацию алгоритма. Заслуживает упоминания_частный случай, когда М и N могут 'Ыть представлены в виде N = Такое азбиение даст в результате число операций ввода-вывода, точно авное 2(р—1)Л4+Л\ независимо от значения сомножителей. Если >тр, т. е. если N~^M, не требуется дополнительного объема амяти на шаге р, даже если формируются строки матрицы А. 1э теоремы 3 следует, что такое упорядочение требует оптималь- ого числа ячеек памяти, равного maxm,.V. В то же время необ- одимое число операций ввода-вывода будет меньше, чем требу- 33
ется при убывающей последовательности. Последнее утверждение еще остается в силе для случая k<.mP) но необходимый объем памяти слегка возрастает. Примеры. Пусть Л4=60 и А=72. Тогда факторизация Л4 = 5-4-3 = 3-4-5 дает в обоих случаях объем памяти, равный 360. При этом число операций ввода-вывода равно 442 и 372 соответственно. Если, с другой стороны, М=24 получаем RM=126 и 130, тогда как 10 = 2,14 и 180 соответственно. 2.3.3. Алгоритм прямоугольных разбиений Итак, мы готовы к рассмотрению алгоритма прямоугольных разбиений. Это означает, что теперь и далее N — n\-...-np, N0 = N и = Безотносительно к числу дополнительных ячеек, необходимых для формирования строк на каждом шаге (так же, как на пГаге р), имеем следующую теорему. Теорема 4. Если возрастает, а (пг)Р1=1 убывает, то (PjNi-ijPi-i не может иметь строгого внутреннего максимума. В частности, такая упорядоченность будет минимизировать требо- вания к объему памяти и удовлетворять условию max {Pt N^} max {min {/nf N}, min {nz + 1} M}. l^rgp l^i^p l^i^p Доказательство. Предположим, что строгий максимум получен для PtNi-i, где 1<Л<.р. Тогда Pi+iNi<PiNi-i, так что в соот- ветствии с определением О < Pt Nt-r — Pi+i. Ni = Pi {Ni-r—mi+i Nt)Pi N^/n^ ^PiNt-^l-mt+M (2.48) t. e. Из условий теоремы вытекает, что и, значит, (так как имеем дело с целыми чис- лами). Имеем также PiNi-i>Pi-iNi-2- Из леммы 2 вытекает, чтс Ni-iCNi-z/n-t-i + l, т. е. (Ni-i—1)пг_1<^_2. Это означает, что 0 < Pt Nt-t -Pt-t Ni-t = Pt-t (т{ Nt-t -Nt-J < < P^ {mt N—(W«-i — 1) «i-J < Л-i {tn-i-i — M-i — 1) (nii +1)} = = Pi-.1(mlNt^-Ni^+l). (2.49) Поскольку рассматриваются только целые числа, то Nt-i^ Но тогда N-t=l, так что PI+IM = A+i =mi+vPi и, по- скольку Ni-i^mt, PiNi-i^Pimi^Pimi+i = Pi+iNi, что противоре чит предположению. Заметим, что если Pi+iNi<.PiNi-i, лемма 2 дает строгое нера венство в (2.49), даже если PiNi-i — Pi-iNt-z. Это означает, чтс в массиве не может быть внутренних неизменяющихся участков поскольку тогда должно выполняться неравенство Pi+tNi<ZPiN{- для некоторых i, l<i<p. Очевидно, всегда справедливо соотношение тах{Р (N IsJC^p ^max{(miN, NINp~i)}, причем равенство имеет место, когда ис пользуется предложенное упорядочение. Кроме того, такая гра 34
лица является минимальной, если т\ и /Vp-i минимальны. Но раньше отмечалось, что Np-t является минимумом, если Qp-i яв- ляется максимумом, т. е, если np = min{nj. Окончательно из лем- мы 2 выводим, что Np—! < N/Qp-! + 1 N/Qp-1 + 1 = np + 1 ♦ Примеры. Приводимые здесь примеры показывают, что массив может иметь внутренний минимум. Кроме того, при обратном упорядочении может встре- титься внутренний максимум. Следовательно, не существует обратной теоремы, дающей верхнюю границу для необходимого объема памяти. (/П1, т2, т3) («1, п2, п3) N (P{N, P2Nt, P3N2) (2, 4, 6) (4, 3, 2) 19 (38, 40, 96) возрастание (2, 3, 5) (6, 4, 2) 47 (94, 48, 60) внутренний минимум (2, 3, 4) (8, 5, 3) 115 (230, 90, 72) убывание (Ю, 9, 8) (2, 3, 4) 19 (190, 900, 2160) возрастание (6, 4, 2) (2, 3, 4) 19 (114, 240, 144) внутренний максимум (2, 3, 4) (4, 5, 6) 119, (238, 180, 144) убывание Для того чтобы создать строки матрицы А на шаге р, необхо- димы tripNp-i дополнительных ячеек памяти, если mP>Np-\ (см. [2.6]). Способы упорядочения по теореме 4 в этом случае уже не гарантируют минимума. Если, например, Af=19, (zit, и3) = (4,3,2), то необходимое число ячеек памяти равно 964-12=108 при (т\, rriz, т3) = (2,4,6), но если (mi, m2, т3) = (2,6,4), то это число равно 964-8=104. Поскольку NP-i^np, из теоремы 4 можно за- ключить, что для данных М и N min {А’/Ир} max {тN, («4- ОМ +тп}, (2.50) где т= min {mJ; m= max {mJ и n=min{nj. — l^i^p Метод прямоугольных разбиений обладает важным свойст- вом, заключающимся в том, что существует непосредственная взаимосвязь между объемом памяти и требуемым числом опе- раций ввода-вывода. Это видно из следующей теоремы. р—I Теорема 5. Сумма M4-2SAJiQi4-M является минимальной, ес- i=i ли убывает, а (njpf=i возрастает, и максимальной если (m<)pi=I возрастает, а (/ц)?=] убывает. Доказательство. Докажем сначала первую часть посредством индукции по р. Пусть р = 2 и mi7=sm2, ni^n2- Введем M(1)i = =(M/mJ и M(2)i = [М/т2]. Очевидно, тогда получаем п2, что доказывает утверждение для р = 2. Теперь предположим, что утверждение истинно для р—1 со- множителей и рассмотрим произвольные факторизации Л4 = и N = ti[-...-Пр. Во-первых, переупорядочим mi,..., mp_i в m'i>;... ^m'p-t и ni,..., np-i в ... s^n'P-i и положим т'р= 35
= тр и п'р = пр. Тогда в соответствии с леммой 2 Af'p_i=A4p_i. , р—1 Очевидно, Qp-i = Qp-b так что по индукции имеем р-1 4=1 Если т'р^.т'р-\, последовательность m't является теперь убы- вающей. В противном случае положим т"р = т'рЛ и m"p_i = m'p, и m"i=m'{, 4=1,... р—2. Это дает M"p._i^.M'p_1, в то время как р—1 р—1 M"i=M'{, i=l,... р—2, поэтому Окончательно, i=i i=i если не убывает, можно применить теорему к (р—1) сомножителям, чтобы получить т'"\^ ... т"'р'^т"р, р—1 р—1 где 5 2 4=1 i=i Соответственно, если n/p<nzp_1, положим 4=1.... р—2, n"p-i = n'p и n"p = n'p-i. Тогда Q"i = Q'i, 4 = 1,..., p—2, и p-i p—i Q"p-i<Q'p-i, поэтому Используя утверж- 4=1 4=1 дение для (р—1) сомножителей еще раз, получим п"'г^....^п"'р-1 и п'"р = п"р, где 4=1 4=1 4=1 убывает, а (п"'г)рг=1 возрастает. Вторая часть теоремы следует из аналогичных рассуждений ♦ 2.3.4. О преимуществах введения единичного сомножителя В рассмотренных теоремах, относящихся к алгоритму разбие- ния на квадраты, предполагалось, что все сомножители mi,..., mt, больше 1. На самом деле это предположение не является необ- ходимым. Легко увидеть, что при удалении любого единичного сомножителя требуемый объем памяти будет таким же, а число операций ввода-вывода уменьшится. Алгоритм разбиения на прямоугольники не обладает этим свойством, если только единичный сомножитель не встречается внутри массива. Более точно имеем следующее. Утверждение 2. Пусть М = т} - ...-тр и N=n,\ •...• пр. Тогда, если т&=1 для некоторого k, 1_<й^р, существуют разбиения т'{ •...•m'p-i = M и n'i-...-n'p-i=N, для которых Р—2 р—1 max {P'i^;_I}<max{Pf^._1} и 3 Al'jQ',-^2 Af; Q;. l=S4=gp—1 1$4^р 4=1 4=1 Такое же утверждение можно сделать, если nh=l и Доказательство. Если m&=l, то новые разбиения задаются значениями m/I = mi, i=l k—1; m'j = mi+i, i=k,..., p—1; n'i= = ni, 4=1,..., k—2; ti'k^\ = nhnh-\, n'{~ni+i, i=k, ... , p—1. Посколь- ку N'k~i = Nh, требования к объему памяти будут определяться 36
величиной max{piJVi-i}. В сумме для определения числа операций ввода-вывода слагаемое MkQk может быть удалено. Если п/г=1, положим т'к = тктк+1 и сохраним остальные со- множители, чтобы получить тот же самый результат ♦ 2.4. Оптимизация алгоритма разбиение на квадраты и алгоритма «ввод строки-вывод столбца» Результаты подразд. 2.3.2 можно использовать теперь для по- иска оптимального способа транспонирования произвольной мат- рицы с помощью алгоритма разбиения на квадраты или алго- ритма «ввод строки-вывод столбца». Более точно, будем минимизировать требования к объему па- мяти для заданного числа просмотров данных. Это не всегда обес- печивает минимум числа операций ввода-вывода, но отклонения от минимума малы (см. подразд. 2.3.2). Более того, если оптимум с точки зрения требуемого объема памяти достигнут без введения нулевых строк (М = М), то требования к числу операций ввода- вывода также минимальны (см. подразд. 2.2.3). И наконец, так как число просмотров данных, необходимое для матрицы MXN, Ограничено сверху [logs М] или i[log2 Af] +1 (M>N) — можно найти (приблизительный) оптимум и с точки зрения объ- ема памяти, и с точки зрения числа операций ввода-вывода при заданных относительных стоимостях памяти и операций обмена. Сначала остановимся на случае M^N. Тогда для данного р можно Действовать следующим образом. 1. Положить т=(М1/р]. (Тогда /n = min{£; kp^M}.) 2. Найти наименьшее произведение M = mi-...-mP^M при ... ^тр, используя т\ = т, поскольку (т—l)p<Af соглас- но п. 1. 3. Вычислить RMs(A?)—необходимое число ячеек оператив- ной памяти в соответствии с (2.25). _ 4. Найти лучшее произведение = ^т'р, для которого m'i<RMs(^)/M (Мы должны рассматри- вать только эти произведения, так как RMS(^') ^rn'iM) Заметим, что потому что М'^Й. 5. Если такое М' найдено, заменить Л? на Я' и повторить п. 4. Множество произведений в п. 4 предпочтительно исследовать в (возрастающем) лексикографическом порядке. Кроме того, из указанного способа выбора Л? и теоремы 3 следует, что надо рассматривать только те произведения, для которых т. е. поиск в п. 4 ведется по множеству Q= {Л4' M>N, m'jCRMJM)/#}. (2.51) Случай M>N несколько сложнее. Во-первых, рассматривает- ся матрица, разбитая на матрицы NXN, и вычисляется оптималь- ное произведение Л? из р сомножителей для них. Если то получена наилучшая p-шаговая факторизация. Если M<zM, то 37
для объединения строк в строки, состоящие из М элементов, тре- буется дополнительный шаг. Если пренебречь всеми нулевыми элементами, понадобится max{AJ, RMS(A?)} ячеек памяти для транспонирования за (р+О шагов. Однако есть возможность по- лучить лучший результат, если непосредственно применить транс- понирование за (р-f-l) шагов. _ Например, если Л4 = 27, Л^=25и р = 2, то Л4 = 5-5 и потребуется 125 ячеек памяти с использованием трех шагов. Но матрица 27x25 может быть транспонирована за 3 шага с помощью 81 ячейки (Л1 = 3-3-3). Заметим, что по теореме 2 вслед за транс- понированием матриц NXN за (р—1) шагов надо выполнить объ- единение строк которое при никогда не может дать луч- шего результата. В табл. 2.1 приведен пример работы этого метода для матрицы 620X1000. Таблица 2.1 Требования к объему памяти для транспонирования матрицы ___________620ХЮ00 при оптимальных RMS(A1)______________ р м RMS(.M) й 2 252 25000 0 3 9М 9072 0 4 54 5000 0 5 44-3 4096 {45} 6 3е 3645 0 7 34-23 3078 {37-*2ft; k = 0, ..., 2} 8 33-25 3024 {38~*2Ь; k=0 4} 9 3-2® 3000 {39-*2*; k=0, ..., 7} 10 2Ю 2048 0 2.5. Примеры Для иллюстрации работы четырех алгоритмов, представленных в подразд. 2.2.3 —2.2.6, приведены результаты их применения к матрице 6X6. 1. Метод Флойда. RM=12, 10=24. Заметим, что матрицы Ж1), B(t” и В(3; не создаются. 00 01 02 03 04 05 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 .50 51 52 53 51 55. а) А=А<°> 00 01 02 03 04 05 50 51 52 53 54 55 40 41 42 43 44 45 30 31 32 33 34 35 20 21 22 23 24 25 10 11 12 13 14 15 б) А('), где aOh.^a-ij 00 01 02 03 04 ох 51 52 53 54 55 50 1 42 43 44 45 40 41 ' 33 34 35 30 31 24 25 20 21 л 2?! 15 10 11 12 13 14_: в) где 38
00 10 02 12 04 14 51 01 53 03 55 05 42 52 44 54 40 50 33 43 35 45 31 41 24 34 20 30 22 32 .15 25 11 21 13 23 ’00 10 20 30 04 14 51 01 11 21 55 05 42 52 02 12 40 50 33 43 53 03 31 41 24 34 44 54 22 32 .15 25 35 45 13 23 г) ВО), столбцы С /о=1 сдвинуты на 1 шаг д) В<2>, столбцы С /1=1 сдвинуты на 2 шага ’00 10 20 30 40 50 51 01 11 21 31 41 42 52 02 12 22 32 33 43 53 03 13 23 24 34 44 54 04 14 15 25 35 45 55 05 е) В(3), столбцы с /2=1 сдвинуты на 4 шага 2. Алгоритм разбиения «ак группируются строки и 00 01 02 03 04 05 10 И 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 50 51 52 53 54 55 ’00 10 20 30 40 50' 01 11 21 31 41 51 02 12 22 32 42 52 03 13 23' 33 43 53 04 14 24 34 44 54 05 15 25 35 45 55 ж) А<*>, где на квадраты: л!=3-2, RM=18, как отображаются группы строк 10 = 24. Показано, на шаге 2. 00 10 20 03 13 23’ 01 11 21 04 14 24 02 12 22 05 15 25 30 40 50 33 43 53 31 41 51 34 44 54 32 42 52 35 45 55 00 10 20 30 40 50' 03 13 23 33 43 53 3. Метод прямоугольных разбиений: Л1 = 2-3, A)=3-2, RM=18 также RM=12, см. [2.6]), 10 = 30. (возможно г[°о 10 03 13’ ’00 01 02 03 04 05 01 11 04 14 ’00 10 20 30 40. 50 10 И 12 13 14 15 02 12 05 15 20 21 т> 23 24 25 20 30 23 33 30 31 32 34 35 —> 21 31 24 34 —> 03 13 23 33 43 53 40 41 42 43 44 45 22 32 25 35 50 51 52 •ч ч 54 55 L 40 50 43 53 41 51 44 54 42 52 45 55 39
4. Прямоугольный метод: Л1=3-2, $=2-3, 10=20, RM=18. "00 01 02 03 04 05" 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 50 51 52 53 54 55 00 10 20 02 12 22 04 14 24 01 11 21 03 13 23 05 15 25 30 40 50 32 42 52 34 44 54 31 41 51 33 43 53 35 45 55 00 10 20 30 40 50 02 12 22 32 42 52 04 14 24 34 44 54 5) Метод «ввод строк-вывод столбца»: M = 3-2; RM=18, 10 = 24, '00 01 02 03 04 05 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 .50 51 52 53 54 55 00 10 20 01 11 21 02 12 22 03 13 23 04 14 24 05 15 25 30 40 50 31 41 51 32 42 52 33 43 53 34 44 54 35 45 55. 00 10 20 30 40 50 01 11 21 31 41 51 2.6. Метод Андерсона для непосредственного вычисления многомерного ДПФ Андерсон [2.1] предложил альтернативный метод решения за- дачи ДПФ матрицы, записанной построчно в ЗУ с произвольным до- ступом. Поскольку внешняя сумма (2.26) является ДПФ для фиксированного /, очевидно, что для ее вычисления можно использовать БПФ. Основная идея использования БПФ заключа- ется в том, что ДПФ массива может быть вычислено итеративным суммированием, при котором каждая сумма в свою очередь яв- ляется ДПФ. Если, в частности, размер массива М является сте- пенью 2, то каждая частичная сумма может рассматриваться как двухточечные ДПФ. Тогда (см., например, [2.16] или [2.17]) на i-м шаге, i=l,„., Iog2-M, преобразуются две точки с индекса- ми т и т', двоичные представления которых отличаются точно в позиции г. При этом результирующий массив оказывается пред- ставленным в двоично-инвертированном порядке, но можно так 40
переупорядочить исходный массив, что результирующие значения будут следовать в естественном порядке (см. также [2.18]). Обнаружив, что сумма в (2.26) вычисляется для всех I, мож- но действовать следующим образом. На шаге i в оперативную память считываются пары строк, для которых индексы отлича- ются точно в позиции i их двоичного представления. Затем на месте выполняется двухэлементное ДПФ для всех столбцов. Эти модифицированные строки записываются снова на свои старые •места. После Iog2-M шагов получаем нужное преобразование, но расположенное в двоично-инвертированном порядке. Однако это не составляет никакой проблемы, поскольку известен ключ для перестановки, который можно использовать либо при вводе, либо при дальнейшей обработке. Безотносительно к тому, как учиты- вается двоичная инверсия, можно заметить, что адресация строк полностью аналогична адресации в методе разбиения на квад- раты (и в алгоритме Флойда) для транспонирования матриц. Эта аналогия между двумя методами распространяется на лю- бые возможные обобщения. В обоих случаях можно снизить вре- мя ввода-вывода, рассматривая более двух строк одновременно. Действительно, если матрица содержит Л1ХЛ1 элементов и есть возможность хранить в оперативной памяти 2т строк, то число операций ввода-вывода ЮА = 2 -М -[log2 М/т]. (2.52)' Если М и N являются степенями 2, то ЮА совпадает с Ю3 и Юр. Кроме того, метод обобщается на произвольную фактори- зацию М, так же как и БПФ, и сохраняется аналогия с методами транспонирования, описанными в разд. 2.2. Следовательно, эффек- тивность, измеренная с точки зрения операций ввода-вывода, оста- ется той же самой и в этом случае. Непосредственный метод принципиально прост за счет того, что он сам основан на использовании свойств быстрых алгоритмов (например, БПФ). Его достоинство проявляется также в возмож- ности обрабатывать на месте произвольную матрицу. Однако ме- тод обладает рядом недостатков, о которых будет сказано в сле- дующем разделе. 2.7. Обсуждение результатов Были представлены два подхода к организации вычисления разделимых двумерных преобразований для матриц с построчным доступом (или с доступом по столбцам). Один из методов основан на транспонировании матрицы, а другой — на свойствах быстрых алгоритмов, таких, как БПФ. Было показано, что эти методы по существу эквивалентны с точки зрения эффективности в случае, когда размеры матрицы являются составными числами. (Пред- полагается, что на самом деле транспонирование в оперативной памяти не выполняется, так что время обработки одинаково для 41
обоих подходов). В таких случаях непосредственный метод мо- жет применяться для преобразования любой матрицы с остав- лением на месте. Однако этому методу присуща меньшая мо- дульность при проектировании, и поэтому более общий метод с ис- пользованием транспонирования матриц дает большую эффектив- ность в других случаях, как будет показано. Модульность мето- дов транспонирования подразумевает также, что их можно при- менять в комбинации с аппаратурной реализацией быстрых пре- образований. Преимущество модульности особенно очевидно в следующем случае. Предположим, что необходимо вычислить БПФ матрицы Л4хУ и что М содержит большой простой сомножитель. Сумми- рования в БПФ будут одинаковыми для обоих методов, но тре- буемый объем памяти может быть резко снижен, если преобразо- вание выполняется с помощью удобного разбиения. Заполнение массива нулями при вычислении БПФ может оказаться нежела- тельным, поскольку при этом изменяются результаты преобразо- вания. Рассмотрим случай, приведенный, в табл. 2.1. При непос- редственном методе потребуются два просмотра данных и 31 000 ячеек памяти. Этот объем памяти сравним с 25 000 ячеек, необ- ходимых при транспонировании за два просмотра. (Одномерное ДПФ может быть совмещено с транспонированием, так что двух просмотров достаточно.) Кроме того, в табл. 2.1 показано, что транспонирование может быть реализовано со значительно мень- шими затратами объема памяти за счет увеличения времени обме- на. Наоборот, есть случаи, когда можно сэкономить время ввода- вывода за счет объема памяти. Упомянем некоторые менее важные различия между метода- ми. Предположим, что надо выполнить прямое и обратное преоб- разование матрицы и что М и N выбраны достаточно слож- ными составными числами, чтобы не приходилось увеличивать матрицы, дополняя их нулями. Предположим, что KN элементов заполняют оперативную память, и что K.N/M — целое, тогда IOS = 2 ([ log2 M/log2 К] М + flog2 W/log2 (KN/M)] N, (2.53) IOA = 4flog2M/log2KlM. (2.54) На основе этих выражений можно показать, что IOs<IOa, ес- ли M<N, и 108>Юа, если M>N. Например, если Л4=210, У=28 и Д=23, то IOs=48-28, а ЮА=64-28, но если М=28, N = 210, то Юз=22-28 и Юа=12-28. Можно заметить, также, что если M>N, минимальный объем памяти для выполнения пары преобразова- ний, независимо от времени ввода-вывода, меньше для непосред- ственного метода. Все рассмотренные алгоритмы транспонирования матриц яв- ляются оптимальными для случая, когда размеры матрицы явля- ются степенями 2. При этом они могут быть реализованы с по- мощью только операций сдвига и маскирования. Однако когда эти алгоритмы применяются для транспонирования произвольных прямоугольных матриц, между ними есть небольшое различие. 42
Алгоритм Флойда может работать с любой квадратной матри- цей, используя только операции сдвига и маскирования, и рас- пространяется на прямоугольные матрицы так, как описано в подразд. 2.2.3. Однако три других алгоритма не обладают этим «двоичным» свойством, поскольку они используют расширение в форме (2.15). С другой стороны, они могут выполнять транспони- рование с меньшими затратами операций ввода-вывода при чуть большем объеме памяти. Эти три алгоритма требуют также спе- циального этапа оптимизации, который достаточно прост для ме- тода разбиения на квадраты, и алгоритма «ввод строки-вывод столбца», но несколько более сложен для алгоритма разбиения на прямоугольники. Последний алгоритм также несколько сложнее по своей сущ- ности, так как число и длины строк изменяются во время транс- понирования, даже если размеры матриц являются составными числами. В общем, более простые алгоритмы разбиения на квадраты и «ввод строки-вывод столбца» почти всегда эффективны. Поэто- му они предпочтительнее, если не требуется реализации только посредством сдвигов и маскирования, когда можно использовать алгоритм Флойда. ГЛАВА 3 ВЫЧИСЛЕНИЕ ДВУМЕРНЫХ СВЕРТОК И ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ (Г. Дж. Нуссбаумер) 1 Главная цель главы—вывод быстрых алгоритмов вычисления двумерных сверток и дискретных преобразований Фурье (ДПФ). Эти алгоритмы базиру- ются на преобразовании двумерных последовательностей в одномерные с ис- пользованием основных свойств колец полиномов. По сравнению с более тра- диционными методами, основанными на быстром преобразовании Фурье (БПФ), они значительно снижают число арифметических операций, требуемых для вы- числения сверток и ДПФ. В начале главы дан краткий обзор тех разделов алгебры полиномов, ко- торые имеют отношение к вычислению сверток и ДПФ. Затем вводится новый вид преобразований, называемых полиномиальными преобразованиями, и по- казано, что эти преобразования, которые можно рассматривать как ДПФ, опре- деленные на полях полиномов, являются эффективным средством вычисления Двумерной фильтрации. Обсуждается также применение полиномиальных преоб- 1 IBM Centre d’Etudes et Recherches F-06610 LaGaude, France. 43
разоваиий для вычисления двумерных ДПФ и показано, что эти преобразований могут быть использованы в комбинации с алгоритмом Винограда или БПФ для дальнейшего снижения числа арифметических операций. 3.1. Свертки и алгебра полиномов Основой многих новейших методов быстрого вычисления сверток и ДПФ. таких, как алгоритм Винограда преобразования Фурье [ЗЯ], алгоритм быстрой свертки Агарвала — Кули [3.2] и полиномиальные преобразования [3.3—3.5], является алгебра полиномов. Поскольку алгебра полиномов не нашла еще широ- кого применения в радиоэлектронике, за исключением теории кодирования, при- ведем здесь краткие сведения, касающиеся наиболее важных аспектов, связан- ных с вычислением сверток. Для более детального изучения читатель может вос- пользоваться любым учебником по современной алгебре [3.6]. Рассмотрим сначала дискретную свертку L-1 Ут ~ । hixm—i- (3.1) z=o При прямом вычислении этой конечной дискретной свертки требуется вы- полнить L умножений на каждый входной отсчет. В большинстве быстрых ал- горитмов бесконечная входная последовательность {хп} делится на последова- тельные блоки по N отсчетов и ут вычисляется как сумма апериодических сверток каждого из этих блоков с i-точечной последовательностью {/ц}. Вы- числение этих апериодических сверток эквивалентно определению коэффициентов произведения Y(Z) двух полиномов H(Z) и X(Z): L-1 #(Z) = 2 (3.2) z=o JV-l X(Z)=S xnZn, (3.3) n=0 L+N-2 Y(Z)=H(Z)X(Z) = 2 y>nZm , (3.4) m=0 где hi и xn — элементы некоторого поля F обычно вещественных или комплек- сных чисел. Очевидно, что полиномиальное представление свертки является более слож- ным, чем стандартное представление. Мы, однако, увидим, что использование полиномов обеспечивает эффективное снижение сложности вычисления сверток и полиномиальных произведений. Для этого необходимо сначала ввести понятия об остаточных полиномах и китайской теореме об остатках. 3.1.1. Остаточные полиномы Рассматривая полиномы с коэффициентами, заданными на поле, определим что полином P(Z) является делителем полинома W(Z), если можно найти такой полином P(Z), для которого выполняется соотношение H(Z)=P(Z]D(Z). По- лином Н(Z) называется неприводимым, если только его единственными делителя 44
ми являются полиномы P(Z), степени которых равны 0. Если P(Z) не является делителем f/(Z), то при делении H(Z) на P(Z) образуется остаток R(Z): H(Z) = P (Z) D (Z) + R (Z). (3.5) Легко показать, что это представление единственно. Все полиномы, которые при делении на P(Z) дают один и тот же остаток R(Z), называются конгру- энтными по модулю P(Z). Соотношение конгруэнтности обозначается R(Z) = ff (Z) mod P(Z). (3.6) Вычисление R(Z) значительно упрощается, если P(Z)—произведение d по- линомов, не имеющих общих множителей (обычно такие полиномы называются взаимно-простыми по аналогии с взаимно-простыми числами): d P(Z)= п Pi(Z). 1=1 (3.7) В этом случае R(Z) может быть однозначно выражен как функция полиномов W«(Z), полученных приведением H(Z) по модулю различных полиномов Pi(Z). Это выражение, являющееся обобщением на кольцах полиномов известной в те- ории чисел китайской теоремы об остатках [3.7], задается как: d R(Z) = H (Z) mod P (Z) = 2 S £ (Z) Ht (Z) mod P (Z), (3.8) 1=1 где для каждого значения и индекса i Su (Z) = 0 mod Pi (Z), i^u, Su (Z) = Г d П Pi (Z) 1=1 = 1 mod Pu (Z) ; Г d П Pi (Z) i=i mod Pu (Z) 11 mod P (Z). (3.9) (3.10) Соотношения (3.8),(3.9) можно легко проверить приведением (3.8) по модулю различных полиномов PU(Z). Поскольку [//(Z)mod P(Z)]mod Pi(Z) вы- ражение (3.8) выполняется для каждого PU(Z). Точно так же приведение SU(Z), определенного в (ЗЛО), по модулю Pu(Z) дает (3.9) при условии, что d П Pi (Z) ^ 0 mod PU(Z). Выполнение последнего условия гарантируется тем. что 1=1 полиномы Pu(Z) являются взаимно-простыми. Полиномы SU(Z) можно легко построить, пользуясь полиномиальным вариантом алгоритма Евклида. 3.1.2. Алгоритмы свертки и произведений полиномов в алгебре полиномов Китайская теорема об остатках является центральной при вычислении свер- ток, так как она позволяет заменить вычисление произведения ff(Z)X(Z) двух больших полиномов по модулю P(Z) на d произведений ^(ZJXjfZ) по модулю Pi(Z) значительно меньших полиномов. Здесь X£(Z)=X(Z) modPj(Z). Пока- жем теперь, как китайскую теорему об остатках можно использовать для по- лучения минимального числа умножений, требуемых для вычисления свертки или полиномиальных произведений, и как достичь на практике этой нижней границы. 45
Теорема 3.1. (Алгоритм Кука —Тоома [3.2].) Апериодическая свертка (3.4) может быть вычислена за L + N—1 общих умножений. Конструктивное доказательство теоремы можно получить, если заметить, что T(Z) имеет степень L+N—2. Следовательно, T(Z) не изменится, если оно определено по модулю любого полинома P(Z) степени, равной L-‘~N—1: Y (Z) = Н (Z) X{Z) mod Р (Z). (3.11) Предположим, что P(Z) выбран так, что L+N-1 P(Z)= П (2— at), (3.12) 1=1 где аг есть L-t-N—1 различных чисел в поле F коэффициентов. Y(Z) может быть вычислен путем приведения H(Z) и X(Z) по модулю (Z—at), что эквива- лентно подстановке at вместо Z в H(Z) и X(Z). Тогда Y (Z) вычисляется за L+N—1 общих умножений с помощью L+N—1 произведений //(a,)X(aj) и восстановления Y(Z) в соответствии с китайской теоремой об остатках, ♦ Заметим, что приведение по модулю (Z—а,) и восстановление в соответст- вии с китайской теоремой об остатках подразумевают умножения на скаляры, которые являются степенями at. Для коротких сверток в качестве (Z. + A—1) различных at можно выбрать просто целые числа, например, 0, +1, —1, так что эти умножения становятся либо тривиальными, либо сводятся к нескольким сложениям. Для больших сверток, однако, требование, чтобы все а, были различными, приводит к необходимости выбора больших чисел, так что эти ска- лярные произведения должны либо трактоваться как общие умножения, либо будут требовать большого числа сложений. Таким образом, алгоритм Кука — Тоома практически используется только для коротких сверток. Для больших сверток лучшего баланса между минимизацией числа умножений и минимиза- цией числа сложений можно достичь с помощью методов преобразования, кото- рые, как мы покажем, тесно связаны с алгоритмом Кука — Тоома. В алгоритме Кука — Тоома результирующий полином У (Z) степени L+N—2 восстановлен из L+N—1 числовых значений У(а;), полученных заменой Z на at в И (Z) и X(Z). Таким образом, алгоритм Кука — Тоома может рассматри- ваться как реализация интерполяционного метода Лагранжа [3.2]. Выбор L+ +N—1 различных а,- и поля коэффициентов произволен. Если различные а, вы- браны в качестве последовательных степеней числа W и если поле F таково, что 1, W, W2,)Все различны, алгоритм Кука—Тоома приводит к вы- числению апериодической свертки с помощью преобразований, имеющих струк- туру ДПФ. Например, если W—2 и F есть кольцо чисел по модулю числа Мер- сенна (2«—1, q — простое) или числа Ферма (2’4—1, q=2‘), то такие преоб- разования будут преобразованиями Мерсенна или Ферма [3.8, 3.9]. Когда F является полем комплексных чисел и lF=exp[—]2л/(Т+А—1)], J/”—1, использование алгоритма Кука — Тоома эквивалентно вычислению апе- риодической свертки с помощью ДПФ. В этом случае P(Z) преобразуется к виду L+N-2 P(Z) = П (2 - = ZL+N~l — 1, (3.13) 1=0 а апериодическая свертка L-точечной последовательности {/*.'} и А-точечной {хп} вычисляется как циклическая свертка двух расширенных последовательно- 46
стей из L+N—1 точек, полученных добавлением Л7—1 нулей к последователь- ности {Л/} и L—1 нулей к последовательности {%„}. Таким образом, традици- онный метод вычисления апериодических сверток с помощью ДПФ и метод сек- ционирования с суммированием [3.10] близко связаны с алгоритмом Кука — Тоома. Из теоремы 3.1 видно, что апериодическая (L+N—2)-точечная свертка мо- жет быть вычислена с помощью L + N—1 умножений посредством полиномиаль- ного умножения по модулю полинома P(Z) степени D = L+N—1, причем этот полином выбирается как произведение D полиномов первой степени в поле ко- эффициентов F. Полученные результаты иа случай полиномиальных произведе- ний по модулю любого полинома P(Z) обобщает следующая важная теорема, принадлежащая Винограду [3.11]. Теорема 3.2. Минимальное число общих умножений, необходимых для вы- числения произведения полиномов Y (Z) ===Н(Z)X(Z)mod P(Z), равно (2D—d), где D — степень P(Z) и d— число неприводимых множителей Pt(Z) полинома РЩ поля F (включая 1). Конструктивное доказательство этой теоремы строится с помощью китай- ской теоремы об остатках. Поскольку P(Z) является произведением d непри- водимых полиномов Pt(Z), Y(Z) можно найти приведением H(Z) и X(Z) по мо- дулю Pi(Z) вычислением d полиномиальных произведений y;(Z)=3 esHi[Z)Xt (Z)mod Pi (Z), соответствующих приведенным полиномам Ht (Z), Xi(Z), и восстановлением Y(Z) из T<(Z) с помощью китайской теоремы об остатках. Как и в теореме 3.1, умножения на скаляры, используемые при приведении и восстановлении по китайской теореме об остатках, не учитываются, и единст- венными общими умножениями являются те, которые входят в произведение d Hi(Z)Xi(Z). Пусть Dt — степень Pt(Z) и Й=2О{. Поскольку Pi(Z) имеет /=1 степень Dt, Hi(Z) и Xt(Z) имеют степень Di—1, то их произведение можно вы- числить за 2D,—1 умножений по теореме 3.1: Yi (Z) е [Hi (Z) Х{ (Z) mod Qi (Z)] mod P( (Z), (3.14) где Qt(Z)—полином степени 2Dt—1, выбирается в виде произведения (2D;—.1) полиномов первой степени в поле F. Таким образом, число общих умножений d соответствует 2 (2Di—1)=2D—d. ф г=1 Важное следствие из теоремы 3.2 относится к вычислению циклических свер- ток. Циклическую свертку двух .D-точечных последовательностей можно пред- ставлять в полиномиальных обозначениях как полиномиальное произведение по модулю (ZD—1). Было показано, что, если F — поле комплексных чисел, (ZD— —1) разлагается на D полиномов (Z—W') первой степени и что циклическая свертка вычисляется с помощью ДПФ посредством D общих умножений. К со- жалению, IF* — иррациональные и комплексные числа, поэтому умножения на скаляры, используемые при вычислении ДПФ, должны рассматриваться как об- щие умножения. Если F—поле рациональных чисел, (Z°—1) разлагается на произведения полиномов с рациональными коэффициентами. Такие полиномы называются циклотомическими ,[3.7]. Циклотомические полиномы являются неприводимыми в поле рациональных чисел. Их корни комплексны и образуют подмножество множества IF0, W1, ..., IF®-1, где IF=exp(—j 2n/D), ]=]/—!. 47
Можно показать, что для заданного D число d различных циклотомических полиномиальных множителей (ZD—1) равно числу делителей D, включая 1 и D. Кроме того, степень каждого циклотомического полинома, соответствующая данному делителю D, числа D, равна функции Эйлера <₽(£>;) [3.7]. Таким об- разом, для циклической свертки теорема 3.2 сводится к следующей теореме. Теорема 3.3. Минимальное число общих умножений, необходимое для вы- числения циклической D-точечной свертки, равно (2D—d), где d — число дели- телей D, включая 1 и D. Вычисление циклической свертки по теореме 3.2 значительно упрощается вследствие того, что коэффициенты циклотомических полиномов являются прос- то целымЪ числами. Более того, эти целые числа могут принимать значения только 0, +1 или —4, за исключением случая очень больших цнклотомическнх полиномов [3.2]. При этом приведение и восстановление по китайской теореме об остатках могут быть выполнены с малым числом сложений, что можно про- иллюстрировать на простом примере 5-точечной циклической свертки. В этом случае имеются только два делителя числа 5: 1 и 5. Таким образом, (Z5—il) разлагается на два циклотомических полинома: Z°—1 = (Z—1) (Z4+Z3+Z2+Z + + 1). Приведение входных полиномов H(Z) и X(Z) по модулю Z—1 равно- сильно простой замене Z на 1 в H(Z) и X(Z) и поэтому выполняется за 4 сло- жения. Приведения по модулю Z4+Z3+Z2+Z+l также выполняются за 4 сло- жения путем вычитания члена четвертой степени из всех остальных членов входных полиномов, так как Z4s= — 1—Z—Z2—Z3. Умножение по модулю (Z—1) есть просто скалярное умножение, а умножение по модулю (Z4+Z3+Z2+Z+\) выполняется за 7 умножений при использовании теоремы 3.1. Восстановление по китайской теореме об остатках может рассматриваться как обращение приведе- ний и выполняется за 8 сложений. Таким образом, 5-точечная циклическая свертка с учетом приведений и восстановления по китайской теореме об остатках вычисляется только за 8 умножений и ограниченное число сложений. 3.2. Использование полиномиальных преобразований для вычисления двумерной свертки Непосредственное выполнение двумерной нерекурсивной фильтрации масси- ва NXX’ требует вычисления числа операций, пропорционального .\’2ЛТ2 (где МХМ — размеры апертуры свертки) и, таким образом, большой вычислитель- ной мощности даже для относительно малых сверток. Это обстоятельство сти- мулировало ряд попыток найти более эффективные методы реализации двумер- ных нерекурсивных цифровых фильтров. В большинстве этих методов цифровая нерекурсивная фильтрация осущест- вляется путем вычисления серии циклических сверток фрагментов, полученных секционированием входных последовательностей и дополнением их соответству- ющим числом нулей. Окончательный результат цифровой фильтрации при этом получается методом перекрытия с суммированием или перекрытия с накопле- нием [3.10]. При таком подходе объем вычислений определяется объемом вы- числений циклических сверток, которые обычно сильно упрощаются при исполь- зовании алгоритмов быстрых преобразований Фурье (БПФ) ;[3.12], теоретико- числовых преобразований (ТЧП) [3.8, 3.9] или метода Агарвала — Кули [3.2]. По сравнению с прямым вычислением эти методы позволяют существенно сни- зить число операций, но, вообще говоря, для вычисления двумерных сверток 48
оин не являются оптимальными. Вычисление с помощью БПФ связано с опера- циями над комплексными числами, значительными ошибками округления, требу-' ет определенных средств для вычисления тригонометрических функций и по- прежнему большого числа умножений. ТЧП могут быть вычислены без умно- жений н без ошибок округления при вычислении свертки. Однако эти преобра- зования строго ограничены по длине слова, длине преобразуемой последователь- ности и используют модулярную арифметику, которая обычно в универсальных ЭВМ реализуется недостаточно эффективно. Метод Агарвала — Кули, основан- ный на вложении нескольких коротких сверток, привлекателен для одномерных сверток, так как он не использует модулярной арифметики и не требует ка- ких-либо манипуляций с тригонометрическими функциями. К сожалению, этот метод не очень эффективен для двумерных сверток. Покажем, что с помощью полиномиальных преобразований [3.3, 3.5] для отображения двумерных сверток в одномерные свертки и полиномиальные про- изведения можно значительно упростить вычисление двумерных сверток. Поли- номиальные преобразования определены на полях полиномов и обладают свой- ством циклической свертки. Эти преобразования вычисляются в обычной ариф- метике без умножений и в сочетании с эффективными алгоритмами короткой свертки и полиномиального произведения позволяют минимизировать объем вы- числений двумерных сверток. 3.2.1. Полиномиальные преобразования Пусть уи,, —двумерная A'xV-точечная циклическая свертка Уи.1=Ъ S hn.mxu-n.l-m>u'l = °...........L (315> m=0 n=0 Чтобы сделать основные упрощения при вычислении этой свертки, необхо- димо представить ее в терминах полиномиальной алгебры. Такое представление выполнено с учетом того, что (3.15) можно рассматривать как одномерную по- линомиальную свертку: N—1 Yi (Z) = 3 (Z) Xi-m (Z) mod (Zw - 1), (3.16) m=0 N-l = % hnmzn, m = (3.17) n—0 2V-1 Xr(Z)=2 r = 0, ... , AT-1, (3.18) s=0 У и,i получено из N полиномов Yi(Z) путем выбора коэффициентов при Z“ В r((Z): N-l Yi(Z) =2 уи lZu, /=0..........N— 1 . (3.19) u=0 Предположим сперва, что Л’ — нечетное простое число, N—q. В этом слу- чае, как показано в разд. 3.1, (Z«—1) является произведением двух циклотоми- ческих полиномов: Z?—1 = (Z—1) Р(Z), (3.20) Р (Z) = Z?_1 + Z?_2 + ... + 1. (3.21) 49
Поскольку Yt(Z) определен по модулю (Z®—1), он может быть вычислен посредством приведения Hm(Z) и Xr(Z) по модулю (Z— 1) и P(Z), множите- лей (Z«—1), вычисления полиномиальных сверток Yi,i(Z) = Yi(Z)mod P(Z) и 5'2,г^У/(2)тос1(2—1) над приведенными полиномами и последующего восста- новления Yi(Z) ,в соответствии с китайской теоремой об остатках: Yi (Z) ~ Sx (Z) t (Z) -fc S2 (Z) V2 l mod (Z?— 1), (3.22) rS1(Z)sl, S2(Z) = 0 modP(Z); lSi(Z) = 0, S2(Z) = 1 mod(Z—1), 1 } где Si(Z)=[<7—P (Z}]/q, (3.24) Sa(Z) = P(Z)/9. (3.25) Задача вычисления Yi(Z), следовательно, сводится к более простой задаче вычисления Yllt(Z) и Уа.г. Вычисление У2,г является чрезвычайно простым, так как У2]/ определено по модулю (Z—1). Таким образом, У2,г есть сверточное произведение скаляров Нг,т и Х21Г, полученных подстановкой 1 вместо Z в Hm(Z) и Xr(Z): 9—1 2 = (3.26) а— 1 q—1 *2.г=3*„г- <3-27) п=0 s=0 Наиболее трудной частью вычисления Yi(Z) является определение Yt,i(Z). Для его упрощения введем преобразование Hn(Z), определенное по модулю P(Z): _ 9—1 Hh (Z) s Н1. m Zmk mod P & > <3'28> m=0 где Hi,m(Z)=Hm(Z)mod P(Z), A=0.....q—1. Будем называть это преобразова- ние (которое имеет ту же структуру, что и ДПФ, но с заменой комплексных экспонент на Z) полиномиальным. Аналогично определим обратное преобразо- вание 1 8—1 _ Нх z(Z)s — У Hk(Z) Z~tk mod P(Z), 1=0.......q — 1. (3.29) Полиномиальные преобразования вычисляются с помощью умножений на степени Z и сложений. Полиномиальные сложения выполняются путем сложе- ния отдельных чисел, соответствующих каждому коэффициенту Z. Умножения иа степени Z можно упростить, если иметь в виду, что Z8=.l mod P(Z). Тогда Hi,m(Z)Zmftrnod P(Z) = [Hitm(Z)Zmlimod{Z4—l)]mod P(Z). Умножение Hlm(Z) на Zmftmod(Z8—1) является, следовательно, простым циклическим сдвигом на [(znA)mod^] точек элементов (Ло,т—ftg-i,m), (Ai ,т—hq — 1,тп (hq-2, m ’ ~~hq—l,Tn ), 0 от Ht,m(Z), составляющих q полиномиальных элементов. Посколь- ку Z8-1s—Z«~2—Z’~3...—ImodP(Z), приведение по модулю P(Z) выполня- ется вычитанием коэффициента при Z8-1 из всех других коэффициентов Z. Та- ким образом, полиномиальные преобразования вычисляются с помощью простых 50
сложений, без каких-либо ограничений на арифметику, поскольку поле F коэф- фициентов может быть выбрано произвольным. Покажем теперь, что полиномиальные преобразования, наряду с ДПФ и тчп, обладают свойством циклической свертки, и, следовательно, могут быть использованы для упрощения вычисления свертки. Это можно сделать, найдя преобразования Rk(Z) и J»(Z) от #i,m(Z) и Xi,r(2) с помощью (3.28), умно- жив Rh (Z) на Xk(Z) по модулю P(Z) и вычислив обратное преобразование Qi(Z) от Rk(Z)Xk(Z)-. 9—1 9—1 j g—1 Qz(Z) = 2 3 я1,т(2)^1,г(2) — 2 ZpkmodP(Z), (3.30) т=0 г—0 Я k=0 в—1 где р=т+г—I. Пусть S= S Zpk. При рфй mod? последовательность экспо- зе нент от pk mod q представляет собой простую перестановку целых чисел 0, 1, ... в—1 —1. Следовательно, 5s S Zft = Р(Z) == 0mod P(Z). Для ps^Omod q S — q. k=o Поэтому единственный ненулевой случай соответствует р=0 или r==Z—т mod q и Qi(Z) приводится к циклической полиномиальной свертке Q— 1 Qf(Z) = Yl t(Z) = 2 Н! m(Z)X1>;_m(Z)rnodP(Z). (3.31) m=Q При этих условиях Yt,i(Z) вычисляется с помощью трех полиномиальных пре- образований и q полиномиальных умножений Rk(Z)Xk(Z), определенных по модулю P(Z). В большинстве применений цифровой фильтрации одна из вход- ных последовательностей является постоянной. Ее преобразование можно вы- числить заранее, и для этого потребуется только два полиномиальных преоб- разования. В этом случае можно также упростить восстановление по китайской теореме об остатках, учитывая, что согласно (3.10): S±(Z) - (Z—1)/[(Z— l)modP(Z)] = (Z— 1) Tj (Z), 7\ (Z) = [ — Ztf-2—2 Z’-з — ... — (?—3) Z2—(?—2) Z -J- 1 — ?] /?. (3.32) Поскольку 7"i(Z) определено по модулю P(Z), то предварительное умно- жение на T^Z) может быть выполнено перед восстановлением по китайской теореме об остатках и объединено с предварительным вычислением преобразо- вания постоянной последовательности. Точно так же предварительное умноже- ние на 1/? можно объединить с вычислением скалярной свертки Y2,i в (3.26), в силу чего восстановление по китайской теореме об остатках, заданное в (3.22), сводится к Yi (Z) = (Z — 1) , (Z) + (Z«-i + Z?~2 + ... + 1) Y21; mod (Z? — 1). (3.33) При этих условиях (?Х?)-точечная свертка вычисляется по схеме, показанной на рис. 3.1. Можно видеть, что единственные умножения, которые требуются для вычисления yu,i, необходимы при вычислении одной (/-точечной свертки и ? полиномиальных произведений по модулю P(Z). Это означает, что если свертка и полиномиальные произведения вычисляются по алгоритму с мини- мальным числом умножений, определенным согласно теоремам 3.2 и 3.3, то (^Х?)-точечная свертка, q— простое, вычисляется только за 2?2—q—2 умно- 51
Рис. 3.1. Вычисление двумерной (A^XW)-точечной свертки с помощью полиноми- альных преобразований, N — простое жений. Можно в действительности показать, что это является теоретически ми- нимальным числом умножений для (^Х?)-точечной свертки при простом q [3.13]. 3.2.2. Составвые полиномиальные преобразования Для простоты мы до сих пор ограничивались (WxAf)-точечными свертками, N=q, q—простое. На практике метод полиномиального преобразования не ограничен случаем простого N. Из (3.28) — (3.31) ясно, что любое полиноми- альное преобразование, имеющее корень aZb и определенное по модулю полино- ма Pe.(Z), будет обладать свойством циклической свертки при условии (aZb)N = lmodPe.(Z) , (3.34) f 0 mod Ре (Z) для р 0 mod N, S = I 1 (3.35) (AfmodPe.(Z) для р = 0 mod Л', N—l когда S= S (aZd')l,,,. Поскольку для вычисления двумерных сверток здесь ис- k=o пользуются полиномиальные преобразования, PCi (Z) является цлклотомическим полиномом, множителем (ZK—1), т. е. v d Z -1=ПРег(2), (3.36) i=l 52
где степень каждого полинома Pe.(Z) есть <р(в()—функция Эйлера 1[3.7]. По- кажем сначала, что всегда существует полиномиальное W-точечиое преобразова- ние с корнем Z, обладающее свойством циклической свертки, если оно опреде- лено по модулю Perf(Z), являющемуся наибольшим циклотомическим полиномом, множителем (ZN—1). Это можно увидеть, если учесть, что, поскольку ZN^a ail mod(ZN—1) и Ре<1 является множителем (ZN—>1), то Z"^! mod Ped(Z). N—l Отсюда вытекает (3.34). В условии (3.35) р=0 modN, так как Se S Zfb=N. Л=0 N—l Для p^Omod#, N — взаимно-простое, S= S Zftmod(Z)T—1), откуда вытека- k=o d ет, что S= П PSi(Z) =0 mod Pea (Z). Для p^OmodA' и невзаимно-простого f=2 c N p всегда можно рассматривать, без потери общности, как множитель N'. N/p—l Тогда S^p S Z?k=p(ZN—l)/(Zp—1). Наибольший полиномиальный множи- ло тель (ZN—1) есть полином Ped(Z) степени <p(N). Наибольший полиномиальный множитель (Z*—1) является цнклотомическнм полиномом Q(Z) степени ср(р). Q(Z) отличается от Ped (Z), поскольку <р (р) <ф (N), и ои не может быть мно- жителем для Pe^(Z), так как Ped(Z)—неприводимый полином. Таким образом, Zr—mod Ped(Z), a S^O mod Ped (Z). Тем самым соотношение (3.35) до- казано. При этих условиях (NX-V) -точечная свертка yu,i вычисляется при помощи преобразования входной последовательности .V полиномов по N членов, приве- d—i денных по модулю Ped(Z) и по модулю П Pe/(Z). Выходные отсчеты yu,i по- 1=1 лучаются путем восстановления по китайской теореме об остатках из полино- миальной свертки У1,<(2) mod Ped(Z) и полиномиальной свертки Y2,i(Z) Д-1 mod nPej(Z). Yi,i(Z) вычисляется с помощью ^-точечных полиномиальных 1=1 d—l преобразований. Поскольку степень Ped(Z) есть ср (А'), степень П РС( (Z) равна £=1 N—4p(N) и Y2.i(Z) можно рассматривать как обобщенную скалярную [Nx(N— —<p (N))] -точечную свертку. Такой же метод можно использовать рекурсивна Для вычисления Y2,i(Z) с помощью полиномиальных преобразований. Необходимо также заметить, что когда .V]-точечное полиномиальное преоб- разование (корень aZ\ А\ — нечетное) обладает свойством свертки, всегда мож- но увеличить длину преобразуемой последовательности до WiAA, где W2=2‘. В этом случае корнем нового преобразования будет aW'Z6, где W'=exp(—j2n/\T2'l, j— J/—1. Это свойство является прямым следствием того, что W' — корень из единицы порядка N2 и aZb — корень из единицы порядка А/’t, где A/t и N2 — взаимно-простые. Оно чрезвычайно полезно для вычисления (2NiX2A/[)- и (4NtX4JV1) -точечных сверток, так как в этих случаях —1 или —j и поли- номиальные преобразования по-прежнему вычисляются без умножений. Для составного наиболее интересны случаи, когда N— степень простого числа. На рис. 3.2 показан алгоритм вычисления (^Х?2)-точечной свертки с по- мощью полиномиальных преобразований, q— простое нечетное. В этом примере (^Х?2)-точечная свертка отображена без умножений в q2+q полиномиальных 53
Рис. 3.2. Вычисление двумерной (WX1V)-точечной свертки с помощью полиноми- альных преобразований N=q2, q — простое произведений по модулю P3(Z) = (Zi~—1)/Z'!^1 4.74(9-2)+ ... +1 и в (?Х?)-точечную свертку. Последнюю свертку саму можно отобразить без ум- ножений в q полиномиальных произведений по модулю jP2(Z) =Z«-1+Z’-2+ ... ... +1 и одну ^-точечную свертку с помощью метода, представленного на рис. 3.1. Первый шаг вычисления (2‘Х2‘)-точечной свертки с помощью полиноми- альных преобразований показан также на рис. 3.3. В этом случае вычисление выполняется за (/—1) шагов с полиномиальными преобразованиями, определен- ными по модулю P1+i(Z)=Z2«-14-1, Pt (Z) =Z2(-2+1,..., P3(Z) = Z2+1. Эти полиномиальные преобразования особенно интересны потому, что длины преобра- зуемых последовательностей являются степенями двойки и поэтому они могут быть вычислены с уменьшенным числом сложений с помощью алгоритма типа ВПФ по основанию 2. В табл. 3.1 сведены основные условия для полиноми- 54
Полиномиальные преобразования для вычисления сверток (q, qi, q2 — простые) Таблица 3.1 Преобразование по кольцу P(Z) Преобразование Размеры массива AtXjV Число сложений для приве- дений полиномиальных пре- образований и восстановле- ния по китайской теореме об остатках Полиномиальные произведения и свертки длина корень (Z^1)/(Z-1) q z qxq 2(q*+q2- 5</ + 4) <7 произведений P(Z), свертка 2q 2q —z 2qXq 4(<73+2<72—6<?+4) 2q произведений P(Z), свертка 2q (Z2g__I)/(Z2—j) 2q —Zl-i ‘ 2qX2q 8(<73 + 2</2—6<? + 4) 2q произведений P(Z), свертка 2x2q (Z«J2-1)/(Z3-1) q Zi qXq2 2(<74 + 2<73—4</2 -<7 1-4) q произведений P(Z), q произведений (Z^—1)/(Z— 1), свертка q q2 z q2Xq2 2(2<?5+<74—5<?3+<72 + 6) q(q+\) произведений P(Z), q произведений (Z^—1)/(Z—1), свертка q (Z2^—1)/(Z2«—1) 2q2 —ZI^1 2q2X2q2 8(2<75 + 2<74—6<73—<72+ + 5<?+2) 2<7(<7+I) произведений P(Z), 2q произведений (Z2«—1)/(Z2— -1), свертка 2x2q (Z<№-4)/(Z«2—1) qi Z^2 <71X<71<72 2<72(<73i + <72i-5 ?1 + 4) qi произведений P(Z), свертка qtXqz Z2'-1 +1 2/ z 2‘X2‘ 22<_1 (37+5) 3-2t-1 произведений P(Z), свертка 2‘~iX2‘~1 сл w
Рис. 3.3. Вычисление двумерной (WX1V) -точечной свертки с помощью полиноми- альных преобразований, W = 2e альных преобразований, которые можно вычислить без умножений и которые соответствуют таким двумерным массивам, размеры которых имеют общий множитель. 3.2.3. Вычисление полиномиальных преобразований и приведений полиномов Вычисление двумерных сверток с помощью полиномиальных преобразований включает вычисление приведений, восстановление по китайской теореме об ос- татках и полиномиальные преобразования. Для наиболее интересных случаев, собранных в табл. 3.1, определим число сложений, требуемых при выполнении этих операций. Когда q— простое, входные последовательности должны быть при- ведены по модулю Z—1 и по модулю P(Z) =Z'' ’-LZ;^24- ... +1. Каждая опе- 56
рация выполняется очень просто за q(q—1) сложений, путем суммирования gcex членов входной последовательности для приведения по модулю (Z—1), как показано в (3.27) и с учетом того, что в результате приведений по модулю p(Z) образуются N полиномов Hi,m(Z): а-2 Я1.т(2) =3 , m=0.......q-1. (3.37) n=0 Восстановление по китайской теореме об остатках выполняется за 2q(q—1) сложений с использованием (3.33). Поскольку Ti,i(z) представляет собой поли- ном «з q—l членов, У i,i(Z) может быть определен как 9—2 у, ,(^ = 2 yi,u,iz“ • <3-38> и=0 Таким образом, (3.33) переходит в 9—2 У/(£) = К2/ ^i.o.z+2 ^l.u—i.i ^i.u,z +^2.?^“ + u=l + ^i.g-2.z + r2,/)^-1, / =0....q— 1. (3.39) Для N=q\ q — простое, или для #=2‘ приведения и восстановление по китайской теореме об остатках выполняются аналогичным образом. В табл. 3.2 в третьей колонке приведено соответствующее число сложений. Для N—q, q — простое, полиномиальное преобразование Rk(Z), определен- ное с помощью (3.28), вычисляется следующим образом: _ 4—1 = /71>0(2) + 2 tfl rn(Z)Zm*inodP(ZM=0........<7-2; (3.40)- т=1 _ 9—1 (Z) = Ht 0 (Z) + 2 н!.т (2) modР (Z) , (3.41) m=l Таблица 3.2 Число сложений для вычисления приведений, операций восстановления по китайской теореме об остатках и полиномиальных преобразований (q, qii q? — нечетные простые) Длина по* следова* тельности Кольцо Число сложений для приведений и восстановления по китайской теореме об остатках для полиномиальных преобразований я (Z«-1)/(Z^1) iq(q— 1) 73—72—37+4 2q (Z«—1)/(Z—(1) 87(7-1) 2 (q3—47+4.) 2q (Z2«—d)/(Z2—1) 167(7—1) 4 (73—47+ 4). Я (Ze’-1)/(Z9-1) 472(7-1) 7(73—72—37 + 4) я2 (Z«2—1)/(Z9—1) 473(7—1) 27s—т274—573+572 + 7 + 2 2q (Z2^2—1)/(Z29—1) 1б72(7-1) 47(73—47 + 4) 2q3 (Z2«2—1)/(Z2«—1) 1б73(7—1) 4 (27s—74—673+572 + »+7+2) 2‘ Z2'-1 _|_ ! 221 + 1 /221"1 57
q—l где —полиномы из q— 1 членов. Пусть Rk(Z) = S ffi,m(Z)Zmk. Так m=l «—1 как J?0(Z) = S Hi,m(Z), то /?o(Z) вычисляется за (<?—2) (q—1) сложений. При /П=1 k^O Rh{Z) представляет собой сумму q—1 полиномов, каждый из которых умножен на степень Z. Rk(Z) сначала вычисляется по модулю Z«—1. Посколь- ку Z®=1, каждый полином Hi,m(Z) Тюсле умножения на степень Z становит- ся полиномом из q членов, где один член равен нулю, т. е. вычисление (Z)mod(Z«—1) требует q2—3q+ 1 сложений. Затем 7?k(Z) приводится по мо- дулю P(Z) с помощью q—I сложений. Таким образом, вычисление каждого <?-2 Rh(Z) при &У=0 требует q2—1q сложений. Поскольку S Z’nftE3— k=o modP(Z), для m=^=0, <2—2 <2—1 <2—1 S S 2 WI,OT(Z)Zm'Q-1)modP(Z) (3.42) fc=0/n=l m=l <2—1 и S Hi,m(Z)Zm<9-1> вычисляется за (q—1)(?—2) сложений при помощи coot- m=l ношения: <2—1 <2—2 2 Hlt m (Z) Zm^ ~-J] Rh(Z) mod P(Z). (3.43) m—l k—0 Окончательно fh(Z) получается сложением H1,0(Z') c Ps(Z) и ч-1 S Hi,m(Z')Zml-i-^ за q(q—1) сложений. Таким образом, для вычисления полино- т=1 миального преобразования из q членов, q — простое, требуется общее число сложений q3—q2—3<y+4. Полиномиальные преобразования для составного вычисляются с умень- шенным числом сложений с помощью алгоритма типа БПФ. Если, например, А'=А^2, полиномиальное преобразование Rk(Z) последовательности <V эле- ментов вычисляется с помощью Л'< Мг-точечных преобразований, N2 Wj-точеч- ных преобразований и умножения на фазовые множители Zm2ftz: HNikl+k2(Z)^ ZN‘m^ X m2=-0 JV2-1 2 ^i.A/imi+m2 (Z)Z^m‘^,fti=0..........Nt— 1 ;йа=0.........(Va-1. Wi=0 (3.44) В четвертой колонке табл. 3.2 приведено число сложений, требуемых для различных полиномиальных преобразований. В табл. 3.1 в четвертой колонке также дано общее число сложений для приведений, полиномиальных преобразо- ваний и восстановления по китайской теореме об остатках для различных дву- мерных сверток, вычисляемых с помощью полиномиальных преобразований. 58
3.2.4. Вычисление полиномиальных произведений и одномерных сверток В предыдущих разделах показано, что двумерные свертки можно эффектив- но вычислять, отображая с помощью полиномиальных преобразований двумер- ные свертки в одномерные полиномиальные произведения и свертки. Если по- линомиальные преобразования выбраны правильно, отображение выполняется без умножений и с ограниченным числом сложений. Таким образом, при вычис- лении двумерных сверток с помощью полиномиальных преобразований слож- ность вычислений сильно зависит от эффективности алгоритмов, использованных для вычисления полиномиальных произведений и одномерных сверток. Первый метод вычисления одномерных сверток и полиномиальных произ- ведений состоит в применении ДПФ или ТЧП. Так как эти преобразования об- ладают свойством свертки, с их помощью можно непосредственно вычислять од- номерные свертки. Эти преобразования можно использовать также для вычис- ления полиномиальных произведений по модулю Ре- (Z) с учетом того, что,, поскольку Pet(Z), определенный выражением (3.36), является множителем для 2я—1, все вычисления можно выполнять по модулю ZN—1 с приведением на последнем этапе по модулю Pei(Z). В соответствии с этим методом вычисление полиномиального произведения по модулю Pei(Z) заменяется вычислением поли- номиального произведения по модулю ZN—1, которое является ЛГ-точечной' сверткой. Тогда вычисление полиномиальных произведений по модулю Pf. (Z),. РЧ(2) — множитель (Zw—1), можно выполнить с помощью ^точечной ДПФ' или ТЧП. Этот метод можно пояснить на следующем простом примере. Предположим, что два входных полинома X(Z)=Xq+X\Z и H(Z) —hQ+hiZ нужно перемно- жить по модулю P(Z) = (ZS—1)/(Z—1)=Z2+Z+1. Для этого сначала нужно найти 3-точечную циклическую свертку Y (Z) двух входных последовательностей, при HZ) = </o+</iZ+i72Z2, (3.45) (г/0 = лвх0, } </1 = h0Xi + hi х0, (3-46) I t/2 = ht Xi. Полиномиальное произведение Ti(Z), определенное по модулю P(Z), зада- ется тогда выражением Yi(Z) s{[//(Z)X(Z)]mod(Zw—l))modP(Z), которое со- ответствует простому приведению Y(Z)mod P(Z). Поскольку Z2=—Z— 1, то это приведение достигается простым вычитанием yz из и у\, причем (%)—У 1, о + У\, 1 % = Y (^) m°d Р (2), (3.47): (У1 о = х»— hi Xi, 1 . (3.48) l^i, 1 = + х0—• hi Xi. Схема вычислений по этому методу приведена на рис. 3.4 для (^Х?)-то- чечной свертки, q — простое число. В этом случае с помощью метода, приве- денного на рис. 3.1, двумерная свертка вместо одной ^-точечной свертки плюс У полиномиальных произведений по модулю (Z«—1)/(Z—1) отображается в G/+1) (/-точечные свертки. Таким образом, одномерные свертки и полиномиальные произведения могут быть вычислены с помощью ДПФ или ТЧП. Трудности, связанные с использо- 59-
Рис. 3.4. Вычисление (gX?)-точечной свертки с помощью полиномиальных пре- образований, q— простое. Полиномиальные произведения по модулю (ZN—1)/ (Z—1) заменяются W-точечными свертками ванием этих преобразований, такие, как ошибки округления для ДПФ или мо- дулярная арифметика для ТЧП, относятся теперь только к части общего вы- числительного процесса. Однако в разд. 3.1 мы видели, что методы, основан- ные на интерполяции и китайской теореме об остатках, порождают для корот- ких сверток и полиномиальных произведений более эффективные алгоритмы, чем алгоритмы их вычислений с помощью ДПФ или ТЧП. Следовательно, такие ал- горитмы часто выгодно применять в комбинации с полиномиальными преобра- зованиями. Мы увидим, что эти алгоритмы нельзя получать систематически из общего метода, как в случае, например, алгоритмов БПФ. Таким образом, каж- дый алгоритм короткой свертки или полиномиального произведения в данном применении нужно программировать специально и для сокращения размеров программы желательно использовать только ограниченное число различных ал- горитмов. Одним из таких способов является вычисление коротких сверток как полиномиальных произведений с помощью китайской теоремы об остатках. В случае двумерной (.qXq)-точечной свертки, q — простое, метод полиномиально- го преобразования требует вычисления q полиномиальных произведений по мо- дулю P(Z) = (Z«—1)/(Z—1) н одной ^-точечной циклической свертки. Однако, если «/-точечная циклическая свертка находится с помощью китайской теоремы .об остатках за одно умножение и одно полиномиальное произведение по моду- лю P(Z), вычисление можно выполнить с помощью только одного алгоритма полиномиального произведения по модулю P(Z). В этом случае (9X9)-точечная свертка вычисляется с помощью 9+I полиномиальных произведений по модулю 450
Рис. 3.5. Вычисление (</Х?)-точечной свертки с помощью полиномиальных пре- образований, q — простое; (/-точечная свертка заменяется одним умножением н одним полиномиальным произведением по модулю P(Z) P(Z) и одного умножения вместо q полиномиальных произведений по модулю P(Z) и одной (/-точечной свертки. Схема вычислений по этому методу приведе- на на рис. 3.5. В дальнейшем будем предполагать, что все двумерные свертки вычисляются аналогично, так что займемся только алгоритмами полиномиального произведе- ния. Кроме того, увидим, что в большинстве случаев свертки можно найти с помощью ограниченного набора алгоритмов полиномиальных произведений, глав- ным образом тех, которые определены по модулю: P(Z) = (Zt—1)/(Z—1), q = =3, 5, 7, и P(Z) = (Z9—1)/(Z3—1) или Z2* + l. Поскольку эти полиномы P(Z) неприводимы, их всегда можно найти с помощью интерполяции в соответствии С теоремой 3.2 за (D—1) умножений, где D — степень P(Z). Как показано в подразд. 3.5.1, 3.5.2, использование этого метода для умножений по модулю 2»+1 и модулю (Z3—1)/(Z—1) порождает алгоритмы с тремя умножениями и тремя сложениями. Для полиномиальных произведений большей размерности этот метод, обес- печивающий минимальное число умножений, приводит к чрезмерному увеличе- нию числа сложений. Это происходит потому, что в этом случае требуется (20—1) различных полиномов Z—at. Четыре наиболее простых интерполяцион- ных полинома имеют вид: Z, 1/Z, Z—1 и Z+1. Таким образом, когда степень О полинома P(Z) больше двух, необходимо использовать целые at, отличные от 0 или ±1, а соответствующие приведения по модулю Z—а, и восстановление по китайской теореме об остатках будут включать умножения на степени а,. 61
Такие операции можно выполнить либо посредством скалярных произведений, либо с помощью большого числа последовательных сложений. Это приводит к построению компромиссных алгоритмов, в которых сохранен разумный баланс между числом сложений и числом умножений. Хотя не существует общих мето- дов построения таких алгоритмов, полезны некоторые общие принципы. Первый подход к снижению числа сложений за счет небольшого увеличе- ния числа умножений состоит в применении комплексных интерполяционных по- линомов. Если используем, например, Z2+l = (Z-pj) (Z—j), j= ] —1, нам нуж- но 3 действительных умножения вместо двух для полинома, имеющего дейст- вительные целые корни. Однако приведения н восстановление по китайской тео- реме об остатках остаются простыми, так как требуют только простых сложе- ний и умножений на ±1 или ±j. Другой подход состоит в преобразовании од- номерных полиномиальных произведений в многомерные. Например, умножение по модулю P(Z) = (Z9—1)/(Z3—1)=ZS+Z3+1 можно заменить на умножение по модулю (Z3—Zi), (Z21+Z1 + l), так как подстановка Z-=Z3 в Z2i+Zj + 1 да- 5 ет P(Z). В соответствии с этим методом входные полиномы A7Z)= S xnZn и п=0 5 H(Z) = S hmZm сначала приводятся по модулю (Z3—Z.) посредством подста- новки Z3^Z[ в Л(2) и H(Z). Таким образом, X (Z) = Хо (Z) + ZXt (Z) + Z* Х2 (Z), (3.49) j" (Z) = х0 + хз Zi . | X1(Z) = x1 + x4Z1, (3-50) ( Х2 (Z) = х2 + хь и аналогичные соотношения выполняются для H[Z). Теперь полиномиальное произведение по модулю Z3—Z\ можно вычислить по методу интерполяции за 5 умножений по модулю (Z2i+Zi + I). Поскольку, как показано в подразд. 3.5.2, каждое из этих полиномиальных умножений требует трех скалярных умноже- ний, полиномиальное произведение по модулю (Z9—1)/(Z3--’) выполняется за 15 умножений. Подробный алгоритм приведен в подразд. 3.5.5. Аналогичный метод можно использовать для полиномиальных произведе- ний по модулю Z2*+l. Полиномиальное умножение по модулю Z4-yl выполня- ется, например, по модулю Z2—Zb Z2,+ l за 9 умножений и 15 сложений (см. подразд. 3.5.3), в то время как традиционный интерполяционный метод потре- бовал бы 7 умножений и 41 сложение. Все алгоритмы, построенные по этим методам, можно рассматривать как вычисления с помощью прямоугольных преобразований. Предположим, общая структура алгоритма полиномиального произведения по модулю полинома P(Z) степени М, требующего М умножений, такова: H = Eh, (3.51) X=Fx, (3.52) Г = НхХ, (3.53) y=GY, (3.54) где h и x — вектор-столбцы входных последовательностей {/1 } и {xn}; Е и F — входные матрицы 34 ХА’ (знак X означает поэлементное произведение); G-- выходная матрица NxM; у — вектор-столбец выходной последовательности 62
(у,). Здесь Eh, Fx и GY вычисляются без умножений, тогда как НхХ нахо- дится посредством М умножений. Если алгоритм построен с помощью интерпо- ляционного .метода, матрицы Ей F соответствуют различным приведениям по модулю Z—at, а матрица G — восстановлению по китайской теореме об остат- ках. Так как восстановление по китайской теореме об остатках можно рассмат- ривать как обратную операцию по отношению к приведению, она приблизитель- но эквивалентна по сложности двум приведениям. Поэтому матрица G обычно примерно в два раза сложнее матриц Е и F. В большинстве практических при- ложений фильтрации одна из входных последовательностей {hm} постоянна, по- этому Н можно вычислить и запомнить заранее. Таким образом, число сложе- ний Для алгоритма преимущественно зависит от сложности матриц F и G, а ие матрицы Е. При этих условиях для снижения числа сложений было бы чрезвы- чайно желательно осуществить перестановку матриц Е и G. Заметим, что в со- ответствии с (3.50)— (3.54) yi задается следующим образом: ЛГ-1 лг-1 м-1 У1 — 2 3 ^тХп 3 em,k fn,kSk,i , (3.55) n=0 m=0 £=0 где em,k, fn,k и gk,i — элементы матрицы Е, F «и G. Для алгоритма по модулю F(Z) = ZN—I, соответствующему циклической свертке, находим обычное ус- ловие, определяющее циклическую свертку: М—1 fl, если т+п—1=0 mod N; S= S Л (3.56) k=o (О, если т+п—1^0 mod N. Аналогично алгоритмы полиномиального произведения по модулю Z" + l «ли ZN—Zt удовлетворяют условиям: f I, если т+п—1=0; —1 или Zi, если т+п—l=N; (3.57) ( 0, если т+п—1^ 0 mod N. Теперь заменим матрицы Е и G матрицами Е1 и G1 таким образом, чтобы их элементами были и gk.N-m. При этих условиях S переходит в S1 и яз (3.56), очевидно, вытекает м—1 (1, если т+п—l=0mod N; ^=3 eN-'.kfn.kgk.N-m^ L , п Jlr (3.58) fe=o 10, если т+п—1^0 mod Следовательно, как указано в [3.14], свойство свертки по-прежнему сохра- няется, если матрицы Е и G меняются местами с помощью простого транспо- нирования и перегруппировки столбцов и строк. Такой же общий подход можно применить для полиномиальных произведений по модулю ZN + i или ZN—Zt. 'Однако в этих случаях условия для S = 1 и S =—1 или Zx в (3.57) заменяют- ся на т=0 или 1=0. Таким образом, элементами матриц Е1 и G1 должны ‘быть: gk.N-m для m=0, — gk.N-m или (MZi'jgk.N-m для т=0 и еЯ-1,ц для 1^0, —вя-ць. или ZieN-i,k для 1=0. Этот подход применен для описанного в нодразд. 3.5.5 алгоритма полиномиального произведения по модулю (Z9— -1)/(Z3-1). В приложении 3.5 приведены подробные алгоритмы для наиболее часто ис- пользуемых полиномиальных произведений, а в табл. 3.3 — соответствующее чис- ло операций. Число арифметических операций для двумерных сверток, вычис- 53
Таблица 3.3 Число операций для алгоритмов полиномиальных произведений Кольцо P(Z) Степень по- линома P(Z) Число умножений Число сложений Z’+l 2 3 3 (Z3—1)/(Z—1) 2 3 3 Z4+l 4 9 15 Z‘+l 4 7 41 (25-l)/(2-l) 4 9 16 (Z«—1)/(Z—1) 4 7 46 (Z’-1)/(Z-1) 6 15 53 (Z3—1)/(Z3—1) 6 15 39 Z3+l 8 21 77 (Z31+Z1+1)(Z’2—1)/(Z2—1) 8 21 83 (Z^+<1)(Z^+Z2+1) 8 21 76 (Z2i + l)(Z52-l)/(2-l) 8 21 76 2‘«+ 1 16 63 205 (22’—1)/(2»—,1) 18 75 267 232+1 32 147 739 2«‘+l 64 315 1891 Таблица 3.4 Число операций для двумерных сверток, вычисляемых с помощью полиномиальных преобразований Размеры массива Число умножений Число сложений Число умножений на отсчет Число сложений на отсчет 3X3(9) 13 70 1,44 7,78 4X4(16) 22 122 1,37 7,62 5X5(25) 55 369 2,20 14,76 6X6(36) 52 424 1,44 11,78 7X7(49) 121 1163 2,47 23,73 8X8(64) 130 750 2,03 11,72 9X9(81) 193 1382 2,38 17,06 10X10(100) 220 1876 2,20 18,76 14X14(196) 484 5436 2,47 27,73 16X16(256) 634 4774 2,48 18,65 18X18(324) 772 6576 2,38 20,30 24 X 24(576) 1402 12 954 2,43 22,49 27X27(729) 2893 21 266 3,97 29,17 32x32(1024) 3658 24 854 3,57 24,27 64x64(4096) 17 770 142 902 4,34 34,89 128X128(16 384) 78 250 718 966 4,78 43,88 64
ляемых в соответствии с этими алгоритмами, дано в табл. 3.4. Следовало бы заметить, что мы оптимизировали алгоритмы с точки зрения снижения числа умножений. Если вычисления осуществляются на ЭВМ, у которой время выпол- нения умножения сравнимо с временем сложения, предпочтительно использо- вать Другие алгоритмы полиномиальных произведений, в которых еще больше уменьшается число сложений за счет некоторого увеличения числа умножений. 3.2.5. Гнездовые алгоритмы Систематическое применение методов, рассмотренных в предыдущем разде- ле, позволяет построить большое число алгоритмов полиномиального произведе- ния, требующих относительно малого числа сложений и умножений, и, следо- вательно, вычислять большие двумерные свертки с помощью составных поли- номиальных преобразований. В качестве альтернативного подхода может слу- жить конструирование больших двумерных сверток из ограниченного ряда ко- ротких двумерных сверток методами, подобными тому, который использовался для одномерных сверток [3.2]. В этом методе двумерная (NlN2XNiN2)-tO4e.4- ная свертка yu,i, (Vi и N2 — взаимно-простые, превращается в четырехмерную [(NiXNi) X (Л^ХЛ'г)]-точечную свертку путем простого изменения индексации. Пусть задано Л',У2-1 .V,JV2-1 Уи,1~ 2 3 ^п,т хи—п, I—т. (3.59) т-0 п=0 Поскольку .Vj и Л’2 — взаимно-простые числа и индексы I, т, п и и опре- делены по модулю .Vi.V,, прямым следствием китайской теоремы об остатках [3.7] является то, что /. т, пни можно отобразить на два ряда индексов Ц, mi, И1, «1 и /2, т2, п2, и2, где I з 12 + Л'2 1г mod JVX N2; т ~ Nt т2 + N2 т2 mod N± N2 ; (3.60) n 3 JVX n2 + N2 nJ mod Л/j N2, m1, nx, ux = 0......jVt — 1 ; и = A\ u2 + N2 их mod A\N2 ; l2, m2, n2, u2 — 0, ... , N2-— 1. Следовательно, yu,i преобразуется в четырехмерную (NiXNi) X (A^XVz) -то- чечную свертку Л’,-1 лг,-1 w2-i y2-i yN1u2+N2ut,N1t1+N1!lt 2 2 2 2 ^Nin2+N2nl,Nimi+N2ml'X^ zn,=0 n,=0 m2=0 n.-O X хЛ'1(иа-п2)+Л'2(и1-п1), V1(Z2-m2)+^(/1-m1). (3-61) Эту четырехмерную свертку можно рассматривать как двумерную (NiX^i)-то- чечную свертку, в которой все скаляры заменены двумерными (МгХЛ^-точеч- ными полиномами. Точнее, представляя входные и выходные последовательности в виде двумерных полиномов, получим N2-l n2-i Н— 2 2 ^A\rt2-HV2n,, .Vj/nj-pjVj/n, Z"2 • (3.62) m2=0 n2—0 N2—1 У2—1 , S1 (г1 > = 2 2 XN,r2+N2r1,N,s2+N2s1 X r2=0 s2=0 X Zp , r1S1 = °........N± — 1; (3 63) 60
ЛГ2-1 w2-l ^u,, (21 ’ = S 2 ^1u2+W2uI,A’1/a+.V.?i Z"2 Z2* ’ (3.04) u2=0 /2=0 AZj-l yt-l x /n2=0 n,= 0 XXUi_„iiZi_m] (ZltZ^moA(Z^ — 1),(Z?’ — 1). (3.65) Каждое полиномиальное умножение ff„,m,(Zi, Z2)Xut—nt, 1,—mt (Zt, Z,\ по модулю Zi‘v2—1, Z2K2—1 соответствует (Л'гХЛ^)-точечной свертке, которая вычисляется с Л42 скалярными умножениями и А2 скалярными сложениями. В (AG X AG)-точечной свертке все скаляры заменяются полиномами Л^ХЛ’г. Таким образом, если Mi и At — число умножений и число сложений, требуемых для вычисления скалярной (Л^ХЛ^-точечной свертки, то число умножений М и число сложений А, требуемых для вычисления двумерной (NtN2XNiN2)-точеч- ной свертки, сводится к М = М1М2, (3.6'3) A — N2 Л1-|-М1Л2. (3.67) Если А', и Ад поменять местами, число умножений останется таким же. число сложений станет равным №1Л2 + Л12Л1. В случае более двух множителей этот способ вычисления можно использовать рекурсивно, при условии, что нее множители взаимно-простые. На практике (AfiXAG)- и (.V2X.V2)-TO4e4Hbie сверт- ки вычисляются с помощью полиномиальных преобразований, а большие двумер- ные свертки — посредством небольшого набора алгоритмов полиномиальных преобразований. Например, (15Х 15)-точечную свертку можно было бы вычис- лить с помощью (3x3)- и (5X5)-точечных сверток. Поскольку эти свертки вы- числяются соответственно за 13 умножений, 70 сложений и 55 умножений, 369 сложений (см. табл. 3.4), вложение двух алгоритмов позволяет вычислить (15X15)-точечную свертку за 715 умножений и 6547 сложений. В табл. 3.5 при- ведено число арифметических операций для различных двумерных сверток, вы- численных с помощью полиномиальных преобразований и вложения. Можно видеть, что этот метод дает очень малое число умножений на отсчет, но число Таблица 3.5 Число операций для двумерных сверток, вычисляемых с помощью полиномиальных преобразований и вложения Размеры массива Число умножений Число сложений Число умножений на отсчет Число сложений на отсч< т 12x12(144) 286 - 2638 1,99 18,32 20X20(400) 946 14030 2,36 35,07 30X30 (900) 2236 35404 2,48 39,34 36 X36(1296) 4246 40286 3,28 31,08 40X40(1600) 4558 80802 2,85 50,50 60 X60(3600) 12 298 195 414 3,42 54,28 72x72 (5184) 20 458 232 514 3,95 44,85 80 X 80 (6400) 27 262 345 826 4,26 54,03 120X120 (14 400) 59 254 1 081 756 4,11 75,12 66
Таблица 3.6 Число операций для двумерных сверток, вычисляемых с помощью полиномиальных преобразований и .послойного вложения Размеры массива' Число \ чноженпй Число сложена:! Чие.ъ) м,,с-ч '"ii:i на отсчет Число С.ю.кснп;! на отсчет 12x12(144) 286 2 290 1 .99 15,90 20X20(400) 946 10 826 С ,36 27,06 30 X 30 (900) 2236 28 348 2.48 31,50 36X36 (1296) 4246 34 010 3,28 26,24 40x40(1600) 4558 69 534 2,85 43,46 60X60 (3600) 12 298 129 106 3,42 35,86 72X72 (5184) 20 458 192 470 3,95 37,13 80X80 (6400) 26 254 308 494 4,10 48,20 120X120 (14 400) 59 254 686 398 4.11 47,67 сложений на отсчет, в общем, выше, чем при использовании составных полино- миальных преобразований. Число сложений можно уменьшить посредством не- большого усовершенствования метода вложения Агарвала Кули. Это осущест- вляется с помощью метода послойного вложения [3.41, в котором первый шаг вычислений такой же, как в методе Агарвала — Кулп, причем (А|А2ХА|А2)- точечная свертка вычисляется как (А'|ХА|)-точечная, в которой скаляры за- меняются полиномами Л’гХЛд- Таким образом, А, сложений, соответствующих алгоритму А,хА,, дают согласно (3.67) №2Ai сложений. В методе Агарвала — Кули М\ умножений, соответствующих алгоритму AiX.Vi. затем заменяют на Л1, (А2ХА2)-точечных сверток, что дает, таким образом. М;А2 сложений. В по- слойно-гнездовом алгоритме, однако, роль А, и N? на этом шаге меняется. Если предположить, что Л\ и N? — простые, то умножений, связанных с алгорит- мом AiXAi, соответствуют Ni +1 произведениям полиномов из А,—1 членов плюс одно умножение. Поэтому Mt (А2ХА2)-точечных сверток можно рассмат- ривать как (А2хЛ'2)-точечную свертку, в которой скаляры заменены на А!-!-1! полиномов из Ai—1 элементов плюс один скаляр. Таким образом, каждое сло- жение в алгоритме А2ХА2 повторяется Л,21 раз вместо Л4, и, поскольку A2i< <Mit число сложений уменьшается, в то время как число умножений остается неизменным. В табл. 3.6 приведено число арифметических операций для различных дву- мерных сверток, вычисляемых с помощью полиномиальных преобразований и ме- тода послойного вложения. Можно видеть, что число сложений значительно меньше, чем при обычном вложении, и сравнимо с числом сложений для ме- тода, использующего большие составные полиномиальные преобразования. 3.2.6. Сравнение с традиционными вычислительными методами Подробное сравнение метода полиномиального преобразования с традици- онными вычислительными методами затруднено тем, что все зависит от кон- кретного выбора алгоритмов, относительной стоимости умножений и сложений, а также стоимости вспомогательных операций. Для сверток вещественных последовательностей метод полиномиального преобразования требует только вещественных арифметических операций и не 67
Таблица 3.7 Число операций для двумерных сверток, вычисляемых методом вложения Агарвала — Кули Размеры массива Число умножений Число сложений Число ум ножеиий на отсчет Число сложений на отсчет 3X3 (9) 16 77 1 ,78 8,56 4X4(16) 25 135 1,56 8,44 5X5 (25) 100 465 4,00 18,60 7X7(49) 256 1610 5,22 32,86 8X8(64) 196 1012 3,06 15,81 9X9(81) 361 2072 4,46 25,58 12X12(144) 400 3140 2,78 21,81 16X16(256) 1225 7905 4,79 30,88 20X20 (400) 2500 16 100 6,25 40,25 30X30 (900) 6400 41 060 7,11 45,62 36 X36(1296) 9025 62 735 6,96 48,41 40X40 (1600) 19 600 116 440 12,25 72,77 60x60 (3600) 40 000 264 500 11,11 73.47 72 X 72(5184) 70 756 488 084 13,65 94,15 80X80 (6400) 122 500 799 800 19,14 124,97 120X120(14 400) 313 600 1 986 240 21 ,78 137,93 использует тригонометрических функций. Таким образом, представляется логич- ным сравнивать его с методом вложения Агарвала — Кулп, который также об- ладает этими свойствами и относительно эффективен для одномерных сверток, В табл. 3.7 приведено число арифметических операций для двумерных сверток, вычисленных по этому методу, как описано в подразд. 3.2.5, но без полиноми- альных преобразований. Из сравнения табл. 3.7 и 3.6 можно видеть, что число операций всегда больше, чем в методе полиномиального преобразования, для которого относительная эффективность повышается с увеличением размерности векторов в операции свертки. Например, для (120Х120)-точечной свертки мето/, полиномиального преобразования требует примерно в 5 раз меньше умножений и в 2,5 раза меньше сложений, чем метод Агарвала — Кули. Сравнение с вычислением при помощи БПФ является до некоторой степе- ни более сложным, поскольку в этом случае вещественные свертки требуют комплексной арифметики и включают операции с тригонометрическими функ- циями. В табл. 3.8 приведено число вещественных операций для вещественных двумерных сверток, вычисляемых с помощью БПФ-алгоритма Рейдера — Бреннера {3.15]. Предполагается, что две вещественные свертки вычисляются отдельно, а тригонометрические функции вычисляются и запоминаются заранее При этих условиях, довольно благоприятных для алгоритма БПФ, число сложе- ний для него немного больше, а число умножений примерно в два раза боль- ше по сравнению с методом полиномиального преобразования. Применение обычного алгоритма БПФ по основанию 4 или алгоритма Винограда преобра- зования Фурье [3.1] приведет к сравнимым результатам. Воспользовавшись тем, что для некоторых полей ]= | —1 является ве- щественным, метод полиномиального преобразования для комплексных сверток можно реализовать, затрачивая два действительных умножения на комплексное умножение. Например, для случая полей полиномов по модулю Z’+l при четном 68
Таблица 3.8 Число вещественных операций для вещественных сверток при вычислении с помощью БПФ. (Алгоритм Рейдера — Бреннера, 2 вещественные свертки на ДПФ) Размеры массива Число умножений Число сложений Число умножении на отсчет Число сложений на отсчет 8X8(64) 160 928 2,50 14,50 16X16 (256) 1024 5120 4,00 20,00 32 x 32(1024) 5888 28672 5,75 28,00 64X64 (4096) 31 232 147 456 7,62 36,00 128X128 (16 384) 156 672 720 896 9,56 44,00 4 j = ZT/2. Таким образом, комплексная свертка T;(Z)+j Yi(Z), определенная по модулю Z’+l, вычисляется с помощью двух действительных сверток N-1 Q1 >г (Z) = Iя"» (Z) + Z*12 Нт (Z)] \Xl-m (Z) + + ZQ/2 (Z)] mod (Z« + 1) ; (3.68) Л--1 q2 ,(Z) = У \Hm (Z) — Z'</2 Hm (Z)J [XZ_m (Z) - m—0 — z^2 Xi-m (Z)] mod (Z« 4- 1) ; (3.69) rZ(Z) = [QIi/(Z) + Q2i(Z)],2; (3.70) Yt(Z) s-z’/2[p1>z(Z)— Q2 Z (Z)]/2 mod (Z? + 1). (3.71) При этих условиях для вычисления комплексных сверток с помощью по- линомиальных преобразований требуется вдвое больше арифметических опера- ций, чем для вещественных сверток. Относительная эффективность метода поли- номинального преобразования по сравнению с методом БПФ примерно такая же, как и при вычислении вещественных сверток. Необходимо также заметить, что, когда алгоритмы реализуются путем мик- ропрограммирования, может оказаться выгодным вычислять короткие полино- миальные произведения с помощью распределенной арифметики [3.16]. Для этого метода, который предполагает битовые операции над отдельными разря- дами чисел, число операций в алгоритмах полиномиального произведения резко уменьшается, чго существенно повышает, таким образом, эффективность метода полиномиальною преобразования за счет увеличения сложности программиро- вания. 3.3. Вычисление двумерных ДПФ с помощью полиномиальных преобразований Показано, что число арифметических операций, требуемых для вычисления Двумерных циклических сверток, существенно снижается при замене традици- онных методов, использующих ДПФ, полиномиальными преобразованиями. Час- тично экономия обусловлена тем, что короткие одномерные свертки и полпно- 69
миальные произведения вычисляются с помощью интерполяции более эффек тивно, чем методами ДПФ. Однако наиболее существенный фактор понижения сложности вычислительного процесса связан с эффективным отображением с по мощью полиномиальных преобразований двумерных последовательностей в од номерные. Покажем теперь, что эти методы можно распространить па вычисле пне ДПФ и что полиномиальные преобразования можно применить для преоб- разования двумерных ДПФ либо в одномерные ДПФ, либо в одномерные сверт ки и полиномиальные произведения [3.17]. На практике оба метода обеспечь вают существенное снижение числа арифметических операций и могут приме няться совместно для достижения оптимальной эффективности вычисления боль- ших ДПФ. 3.3.1. Алгоритм редуцированного ДПФ Рассмотрим двумерное АхА-точечное ДПФ _ .V-l А'—1 ^.^=2 2 xnitnW^^W^k\W.= ^(-j2n/Nf, П,=-0 п2=0 ^,й2 = 0, 1, ... ,А—1 ; ]=1/~. (3.721 Традиционный построчно-столбцовый метод [3.18] состоит в вычислении .V *,,А2как N одномерных ДПФ по индексу k2 и N одномерных ДПФ по индек су В этом методе Xk, ,k2 отображается в 2N A-точечных ДПФ. Если Mi- число комплексных умножений, требуемых для вычисления этого ДПФ. то общее число М умножений, соответствующих X k2,kz . есть M="2NMt. Когда Л1)<2Л, более эффективно вычислять Аа,,£2 с помощью гнездового алгоритма Винограда [3.1]. В этом случае Xk..ks вычисляется как A-точечное ДПФ, в котором каж- дый скаляр заменяется вектором из А точек и каждое умножение заменяется A-точечным ДПФ, так что М~Л12]. Чтобы вычислить Xk,.k2 с помощью полиномиальных преобразований, необ- ходимо сначала представить ДПФ в терминах алгебры полиномов. Это осу- ществляется заменой (3.72) на _ А-1 (Z)_- Xni(Z) Г"1*1 mod (Zv—1) ; (3.7.3, rij —О '4<Z)^S' ^.n2^,kt^o..............v-l; <3.741 П2 = 0 Afei> -A'fti(Z)mod (Z—U”4*2 = 0, ... ,A—1 • (3.75> В (3.75) X k,.k2 получено заменой Z на Wh2 в (3.74). Таким образом, (3.73)- - (3.75) эквивалентны (3.72). Заметим, что на этом шаге нет необходимости за- давать Xk (Z) по модулю ZN—1, хотя такое задание справедливо, поскольку ^ = ^<=1. Предположим теперь, что A-простое. Тогда Zv—1 разлагается в произведе- ние двух циклотомических полиномов: ZN — 1 = (Z — 1) Р (Z), (3.76) Р (Z) =ZN~l + ZN~2 + ... + 1 . (3.77 у 70
При &2=0, что соответствует Zsl, Xk . 0 представляет собой простое jV-точечное ДПФ _ N—1 , Л'-l \ 2 *1 = °...Al—1. (3.78) п2=0 \п2=0 / При /г2^0 Wk2 всегда является корнем полинома P(Z): N-l P(Z) = П (Z-Wk4. (3.79) *2=1 Поскольку (Z—W^a) — множитель P(Z), a P(Z) — множитель (ZN— 1), можно определить по модулю P(Z) вместо (ZN—1) и (3.73)—(3.75) сводятся к _ N-1 Xi „ (Z) = 2 xi п (Z)Wn^ mod P(Z), 61==0.........../V — 1; (3.80) 1 п,=0 ’ ' У—2 *1.^=2 Uni.n2-4. W_i)Zn’ = XnimodP(Z); (3.81) n2=0 4^*1. hl (Z)mod;(Z— *2=1......N— 1. (3.82) Если .V простое и /?2=#0, то перестановка kik2 по модулю X отображает все значения ki. Таким образом, порядок следования индексов kt можно изме- нить посредством умножения их на /г2, что приведет к _ Л'-1 Х1 п (Z)Wn^ mod P(Z), n, = 0 kt=0,...,X— 1; (3.83) mod (Z-W^-), k2 = 1,... ,.¥ — 1. (3.84) Поскольку Xkik2,k2 определен по модулю (Z—lE'h), Wk> = Z. Подстановка Z вместо 1ЕЛз в (3.83) дает _ 7V-I Xi kiki(Z)= 2 xi n, (2) Z"*fc* mod P (Z), fe1 = 0,...,¥— 1, (3.85) n,=0 где правая часть равенства не зависит от k2, X 2,k2k2(Z) —полиномиальное пре- образование последовательности длиной ¥, которое вычисляется без умножений с помощью только №—№—3.V+4 операций сложения. При этих условиях единственными умножениями, требуемыми для вычисления (ХхХ)-точечного ДПФ, являются те, которые соответствуют (3.84) и заданному (3.78) Л;-точеч- ному ДПФ. Покажем теперь, что вычисление (3.84) эквивалентно вычислению X ди- скретных преобразований Фурье последовательности длиной Л', в которой по- следний входной отсчет равен 0, а первый выходной отсчет не вычисляется. Это можно видеть из того, что выходные отсчеты Zi,*1*2(Z) полиномиального преобразования (3.85) представляют собой X полиномов по X—1 членов. Пола- гая, что эти полиномы заданы выражением _ Л'-2 Xi, *,MZ) = 2 ykl.lZl, (3.86) 1=0 71
Рис. 3.6. Вычисление (NXN) -точечного ДПФ с помощью полиномиальных пре- образований, .V—простое. Алгоритм редуцированного ДПФ и подставляя их в (3.84), получим _ Д'—2 *2=1.......Л'—1. (3.87) /=о Таким образом, для простого .V (WX-V)-точечное ДПФ отображается с по- мощью полиномиальных преобразований в Л'+l А-точечных ДПФ вместо 2.V Л’-точечных ДПФ для построчно-столбцового метода вычислений. Схема вычис- лений по этому методу полиномиального преобразования показана на рис. 3.6. Воспользовавшись тем, что в N ДПФ, определенных (3.87), последний вход- ной член равен нулю, а первый выходной член не вычисляется, можно получить небольшое дополнительное сокращение числа умножений. Это можно реализо- К—1 вать, если заметить, что, поскольку 2 Wh:'~ — 1 при #2¥=0 и простом .V. т' /= i (3.87) можно переписать как (.3.88) г=1 где Ук,, I ~ (Ukt, I ~~ Ук,. о); ykt.N— 1 ’ ~~Ук1. О’> 2. (3.89) Тогда редуцированные ДПФ (3.88) можно вычислить как (.V—1)-точечные корреляции, используя алгоритм Рейдера [3.19]. Действительно, если g— при- митивный корень по модулю N [3.7], то l=gu mod N, £2=g°modA. (3.90) 72
в этом случае редуцированное ДПФ (3.88) превращается в корреляцию N—2 ' (3-91) Подстановка последовательности у1^ /,в ук,1 эквивалентна умножению X ktk2 (Z) на Z-'mod(Z-v—1) с последующим приведением по модулю P(Z) и умножением на Z. На практике умножение на Z-1 можно объединить с упоря- дочением входных полиномов. Тогда приведение по модулю P(Z) выполняется без сложений, как часть вычисления полиномиального преобразования. Предположим, что A-точечное ДПФ вычисляется за комплексных ум- ножений с помощью алгоритмов коротких корреляций, например, таких, как ал- горитм Винограда преобразования Фурье. Тогда соответствующие корреляции потребуют Л11—1 комплексных умножений, а общее число М умножений, не- обходимых для вычисления (Ах-V)-точечного ДПФ с помощью полиномиаль- ных преобразований, понизится до M=(N+l)Ml—N. (3.92) Это составляет примерно половину того, что необходимо для построчно-столбцо- вого метода вычислений (2ЛГЛТ1 умножений) и всегда, за исключением ниже соответствующего числа умножений для гнездового алгоритма Винограда (АРд). Более того, когда ДПФ и редуцированные A-точечные ДПФ вычисляют- ся с помощью алгоритмов коротких корреляций, все комплексные умножения сводятся к умножениям на чисто вещественные или чисто мнимые числа и мо- гут выполняться только за 2 вещественных умножения. Аналогичный метод полиномиального преобразования для вычисления ДПФ можно так же просто определить и для составного -V. Условия выполнения полиномиального преобразования без умножений устанавливаются с помощью метода, очень похожего на тот, который использовался в подразд. 3.2.1 для двумерных сверток (табл. 3.9). Особенно интересен случай (Л-’х А)-точечного ДПФ при А = 2(. Эти ДПФ вычисляются, как показано на рис. 3.7, посред- ством одного 2'-точечного полиномиального преобразования по модулю Pi+i(Z) =Z2f—1 + l, одного 2!-1-точечного полиномиального преобразования по модулю P«+i(Z), 2‘+2>~' 2‘-точечных редуцированных ДПФ, половина входных и выходных членов которых равна нулю, и одного (А/2ХА/2)-точечного ДПФ, которое, в свою очередь, можно вычислить аналогичным образом. Для случая N=2‘ наиболее интересно то, что полиномиальные преобразования вычисляют- ся с помощью алгоритма типа БПФ, так что все вычисления организуются спо- собом, очень похожим на традиционное вычисление БПФ. Более того, редуцированные A-точечные ДПФ можно тогда рассматривать как обычные (А/2)-точечные ДПФ, в которых входная последовательность ум- ножается поточечно на последовательность 4, W, И72, и поэтому они идентичны редуцированным ДПФ, появляющимся на первом шаге прореживания по часто- те в алгоритме БПФ с основанием 2. Точнее, редуцированное A-точечное ДПФ, А=2‘, задается следующим образом: _ ЛГ/2-1 Л'(2с+1)^ 20+1= S yki , ц = 0,...,А/2—1. (3.93) /=0 В этом редуцированном ДПФ умножения па W1 обычно являются комплекс- ными. Однако, используя алгоритм Рейдера — Бреннера [3.15] пли один из его производных, эти умножения можно преобразовать в умножения чисто вещест- 73
Таблица 3.9 Вычисление двумерных ДПФ с помощью полиномиальных преобразований. Алгоритм редуцированного ДПФ Размеры массива Полиномиальные преобразования Число сложений для поли- номиальных преобразований и приведений Дискретные преобразования Фурье н редуцированные ДПФ N — простое А-точечное полиномиальное пре образование по модулю (Zw—1 )/(Z—1) № + дг2_5#+4 A-точечное ДПФ, А редуцирован- ных АЛ точечных ДПФ [2V (N—1)-точечных корреляций] N = q\ q— простое </2-точечпое полиномиальное пре- образование по модулю (Z'«2—1)/(Z''—1) «/-точечное полиномиальное преоб- разование по модулю (Z"2-1)/(Z"-1) 2q5 + qi—5</3 + </2 + 6 («/2 + </) редуцированных ^-точеч- ных ДПФ q редуцированных «/-точечных ДПФ [q (q— 1) -точечных корреля- ций] «/-точечное ДПФ А=2‘ 2'точечиое полиномиальное пре- образование по модулю (Za<-> + 1) 2'-'-точечное полиномиальное преобразование по модулю (22t-l (3/ + 5)22(,“'> 3,2'' редуцированных А-точеч- ных ДПФ (А/2ХА/2)-точечное ДПФ .V —«/i«/2, «/««/2 — простые (/1^2-точечпое полиномиальное пре- образование q2 (^-точечных полиномиальных преобразований (/1 (^-точечных полиномиальных преобразований q2iq2<(qt + qz + 2)- - —5</i«/2(t/i + «/2) + + 4(<72i + ?22) (qiqz+qi+qz) редуцированных </1«/2-точечных ДПФ «/1 редуцированных «/«-точечных ДПФ q2 редуцированных ?2-точечных ДПФ </1</2-точечное ДПФ
^Н,.кг Рис. 3.7. Вычисление (2‘Х2)‘-точечного ДПФ с помощью полиномиальных пре- образований. Алгоритм редуцированного ДПФ вениых или чисто мнимых чисел. Это осуществляется заменой входной после- 1 довательности yk г последовательностью ук ; , определяемой как (<.о=О, <„/4 = 0, I Укг,1 = Уk., I /2 cos (2jt//A) - /¥=0, jV/4. Тогда (JV/2)-точечное ДПФ 2и4-1 от ^*1,1 вычисляется при _ ;V/2-l )kt, 21-4-1 ~ 2 (3.95) 1=0 _ Поскольку ^+И72(»+1)‘ = W‘W2°l(W‘+ W~‘) = 2UW21’'cos(2n//A), ^(2»+!)^, 204-1 вычисляются посредством простых сложений: ^(20-1-1)*,. 2е+1 = ^(2и-н >fet, 2е+1 + ^(204-3)*,, 2о-|-3 + е0 ’ ° Четное; ^(24+1)^, 2г+1 = ^(24+1)^, 2^+1 +*(2v+3)*., гг+з+'Т- « — нечетное, (3,96) где e!)=yh^ 0 y/4; pj = yk^ 0 -f- jyki N/i . 75
Таблица 3.10. Число вещественных операций для коротких и редуцированных ДПФ Длина после- довательно- сти Число умножений Число сложений 2 4(4) 4 ДПФ 3 6(2) 12 4 8(8) 16 5 12(2) 34 7 18(2) 72 8 16(12) 52 9 22(2) 88 16 36(16) 148 32 104(36) 424 64 272(76) 1104 128 672(156) 2720 256 1600(316) 6464 512 3712(636) 14 976 1024 8448(1276) 34 048 3 4(0) 8 Редуцированные ДПФ, вычис- 5 Ю(0) 30 ляемые как корреляции 7 16(0) 68 4 4(4) 4 Редуцированные ДПФ 8 8(4) 20 9 16(0) 56 16 20(4) 64 32 68(20) 212 64 168(40) 552 128 400(80) 1360 256 928(160) 3232 512 2112(320) 7488 1024 4736(640) 17 024 П р и м е ч а н и е. В скобках указаны тривнальнь е операции умножения иа =1, ±j При использовании этого метода редуцированное ДПФ, определенное в (3.93), вычисляется за Afi + Л'—4 вещественных умножений и вещест- венных сложений, где Mi и At— число умножений и число сложений, требуе- мых для вычисления (1V/2)-точечных ДПФ. В разд. 3.6 приведены различные алгоритмы коротких редуцированных ДПФ, а в табл. 3.10 собраны данные о числе вещественных операций для на- иболее часто употребляемых алгоритмов. На основании этих данных и алго- ритмов коротких ДПФ, предназначенных для использования в алгоритмах Ви- нограда преобразования Фурье [3.1, 3.2] и Рейдера — Бреннера, в табл. 3.11 показано число вещественных операций для различных двумерных ДПФ. Подробное сравнение с обычными вычислительными методами будет дано в подразд. 3.3.3, но пока можно заметить, что число умножений равно пример- но половине того числа, которое соответствует традиционному вычислению БПФ с помощью алгоритма Рейдера — Бреннера, а число сложений незначительно уменьшается. Число операций также меньше, чем в обычных алгоритмах Вино- града преобразования Фурье. 76
Таблица 3.15 Число вещественных операций для комплексных двумерных ДПФ, вычисляемых с помощью полиномиальных преобразований по алгоритму редуцированного ДПФ Размеры массива Число умножений Число сложений Число умножений на отсчет Число сложений на отсчет 2X2 0 16 0 4,00 зхз 16 86 1,78 9,56 4X4 0 128 0 8,00 5X5 60 442 2,40 17,68 7X7 128 1270 2,61 25,92 8X8 48 816 0,75 12,75 9X9 208 1570 2,57 19,38 16X16 432 4528 1,69 17,69 32X32 2736 24 944 2,67 24,36 64X64 15 024 125 040 3,67 30,53 128X128 76 464 599 152 4,67 36,57 256 x 256 371 376 2 790512 5,67 42,58 512x512 1 747 632 12 735 600 6,67 48,58 1024ХЮ24 8 039 088 57 234 544 7,67 54,58 Примечав и с. Тривиальные умножения на ±1, ±j не учитываются. 3.3.2. Гнездовые алгоритмы и алгоритмы простых множителей Метод полиномиального преобразования, рассмотренный в предыдущем раз- деле, позволяет вычислять большие двумерные (NxN)-точечные ДПФ при усло- вии, что имеются алгоритмы больших редуцированных ДПФ. Для Л'=2( эти алгоритмы редуцированных ДПФ строятся достаточно просто с помощью мето- да Рейдера—Бреннера. Когда JV-составное и не является степенью 2, алгорит- мы больших редуцированных ДПФ можно построить путем вложения алгорит- мов коротких редуцированных ДПФ. Однако при составном .V часто гораздо удобнее конструировать большие преобразования, используя небольшой набор коротких преобразований в гнездовых алгоритмах [3.1] или алгоритме простых множителей [3.20, 3.21]. Эти методы особенно удобны, когда ДПФ имеет в обеих размерностях взаимно-простые множители. В последующем ог- раничимся рассмотрением (Л^Л^ХЛ^Л^)-точечных преобразований Фурье, где и N2— взаимно-простые, поскольку при более чем двух взаимно-простых множителях большие ДПФ можно вычислять рекурсивно, следуя алгоритму для двух множителей. В гнездовых алгоритмах двумерное (NtN2xNiN2)-точечное ДПФ сначала превращается в четырехмерное [(A^xA/j) X (Л^ХЛУ]-точечное путем простой индексации, на основе китайской теоремы об остатках, что аналогично методу, описанному в подразд. 3.2.5 для двумерных сверток. Четырехмерное ДПФ, в свою очередь, вычисляется по методу вложения Винограда [3.1] с помощью по- линомиальных преобразований для (Л^ хЛ^)-точечного ДПФ, в котором каж- дый скаляр заменяется массивом N2xN2 и каждое умножение заменяется (Л^ХЛ'г)-точечным ДПФ. Таким образом, если Mt, М2, М и Ait А2, А—соответ- 77
ственно число комплексных умножений и сложений, требуемых для оценк i (ViXA^i)-, (Af2XA’2)- и (У^2ХЛ,1У2)-точечных ДПФ, то М = МгМ2, А^Ы^А^М^. (3.97) (3.98) Четырехмерное [(A'iXA't) X (Л'2хЛг2)]-точечное ДПФ можно также выпол- нить с помощью алгоритма простых мнЪжителей или построчно-столбцового ме- тода как №| (jV2X'\2)-точечных ДПФ и №2 (Л^хЛ/О-точечных ДПФ. В этом случае число операций становится равным М = №jM2 + №2Мг , (3.99) А == + Л'Мт • (3.100) Поскольку М|^№1, Л12^№2, то метод вложения всегда требует больше сложений, чем алгоритм простых множителей. Однако, если М1 и М2 не на- много больше №i и Л22, что характерно для случая относительно коротких ДПФ, метод вложения требует меньше умножений, чем алгоритм простых мно- жителей. При этом число сложений возрастает незначительно. Таким образом, гнездовой алгоритм больше пригоден для ДПФ массивов средних размеров, в то время как метод простых множителей — для ДПФ больших массивов. Вычислительную эффективность этих алгоритмов можно улучшить, приме- няя метод вложения [3.17]. При этом, если воспользоваться способом, анало- гичным описанному в подразд. 3.2.5 для сверток, понижается число сложений. Для алгоритма простых множителей использование метода вложения уменьша- ет число умножений. Для упрощения обозначений опишем этот последний ал- горитм для (NiXN2)-точечной ДПФ, результаты которого легко обобщить на [(NlXNi)x(Ni’XN2)]-точечное ДПФ посредством замены скаляров векторами, состоящими из Ni и .V2 элементов соответственно. В последующем будем пред- полагать, что и N2 — простые. (A'iX<V2)-точечное ДПФ Xk задано следу- ющим образом: _ Л/,-1 Л?2-1 Xkt,k,= S wnilhi S хП1,п^' (3.101) Fx = exp (— j2n Wj); F2 = exp (— j2n;.V2); *1=0.......jV1—1; 62 = 0,... , 1V2—1. Используя алгоритм Рейдера [3.19], это ДПФ можно найти как одно .Vi-точечное ДПФ, одну (Ni— 1)Х(Л/2—1)-точечную и одну (Л'2—1)-точечную корреляцию _ Nt-l /Nt-l \ 4.0=3 S ^ = °..... Л'!—1; nx=0 \п2=0 / _ л^-ггл^-! *о,= 11 xnito) u2—0 [гцяО (3.102) (3.103) Л'г-2 Nt-2 = S s (- xn“~ •0 -x 0. + *0.0) wT > u2—0 Ui^=0 (3.104) 78
ГДй h и g — примитивные корни по модулю Лц и Л'2 и =/г®1 mod Л\; n1 = hU1 modA^; ult о1 = 0,..., Л\— 2; (3.105) Л2 = g°* mod A72 J «2 = g“2 mod jV2! “2> v2 = 0>---> N2 — 2. (3.106) Двумерная корреляция (3.104) является полуразделимой и поэтому может быть вычислена как Ад—1 (JVi—I)-точечных корреляций плюс АЛ—1 (Ад—1)- точечных корреляций. При этих условиях, если и М2~ число умножений, со- ответствующих У1- и Лг2-точечным ДПФ, общее число умножений снижается до —Л7,—Аг2+1 вместо A/iAf24-V2Mi Для обычного алгоритма простых множителей. Таким образом, метод вложения сберегает AZt+A^—1 умножений. Большей экономии можно достичь, преобразуя корреляции в циклотомические полиномы. 3.3.3. Вычисление преобразования Фурье методом Винограда с помощью полиномиальных преобразований В подразд. 3.3.1 обсуждался эффективный метод вычисления ДПФ с по- мощью полиномиальных преобразований. Этот метод редуцированного ДПФ применим главным образом к многомерным ДПФ, когда имеется общий множи- тель в двух или более измерениях, и основан на отображении многомерных ДПФ в одномерные и редуцированные ДПФ с помощью полиномиальных пре- образований. В этом разделе предлагается другой метод вычисления ДПФ с помощью полиномиальных преобразований [3.1, 3.17]. Покажем, что если ДПФ вычислять с помощью алгоритма Винограда, полиномиальные преобразования можно использовать для отображения ДПФ в одномерные свертки и полиноми- альные произведения. По сравнению с алгоритмом Винограда эти полиномиаль- ные преобразования позволяют получить значительную экономию вычислений. В данном методе ДПФ сначала преобразуется в многомерные корреляции с помощью алгоритма Винограда [3.1, 3.21]. Для Лг,XЛ'2-точечного ДПФ такое преобразование выполняется путем вычисления Л^-точечного ДПФ, в котором каждый скаляр заменяется Л2-точечным ДПФ. Если Лгг и Л^-точечные ДПФ вы- числяются как корреляции, в соответствии с алгоритмом Рейдера, эту вычисли- тельную процедуру можно рассматривать как преобразование ДПФ (А^ХА'г)- точечного ДПФ в одномерные ДПФ и корреляции и двумерные корреляции. Например, для простого случая, соответствующего простым Ад и Л'2, (Л^хА’г)- точечное ДПФ вычисляется, как следует из (3.102) — (3.104), посредством од- ного Л^-точечного ДПФ, одной (Лг2—1)- и одной (Л^—1) X (Лт2—1)-точечных кор- реляций. Такой же метод используется для вычисления одномерного Л'|Л’2-точеч- ного ДПФ, если А^ л ,V2 — взаимно-простые, поскольку это ДПФ можно превра- тить в двумерное (АдХА'г)-точечное ДПФ простой переиндексацпей с помощью алгоритма Гуда [3.20]. Если Лг имеет более двух множителей, тот же метод можно применить рекурсивно. В этом случае ДПФ превращается в многомер- ные корреляции. В обычном алгоритме Винограда многомерные корреляции вычисляются простым вложением коротких одномерных корреляций, что эквивалентно вычис- лению корреляций с помощью алгоритма Агарвала — Кули '[3.2]. Однако в разд. 3.2 было показано, что многомерные корреляции вычисляются более эф- фективно с помощью полиномиальных преобразований, чем методом Агарва- ла— Кули, если коррелируемые массивы имеют общие множители в нескольких 79
Рис. 3.8. Вычисление (7X7) -точечного ДПФ с помощью алгоритма Винограда И полиномиальных преобразований размерностях. Таким образом, вычисление многомерных сверток с помощью по- линомиальных преобразований снижает число сложений и умножений в алгорит- ме Винограда преобразования Фурье. Этот метод иллюстрируется па рис. 3.8 для (7X7)-точечного ДПФ. Так как 7-точечное ДПФ вычисляется посредством одного умножения и одной 6-точечной корреляции, то (7X7)-точечное ДПФ отображается в одно 7-точечное ДПФ. одну 6-точечную корреляцию и одну (бхб)-точечную корреляцию. Поэтому, ес- ли используется алгоритм, требующий 8 комплексных умножений для 6-точечной корреляции, то (7х7)-точечное ДПФ вычисляется в соответствии с обычным алгоритмом Винограда за 8J комплексное умножение. Вычисление (бХб)-точеч- 80
ЯОЙ корреляции с помощью полиномиальных преобразований требует только 52 умножения вместо 64 для обычного метода вложения. Поэтому, если метод пол|номиального преобразования сочетать с алгоритмом Винограда, число комп- лексных умножений, требуемых для вычисления (7Х7)-точечного ДПФ, снижа- ется с 81 до 69. Необходимо заметить, однако, что первый метод полиномиаль- ного преобразования, который базируется на редуцированных ДПФ, потребовал бы в\ этом случае только 65 комплексных умножений. Фактически такой резуль- тат носит достаточно общий характер, и первый метод полиномиального преоб- разования, оперирующий с большими полями, где бы он ни использовался, обыч- но предпочтительнее. Наиболее интересным применением второго полиномиального преобразова- ния, базирующегося на полях меньшей протяженности, является вычисление ДПФ, для которого первый метод неприменим. Это относится к случаям дву- мерных ДПФ, когда обе размерности не содержат общих множителей, в то вре- мя как при соответствующей двумерной корреляции общие множители для обе- их размерностей имеются. Например, (7x9)-точечное ДПФ нельзя вычислить эффективно первым методом, так как 7 и 9 не имеют общих множителей. При использовании алгоритма Винограда это ДПФ вычисляется методом вложения 7- и 9-точечных ДПФ. При использовании алгоритма Рейдера 7-точечное ДПФ превращается в одно умножение и одну 6-точечную корреляцию, а 9-точечное ДПФ — в 5 умножений и одну 6-точечную корреляцию. Таким образом, (7X9)- точечное ДПФ вычисляется посредством пяти 7-точечных ДПФ, одной 6- и од- ной (6X6)-точечных корреляций. Использование полиномиальных преобразова- ний для вычисления (6X6)-точечной корреляции порождает алгоритм, требую- щий только 174 действительных умножений вместо 198 для обычного алгорит- ма Винограда. Чтобы достичь максимальной эффективности при вычислении больших мно- гомерных ДПФ, целесообразно сочетать оба метода полиномиальных преобра- зований. Если это сделать, например, при (63X63)-точечном ДПФ, то ДПФ вычисляется методом вложения (7X7)- и (9x9)-точечных ДПФ с помощью пер- вого метода полиномиального преобразования, который отображает (7X7)-то- чечное ДПФ за одно умножение плюс 8 6-точечных корреляций, а (9X9)-то- чечное ДПФ — за 33 умножения плюс 12 6-точечных корреляций. Таким обра- зом, (63x63)-точечное ДПФ вычисляется за 33 умножения, 276 6-точечных кор- реляций и 96 (6X6)-точечных корреляций. Если (бхб)-точечные корреляции вы- числяются с помощью полиномиальных преобразований, (63X63)-точечное ДПФ вычисляется за 11 344 действительных умножений вместо 13 650 умножений только для первого метода и 19 602 умножений для традиционного алгоритма Винограда. Необходимо заметить, что при совместном применении двух мето- дов полиномиального преобразования число сложений также уменьшается по сравнению с применением только первого метода. В табл. 3.12 дано число вещественных операций для комплексных двумер- ных ДПФ, вычисляемых с помощью двух методов полиномиального преобразо- вания. Можно видеть, что даже для преобразований массивов больших размер- ностей число умножений и сложений может быть очень небольшим [например, (1008X1008) -точечное ДПФ вычисляется посредством 3,39 действительных ум- ножений на отсчет или около одного комплексного умножения на отсчет]. На практике экономия вычислений, полученная с помощью двух методов полиномиальною преобразования, может быть весьма значительной, что видно 81
Таблица 3.12 Число вещественных операций для комплексных двумерных ДПФ, вычисляемых с помощью комбинации двух методов полиномиального преобразования и метода послойного вложения Размеры массива Число умножений Число сложений Число умножений на отсчет Число сложений на отсчет 63x63 И 344 193 480 2,86 48,75 80x80 16 944 231 344 2,65 36,15 120X120 35 632 553 392 2,47 38,43 240X240 153 904 2542 896 2,67 44,15 504x504 726 064 15 621 424 2,86 61,50 1008X1008 3 449 024 71 455 456 3,39 70,33 при сравнении данных табл. 3.11 и 3.12 с данными табл. 3.13. Последние со- ответствуют двумерным ДПФ, вычисляемым с помощью алгоритма БПФ Рей- дера— Бреннера и построчно — столбцового метода. При использовании только первого метода полиномиального преобразования число сложений всегда мень- ше, чем при использовании алгоритма БПФ, а число умножений для ДПФ массивов больших размерностей уменьшается примерно в два раза. При объ- единении двух методов полиномиального преобразования число сложений оста- ется таким же, как у алгоритма БПФ, а число умножений уменьшается при мерно в четыре раза для ДПФ массивов больших размерностей. Метод полино- миального преобразования также значительно эффективнее, чем алгоритм Вино- града преобразования Фурье. Это можно видеть из того, что (1008 Х'1008)-то- чечное ДПФ, вычисляемое по этому алгоритму, требует 6,25 умножений и 91,61 сложений на отсчет, тогда как первый метод полиномиального преобразования требует 7,67 умножений и 54,58 сложений на отсчет для (1024 X1024)-точечно- го ДПФ, а сочетание двух методов полиномиального преобразования порож- дает алгоритм только с 3,39 умножениями и 70,33 сложениями на отсчет для (1008X1008)-точечного ДПФ. Таблица 3.1 :- Число вещественных операций для комплексных двумерных ДПФ, вычисляемых по алгоритму БПФ Рейдера — Бреннера и построчно-столбцовому методу Размеры массива Число у мпо/кенпй Число сложений Число умножений на отсчет Число сложений на отсчет 8X8 64 832 1,00 13,00 16x16 640 4736 2,50 18,50 32X32 4352 27136 4,25 26,50 64X64 25 088 141 312 6,12 34,50 128X128 132 096 696 320 8,06 42,50 256 X 256 657 408 3 309 568 10,03 50,50 512x512 3 149 824 15 335 424 12,02 58,50 1024X1024 14 688 256 69 730 304 14,01 66,50 82
3.3i4. Связь между полиномиальными преобразованиями и ДПФ Из (3.28) -- (3.31) следует, что существование .iV-точечного полиномиально- го преобразования, обладающего свойством циклической свертки, зависит толь- ко от'существования корня Л’-й степени из единицы и элемента Л'-1 в поле ко- эффициентов, Эти условия являются общими для всех Л/-точечных преобразова- ний, обладающих свойством циклической свертки [3.22], и Л/-точечное полино- миальное преобразование, имеющее корень Z и определенное по модулю P(Z), можно рассматривать как ДПФ, определенное в кольце полиномов по модулю P(Z). Это свойство аналогично теоретико-числовым преобразованиям, которые можно рассматривать как ДПФ, определенные на кольце целых чисел. Факти- чески ТЧП являются частными случаями полиномиальных преобразований, в ко- торых .iV-битовые элементы должны рассматриваться как полиномы. В наиболь- шей степени это очевидно для 2‘+1-точечиого полиномиального преобразования, определенного по модулю Z2< + 1. Такое преобразование вычисляет 2,+1-точечную циклическую свертку с помощью полиномов по 2( членов. Если 2,+1 входных полиномов определены как элементы по 2‘ бит, то полиномиальное преобразо- вание сводится к преобразованию последовательности длиной 2/+l по числам Ферма, с корнем 2 и определенному по модулю 22,+ 1. Поскольку полиномиальные преобразования являются ДПФ, определенными на кольцах полиномов, они по существу эквивалентны многомерным ДПФ и по- этому применяются преимущественно для решения многомерных задач. Их глав- ное достоинство по сравнению с ДПФ и ТЧП обусловлено тем, что они систе- матически используют удобство операций на кольце полиномов для определения простых корней из единицы, что позволяет обойтись без умножений при вычис- лении преобразования. Для некоторых приложений, таких, как вычисление (NxN) -точечных сверток, полиномиальные преобразования оптимальны в том смысле, что могут порождать алгоритмы с таким числом общих умножений, ко- торое нельзя больше уменьшить чисто алгебраическими методами. 3.4. Заключительные замечания Полиномиальные преобразования обеспечивают эффективные средства ото- бражения двумерных сверток и ДПФ в одномерные свертки и ДПФ. Эти пре- образования представляют особый интерес, когда преобразуемые последователь- ности имеют общий множитель в обоих измерениях. В этих случаях полиноми- альные преобразования обеспечивают существенную экономию в числе арифме- тических операций по сравнению с более традиционными вычислительными ме- тодами. При вычислении с помощью полиномиальных преобразований двумерные свертки и ДПФ преобразуются в одномерные свертки и ДПФ, которые, в свою очередь, можно вычислить с помощью различных методов, таких, как БПФ, ТЧП, алгоритмы распределенной арифметики или короткой свертки. Тем самым порождается большое разнообразие алгоритмов, среди которых всегда можно найти компромисс между числом умножений и сложений, чтобы использовать их п конкретных приложениях. По-видимому, наиболее интересны те полиномиальные преобразования, раз- мерность которых равна степени 2. Эти преобразования имеют структуру, по- 83
добную БПФ, и поэтому могут программироваться аналогичным образом. Ком- бинируя эти преобразования с традиционными алгоритмами БПФ для вычисле- ния одномерных сверток, полиномиальных произведений и ДПФ, можно полу- чить двумерные алгоритмы, которые основаны на простоте метода БПФ и обес- печивают возможность существенного уменьшения числа операций. 3.5. Приложение. Алгоритмы коротких полиномиальных произведений Ниже приведены алгоритмы коротких полиномиальных произведений, пре i- назначенные для минимизации числа умножений при сохранении разумно не- большого числа сложений. Здесь {%„}, {hi} — входные последовательности, {/;,} предполагается заданной и выражения, включающие {hi}, вычисляются и запо- минаются заранее; {i/m}—выходная последовательность. Выражения в скобках обозначают группировку сложений. Входные и выходные сложения должны вы- полняться в заданной индексно-числовой последовательности. 3.5.1. Полиномиальное произведение по модулю (Z2 + l) 3.5.2. 3 умножения, 3 сложения йо = Хо + Х1 bo = ha ai = xt bi = ho^-ht 112 — Хц b> = hi—hr, mit^-ai,bh, k = 0, 2 ija = ma—mi yi = ma + m2 Полиномиальное произведение по модулю (Z3—1)/(Z—1) 3.5.3. 3 умножения, 3 сложения ba=h0-- hl ih—xo—xi bi=ha «2=Л'О b-2 = hl mh = akbh, k = 0, 1, 2 yo=mo-i-ini yi = m0 + m2 Полиномиальное произведение по модулю (Z‘4-1) 9 умножений, 15 сложений ЙО —.V1+.V3 bo — ho /1з fli= (л'о+х2) — (х1+х3) bl = ht> «2=(х0 + х2) b2=h0 + hi a3=xs 5з=йо+йг+А1—йз at=x2—x3 64=ho4-/i2 Os=X2 Й5 — ho~r h2-\-hi~\~ h$ (iis—Xi be — —/10 4-йг 4“ hi 4-/13 o7=xo—xi bT=—ho+h2 aa=xi) ba ——ho-t-fiz—hi+h3 84
т11=акЬк, k=0, .... 8 yo= (mo + mt) — (m3+mi) yi= (m2—mi) + (m4—m5) 1/2= (mo + mi) — (т6 + т7) ys = (ms—mi) + (m8—m7) 3,5.4. Полиномиальное произведение по модулю (Z5—1)/(Z—1) 9 умножений, 16 сложений Qq — Xq ai = Xi a2 — x0—Xi a3—X2 аь=х3 а5 = х2—Хз аб=х0—х2 a7—xi—х3 £18 = ’—£16 + а7 b3 = ho bi —hi y^—hn+hi b3=h2 bi=h3 b3 = —h,2+h3 be=h2—ho b7—h3—hi bo = bs—b7 mk=akbk, k=0, .... 8 uo = m3—m7 yo = uo—ini + m3 Ui — tii—m3—m7 Ui = m3 + mo У2=и3—ть + то y3=Ui + m3+me+mo 3.5.5. Полиномиальное произведение по модую (Z9—1)/(Z3—1) 15 умножений, 39 сложений ао=хо+Х2 <21 =Хз4~Х5 as — ai+xi a3 = a0+xi Cli — £1з—£1з £15 = £11— Xi —xi а7 = а6—£15 аз=х3 а0=х0—хз аю=Хо ац = х5 ai2=x2—X5 ai3=x2 ац — —Щг+хо—xt ais=aa + x3—xi Qi6 = —flis + flii b3— (ho -f- 3/ii+2/i2—2/13—З/14—h3)/Q b3— (ho—h3-[-h3-[-3hi-\-2h3) /Q bi — bo + bo b3= (—fto + ^i'—h^-yho) /2 b«= (ho—112—110+^)12 b7 — bo + bo bs = 2ho+h (—h3—2ft 3+Л5 bg=2ho—ho+hi bio^bo—bs b 11 — ho—hi—2ft 2+/14 bi2=— hi + h3—2ho bi3 = bi2—bn bn=(h0—hs—2ft3+2ft5)/3 bi5= (—ho + h3—h3+h5)l3 bio = bi3—Ьц mk = ak+2bk+2, ft=0, 14 Uo = mo+mi Ui = m3+nii, U2 — mi3 + mn, a3 — Uo+ Ui U4=mo+m2 ио — тз+то Uo=miz+mu u7 = —u3+me Ug^Ui + Ut u9 = mo—u& уо = т7+и2+и7 yi — uo + mio+uo yz = Ui—u5 + u2 y3 = u7 +us + ms + uo yt — Uo + mn + Uo + Uo yo = Uo—Ui + ue 85
3.5.6. Полиномиальное произведение по модулю (Z7—1)/(Z—1) 15 умножений, 53 сложения Оо = Хо + Х2 Oi = Oo + xt 02 = Oi + X2 О3 = Х3+Х5 О4 = 03 + Х4 О5=04 + Х5 Og =Хо 07 = 0] а8 = о0—Xi аэ — ач+аг—х0 Л10=*!1 Оц=х3 £212 = 04 013 = 03-Х4 014 = 05 + 03-Х3 015 =Хй О1б = Ои--Об 017 = 012-07 018 = 013-08 019 — Иц--О9 020 = 015-Ою Ьо = (—2/15 + ЗА4——2/i2 +/к + 2Ло) /2 ь} = (3/15—11Л4 + ЮЛз 4- 3^2— Г1 At— 4Л0) Д14 ^2 = (3/^5-/14-2/^3“Ь 3^2-А1)/б &3 = (й 4-Йз + /11)/6 = —/15—2/?4 + 3/i3—/i2—2/ц + ho b5 = (h$+2hi—h3—2Л2+ЗЛ1—Ло)/2 b6=(—11Й5—4Л4Ч- ЮЛ3 + ЗА2— 11A14- 10Ло)/14 Z>7= (—h3—2/i3+3/i2—hf—2/zo) /6 bs= (/*5—/13 + Л1—/lo)/6 Ьэ~ —2/15 + /14 + 2/i3—h-z—2h 1 + 3/i 0 b 10 = (2Й4—h3—2h-2.-\-hi) /2 &и=(—2/i5—2й4+12/г3 + 5/г2—9/h—2/i0)/14 Ь12 = (--2Л3+ЗЛ2-/ll) /6 &13=(-Л3+Л1)/6 Ли = 2h3—Л 2—2Л1 + ho m^—ak+obk, k=,0. 14 U0 = »l5 + »Je 012 = 0о + 0ц Ui = m6 + /7Zt 013 —O10 + O3 w2 = m7 + m2 014 = 013—O2 U.i = /»8 + ff!3 015 = 01з4-03 + 03 + 04"}-02 U4 = /ne + Z7(4 U 16 — 012—015 0[4 «5 = m<o + »!o 0(7 = U1—U& u6=ffln + ml Ot8 = Os+Oi7 + O7 «7 = 0(9 = 017 — Об—Og Ua = mt3+ifi3 020= (O7+O8) + (O7 + O8)+O9 Up = mi4 + ffl4 О21 =019 + 019 W10 — Ul + W3 O22= 02l—018 Ull = U10+U2 023 = 021—O20 i/o = Oi8 у t = и 16 4* о 19 //2 = 015 + 023 //3 = O14 + O2t //4 = OI3 + O22 //5 = 020 3.5.7. Полиномиальное произведение по модулю (Z8+l) 21 умножение, 77 сложений Оо = Хо+Х2 0}=Х|+Х3 а2 = Хо—х2 0Э=Х7—Х5 О4=Х4 + Х6 fl5=Xs + X7 Об = Х4—Х6 07 = Х1— Хз 08 = 0о+01 09 = 04 + 05 О10 = Ов + О9 Оц =Оо—01 Ьо — (йо+h 1+/12—/г3+hi+Л5 +Лб+/1?) /4 Ь{ — (—ho—hi—h-2—/13+ ^i+^s + ^G—Л?) /4 />2= (Лз—/к—//5—Лб)/4 Ьз~ (oho—5Ai + 5/?2—7Л3 +5Л4—5/г5 + 5Л6—hi) 86
tht=ai—as ai)=an + aiz fll* = a2 + a3 Ии=Яб + й7 <lie=ai4-l-flis 017=112—аз ais—a6—a? 016 = 1117+1118 azo—xo-i-Xi an^xo агз—Xi О23 = Хз + %7 024 ~x3 Лгз=Х1 026 = 015—a« + -Vo—023 027 = as—014 + Хз + *4—Xi 028 = 026+027 bi — (—5/io+ 5/ii—0/12+/13 4" 5hi—5/is +5/ie—7ft?) /20 &з= (3/13—5/14 + 5/15—5/i в+4/i?)/20 be= (/io+/ii—/12—/13 + /14—/is—Ae + 3/i7)/4 bi — (—/io+/11+/12—*3/13+/14+/15—/ie—/1?) /4 Z>s = (—hi + 2/13-—hi-{-h&—hi) /4 Ья — (5/io—5/ii—5/i2+/13+5/14+5/ir,—She—З/17) /20 bio= (—5/io—Sh 1 + 5/12+З/13+5/14—5/is—5/ie + /17) /20 />u = (5/11—2/13—5/i4+5/i6+/i7)/20 bi2=ho—hs+hi b 13 = —2/io + /1з-—/17 />14 “/13-2^4 + /l7 615 =—hz-j-he—2hi />16=2/13—2й6+2/1? Ь 17 = 2/12-2/13 + 2/17 bie= (—Лз+Й7)/5 />19= (—/13—/1?)/5 />2о=Лз/5 mk = ak+sbh, k = 0, .... 20 ио=/По + /П2 U\=mi+m2 иг = тз + тз u3 = ml + m5 ui = m6 + ms u5 = m7 + ms и6 = тм + тз U7 = mlf>+mlt Us^mzo + mw «9 = miz + «8 Uio = uo + ml3 Wil — «o + «2 «12 = «о—U2 «13 = «1 + «3 «14-«1—«3 «15 —Uii 4* Ue, «16 = «4—Uq Un = U-^U7 U 18 — U5—W7 W19 = mi8—^(9 W20 — U9 + 14 W21=U19 + Ul9 1/22 = ^15—1/21 //23= W22 + /W16 «24 =--U22--mn «25 = «8+ «8 «26 = «25+ «25 «27 = «19 + «25 УО = ll 13 + «17 + «20 //1 = «I2----«18 + «23 //2 = «11----«15 + «25 //3 = «12 + «18 + «27 l/4 = «lt+«15 + «io + «19 ]/5 =-«14---«16+ «24+ «26 У 6 = —«1з + «17+«21 + «25 У 7 =-«14 +«16 + «19 3.6. Приложение. Алгоритмы редуцированного ДПФ для У = 4, 8, 9, 16 Эти алгоритмы вычисляют q*~l(q—1) выходных отсчетов ^точечных ДПФ N=q*, q — простое, где последние q‘~l входных отсчетов {хп} равны нулю: __ qt—l (q—1)—1 Xh = У х„ ^’пк, k^Q modq, п=о 1Г = ехр — j2n/W, j = l/—1- Алгоритмы располагаются в таком же порядке, что и в разд. 3.5. В скобках указано число тривиальных умножений на +1, ±j. 3.6.1. .V-=4 2 умножения (2), 2 сложения mo = l-xo Ji = mo+mi >711 = —j'Xl Л'з=П1о—mi 87
3.6.2. W = 8, u = n/4 4 умножения (2), 10 сложений nio=l-Xo 'ih = (.Vi— X3)COS и т2 = —]Хг т3 = — j(xf4x3)sin и Si — tno + mi S3 = /n2 + m3 -¥1= S14S3, А’з—Зз—S't, s: = mo—mt Sl—ni2—ГПг ^5 = 32434, A'7=S1—So- 3.6.3. (V=16, u=2n/16 10 умножений (2), 32 сложения h=X14X7 ts = Xi— X7 <3 = Х34Х5 /Ио=1-Хо mt— (x2—x6)cos 2u m3— (cos u+cos 3u)/z nis=—j-x4 m6=—j(x2+^e)sin 2u m8=j (sin 3u—sin u)—ti /4=x5—x3 m2= (t2 + ti)cos 3u mt = (cos 3u—cos u) tt m7=— j (£i-f- G) sin 3u n(9 = —j (sin u-j-sin 3(() t3 Si=m<>+mi Si=mi~m2 S3 = S24S4 Sio = «s— Si3 = Sg+Sii Sle = S10—S12 $2 =/7(0—Mi s3 = Si 4 s3 ss = s2—S4 sn=mi+m8 314 = 39—S11 S3=m3—mz So =S1—S3 s<, = ni3 + ms si2=m1—m9 315=Sio4S12 ^i = s54si3 A7 = So4S14 A is = Sg 4 Sie А3 = 3у—Зю Aq = St;-:-Si4 •^15=35------S|3 A5=S74Sl3 A 11 =S7—S15 3.6.4. N=9, и=2я/9 8 умножений, 28 сложений /i=x44x5 t«=xl—X-j mo= у (xo + *o —*3) /2 cos и—-cos2u—cos4« \ /7(1 = ------------------- (xt — X2) / cos и cos 2u — 2 cos 4u \ m2 = (----—----------------I (x2 — / cos и — 2 cos 2u + cos 4u \ m3 - -------- ------------ (<!—*? ms = —j (sin 3u)x3 m5 = — j (sin и) (xi4x2) me = — j (sin 4u) (x24^) /7(7 = j (sin 2u) (xi—12) s2 = z/(j 4 "12 4 /((o S4=— 777|— тз + lllD s6=—m6 4 m7 + mi S3 = —/'(2 4/7(3 4/7(0 So =/7(4 4/7(5 4/7(0 S7 =—m5—тз + irii Ai—S2435 A2 = S3—So A'4 — S44S7 A& = S4—S7 А;=Зз43о Ag = S2—S5 88
ГЛАВА 4 АЛГОРИТМ ВИНОГРАДА ДЛЯ ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ (Ш. Зохар) 1 Здесь детально рассматривается новый алгоритм ДПФ, пред- ложенный Ш. Виноградом. Этот алгоритм требует примерно в пять раз меньше умножений, чем алгоритм Кули — Тьюки, и при- меним к любым порядкам, которые являются произведением вза- имно-простых множителей из следующего списка: 2, 3, 4, 5, 7, 8, 9, 16. Алгоритм описан с помощью схем специальной формы — по одной для каждого члена списка. Такие схемы являются удобным, компактным графическим представлением последовательностей арифметических операций в соответствующих частях алгоритма. Использование этих схем вместе с табл. 4.5, 4.6 позволяет отно- сительно легко реализовать алгоритм и оценить его эффектив- ность. Материал изложен так, что при первом чтении можно опускать значительные части текста. 41. Обзор Со времен открытия алгоритма БПФ [4.1] многих мучил во- прос: «Является ли алгоритм БПФ единственным способом быст- рого вычисления ДПФ или все-таки существует более быстрый ал- горитм, который еще предстоит найти?» В 1968 г. один ответ на этот вопрос дал Явн [4.2], показав, что число умножений мож- но уменьшить в два раза при неизменном числе сложений. В 1969 г. значительный шаг на этом пути сделал Виноград [4.3], который разработал алгоритм, снижающий число умножений в алгоритме БПФ по основанию 2 [4.1] примерно в 5 раз. Такое уменьшение числа умножений сопровождается небольшим увели- чением или уменьшением числа сложений. В большинстве случаев рост не превышает 20%. В качестве основы для сравнения алгоритмов здесь и далее будем использовать «номинальную» эффективность алгоритма Кули — Тьюки (БПФ), а именно, число ..#кт умножений и з/кт сложений вещественных чисел при вычислении ДПФ порядка N с комплексными данными2: 2'^j^t ~ log2 = 1,5 . (4.1) 1 Jet Propulsion Lab California Institute of Technology, 4800 Oak Grove Dri- ve Pasadena, CA 9113, USA. 2 Равенство (4.1) принято как удобная точка отсчета. Следует иметь в виду, 'то кроме алгоритма Явна имеются и другие варианты БПФ, более эффектив- ные, чем (4.1). 89
Итак, выбираем (4.1) в качестве основы сравнения при всех N. Алгоритм Винограда решает упомянутую задачу, используя «^кт/5 умножений вещественных чисел. Рассмотрим возможности и ограничения алгоритма с тем, чтобы читатель, прежде чем при- ступить к более глубокому изучению, смог оценить пригодное и, его для своих нужд. На нынешней стадии разработки алгоритм применим для лю- бых N, удовлетворяющих соотношению л^-ГИ*> (4.2) k=i в котором Nk — взаимно-простые множители, взятые из списка Aft = 2, 3, 4, 5, 7, 8, 9, 16. (4.3) Следовательно, максимальное значение N равно 16-9-7-5=5040. Все значения N, удовлетворяющие указанному условию, перечис- лены в сводной табл. 4.6. В графе Goo для каждого значения Д’ приводится фактическое значение выигрыша в числе умножений. В среднем для всех А>140 Gx равно примерно 5,5. При таком значительном снижении числа умножений есть основания ожи- дать, что в большинстве случаев алгоритм будет работать быст- рее, чем алгоритм Кули—Тьюки. Чтобы быть более уверенными в этом, надо знать основной системный параметр и, который явля- ется отношением времени выполнения одного вещественного умно- жения к времени выполнения одного вещественного сложения. (Термин «вещественный» используется как противоположность термина «комплексный», а не «целое», если иметь в виду Форт- ран). Для очень больших и (например, в микропроцессорах, программных умножителях) выигрыш в скорости приближается к Goo асимптотически. Для меньших значений и выигрыш будет меньше. Обозначая выигрыш в скорости через G, можно показать, что G(p) = G«, (р+1,5)/(р + ^?), (4.4) где R — параметр, указанный в табл. 4.6 в одной колонке с Goo. Очевидно, теперь легко вычислить выигрыш в скорости для любой системы и любого допустимого N. Будет показано, что (4.4) основывается только на времени выполнения арифметических операций и что структурная сложность алгоритма Винограда обу- словливает замедление его программной реализации. Основным недостатком нового алгоритма является необхо- димость в большом объеме памяти. В табл. 4.6 это отражено па- раметром Для обработки комплексных данных надо иметь в памяти массив длиной 1 вещественных слов. изменяется примерно от 2N в начальных строках таблицы до 4Л' в последних ее строках. Так, для больших значений N требуется массив 6.\, что на 4А больше, чем минимально необходимые 2N для запоми- нания входного вектора. Из полного объема памяти в 1,5^< веще- 90
ствённых слов 0,5.< необходимы для запоминания предваритель- но вычисленных констант. Поскольку не все константы отличают- ся друг от друга, вероятно, есть возможность снизить эту часть затрат памяти за счет использования более сложных схем адре- сации. Другим возможным недостатком нового алгоритма является то, что он может потребовать больше бит на одно слово для со- хранения заданной точности по сравнению с алгоритмом Кули — Тьюки. Это обстоятельство более детально рассматривается в. .разд. 4.9, но в целом проблема заслуживает дальнейшего изу- чения. Вывод алгоритма разбит на две части. В первой рассматрива- ются быстрые алгоритмы ДПФ для малых порядков, значения ко- торых перечислены в (4.3). Алгоритмы образуют набор конструк- тивных блоков, которые во второй части объединяются в искомые полные алгоритмы ДПФ для порядков N, описываемых выраже- нием (4.2). Алгоритмы малых порядков из (4.3) являются производными от алгоритмов порядков 2, 4, 6 преобразований другого типа. Эти преобразования называются лево-циркулянтными (ЛЦП) (чаще Называются циклической корреляцией; см. разд. 4.2). Итак, изла- гаемый материал имеет следующую структуру. Раздел 4.2 посвя- щен взаимосвязи ДПФ — ЛЦП. Далее следует описание трех Алгоритмов ЛЦП (разд. 4.3) и построенных на их основе семи Алгоритмов ДПФ (разд. 4.4.—4.6). В разд. 4.7 рассматривается Объединение этих алгоритмов малого порядка в искомый алго- ритм порядка N, удовлетворяющий (4.2). Раздел 4.8 посвящен Оценке эффективности. В разд. 4.9 подводятся итоги и даются ком- ментарии по поводу преобразования, выполняемого с оставлени- ем на месте. Мы постарались сделать рассмотрение достаточно детальным и полным, желая создать необходимую базу для дальнейшей раз- работки проблемы. Однако следует указать, что приемлемый уро- вень понимания основных идей и их приложений может быть достигнут без детального вывода алгоритмов малых порядков. При этом достаточно изучить разд. 4.2, первую часть разд. 4.3 (вплоть до рассмотрения лево-циркулянтного преобразования по- рядка 4), введение вектора тр обобщение схемы в разд. 4.6 [см. фрагмент между (4.126) и (4.127)], разд. 4.7, последнюю часть разд. 4.8 [следующую за (4.181)] и разд. 4.9. 4.2. Основная идея алгоритма Краеугольным камнем алгоритма Винограда является теорема [4.4], дающая решение, казалось бы, отвлеченной задачи: для за- данных полиномов А(х), В(х) определить минимальное число умножений, необходимых для вычисления, {А (х) В(х)} mod С(х), (4.5) 91
где С (х) — заданный монический полином. С ДПФ эту задачу связывают два обстоятельства. Во-первых, можно показать, что матрица ДПФ родственна другому специальному преобразова- нию, матрица которого является лево-циркулянтной (точное оп- ределение приведено ниже). Во-вторых, можно показать, что вы- числение этого преобразования идентично вычислению (4.5). По- этому минимизация числа умножений в (4.5) приводит к мини- мизации числа умножений при вычислении ДПФ. Начнем с нескольких необходимых определений. Матрицей Ханкеля называется матрица, в которой значение элемента ац за- висит только от (i+j). В такой матрице элементы, расположен- ные по любой диагонали, идущей налево вниз, одинаковы. Оче- видно, такая матрица полностью определяется своими первой строкой и последним столбцом. Здесь будем рассматривать матрицу, которая является част- ным случаем матрицы Ханкеля, а именно, матрицу Ханкеля (по- рядка п с индексами, лежащими в диапазоне 0,1, ..., п—1), у ко- торой Ср, п-1 = «о, р-1 (1<р^п—1), (4.6) т. е. последний столбец является тривиальной перестановкой эле- ментов первой строки. Следовательно, такая матрица полностью определяется своей первой строкой. Вторая строка получается из первой циклическим сдвигом влево (элемент, выдвинутый за пре- делы строки влево, появляется справа), третья строка порожда- ется таким же способом из второй и т. д. Назовем такую матри- цу лево-циркулянтной, или ЛЦ-матрицей*. Подобным образом ли- нейное преобразование, задаваемое такой матрицей, будем назы- вать лево-циркулярным преобразованием (ЛЦП). В общем виде ЛЦП третьего порядка записывается выражени- ем с0 Ц с2. а.2 П1 «0 До ^2 а0 а2 «г bi Ьг. (4.7) Заметим, что (4.7) можно рассматривать как соотношение для получения последовательности (с0, сд, с2) из последовательностей (ао, пь а2) и (6о, bi, Ь2). С этой точки зрения {с,} часто называ- ют циклической корреляцией последовательностей {п,} и {Ьг-}. С другой стороны, инвертированную последовательность (с2, Ci, сЛ рассматривают как циклическую свертку последовательностей {ai}, {bi}. В большинство последующих математических преобразований входят матрицы, которые не будучи сами ЛЦ-матрицами, содер- 1 За основу взято понятие циркулянтпой матрицы, которое обычно испол:- зуется для описания матрицы, порождаемой ее первой строкой, циклически сдви- гаемой вправо. •92
жат ЛЦ-подматрицы. Будем называть такие матрицы квази-лево- циркулянтными матрицами (КЛЦ). Обратимся к связи между ЛЦП и ДПФ. Как станет очевид- ным позже, нам нужно рассматривать некоторую тривиальную модификацию ДПФ* 1: № = ехр( —(4.8) N-\ Fa = Q^Wuvf„ (н = 0, 1,..., А—1). (4.9) v5) где Q — произвольная комплексная константа. Когда Й = 1, то (4.9) превращается в стандартное ДПФ. Пусть N — порядок ДПФ — удовлетворяет N = pk (р — простое, k — целое), ] . [ оо (р — нечетное), } (4-Ю) 13 (р = 2). ) Покажем теперь, что для таких N (4.9) может быть представ- лено в виде КЛЦ-матрицы2. Переход к этому виду, приведенный в [4.5], основывается на теоретико-числовом понятии примитив- ного корня. Примитивным корнем g для числа N, удовлетворяю- щего (4.10), является целое число, целые степени которого, взя- тые по mod N, порождают все целые числа из интервала (1, N), за исключением чисел, кратных р. Количество чисел, лежащих в упомянутом интервале и крат- ных р, Nlp^pk-\. (4.П) поэтому количество целых чисел, порождаемых корнем g, n=pk—pk^ = (p — \)pk-\ (4.12) и можно сказать, что последовательность {gPmodA} (р = 0, 1..... п—1) (4.13) является перестановкой тех целых чисел из интервала (1, А), ко- торые не кратны р. Используем теперь эти идеи для переобозначения индексов в •(4.9). Все индексы, не кратные р, будут представлены в виде (4.13). А именно, обозначая r = gPmodN] . . ,л „ , (р, а = °, !..п— 1), (4.14) s = ga mod N J определим Bp = Fr; ba = fs (p, o = 0, 1,..., n—l). (4.15) 1 В этой главе для обозначения "|/—1 используется i, что соответствует обозначению j в других главах. 2 Это справедливо в более широком диапазоне, чем задает выражение (4.10), однако для наших целей достаточно (4.10). ЭЗ
Теперь с помощью индексов, кратных р, определим Й(г)=-В;; 6(0 Mi (imod р = 0). (4.16) Введение заключенного в скобки индекса (г) заслуживает некоторого пояснения. То, что здесь рассматривается, представ- ляет собой некоторое перемешивание (перенумерацию) величин, обозначенных Fr (и /.,). Из предыдущего следует, что N членов, образующих множество {Fr}, можно разбить на два подмноже- ства: n-элементное множество, в котором г выражается через (4.14), и оставшееся множество N— п элементов, в котором г кратно р. Используя определение (4.15), можно обозначить эле- менты первого подмножества Во, Bi, ..., В-,,.,. Подобным образом можно было бы определить Bn+m=Fmp, т — целое, в результате чего получили бы удобную нумерацию элементов второго подмно- жества Вп, В,i+i, ..., BN-[. Однако делать это нет необходимос- ти, и такой подход вызвал бы трудности в разд. 4.6, где множест- во {В,} должно быть .разбито на три подмножества. Выбранный здесь подход основывается па том факте, что индексация элемен- тов второго подмножества может быть совершенно произвольной, лишь бы она обеспечивала надежное опознавание множества, на которое мы ссылаемся. Из (4.16) явно видно, что для индексации элементов второго подмножества выбрано простое копирование индексов соответствующих членов Fr. Индексные скобки в В,+ являются просто признаком того, что этот член является элемен- том второго подмножества. Заметим, что нулевой индекс появля- ется в обоих подмножествах. При этом Bq ~ F F (4.17) Введя необходимые понятия, перейдем к исключению Fu, (. из (4.9). Для этого разделим сумму (4.9) на две части. В первой части v = mp (т — целое), т. е. ymodp = 0. Во второй части r = s. В результате получим1 В((р) - FiP = Q'V 2“’ Wmtp2 b(mp} + tn—О що^1 Wipe° b« (t^O, 1,..., N—n— 1), (4.18) <l 0 Bp-Bp + B'p (p-0, 1,..., n-1), (4.19) где Bp-Q*V~1rn',«P bimpy (p-0, 1,..., n— 1), (4.20) m=0 B'p = IF( gP+a) 6O (p = 0, 1......... n— 1). (4.21) a=0 1 Здесь используется тот факт, что из (4.8) следует mod Л’>= 94
Зависимость показателя степени IF в (4.21) от (р+о) показыва- ет, что (4.21) является преобразованием Ханкеля. Это значит, что если записать (4.21) в матричной форме, используя р и о в качестве индексов строки и столбца соответственно, то матрица, преобразующая b в В', является матрицей Ханкеля. Более того, она является тем частным случаем матриц Ханкеля, которые оп- ределены как лево-циркулянтные. Чтобы показать это, заметим, что по условиям (4.6) наша матрица Ханкеля будет лево-цирку- лянтной, если gp+n-i = gp-i m0(j дг. (4.22) Но поскольку примитивный корень N всегда удовлетворяет1 gn=lmodA\ (4.23) очевидно, что (4.22) действительно справедливо и (4.21) является ЛЦП. Итак, перестановки (4.14) — (4.16) преобразуют любую мат- рицу ДПФ порядка N [N удовлетворяет (4.10)] в матрицу КЛЦ, ЛЦ-часть которой имеет порядок п. Особый интерес представляет частный случай, когда N — прос- тое число, т. е. k=\, N=p, так что (4.12) дает n = N— 1, (4.24) :а последовательность (4.13) является результатом перестановки целых чисел 1, 2 N—1. В этом случае (4.18) —(4.20) упроща- ются следующим образом: BM=^(bM + '%baY (4.25) \ а=о ) Bp = Qbw (р = 0, 1.... п— 1). (4.26) Чтобы проиллюстрировать эти идеи, рассмотрим случай 1V=7. Наименьшим положительным примитивным корнем 7 является -3 [4.6]. Непосредственное вычисление дает р 0 1 2 3 4 5 Зр mod 7 1 3 2 6 4 5 (4.27) 'Применяя (4.14) — (4.16), приходим к следующему виду: 1 В стандартной трактовке примитивных корней (4.13) обычно заменяется на {gp mod/V (р = 1, 2,..., N). (4.13') Сопоставление с (4.23) показывает, что две формулы эквивалентны. Для дока- зательства (4.23) предположим, что gm = 1 mod N для т<п. Отсюда следует, что gm+1 = g1mod^ и поэтому два члена последовательности (4.13') одинако- вы. Это противоречит тому, что g—примитивный корень. Поэтому т=п. 95
B(O, -W-o w° w° jyo w°~ ^10! fyoi Jo F, Bo W' w3 w2 w6 w4 w- b0 bo F, B, H'" w2 w4 wf w' bt bt f. F, = B, = Q Щ°' и2 w6 W4 w' wl w3 b2 b2 = ft (4.28) F. B, w° W6 w4 w5 w\ w3 w2 b} b} Jb B4 и0 W4 Щ5 wl w3 w2 w6 b4 b4 B, И'° W5 И'1 w3 w2 И’6 w4 Л. ЛЦ-структура здесь совершенно очевидна. Итак, установлена первая связь с задачей (4.5) для N, удо- влетворяющих (4.10). Это ограничение на N далее будет ослабле- но. Обратимся теперь к второй связи, а именно, к демонстрации того, что вычисление ЛЦП эквивалентно вычислению (4.5). Мы намереваемся установить эту эквивалентность для того, чтобы опираясь на нее, построить алгоритмы некоторых ЛЦ-преобразо- ваний общего вида малых порядков. Следует заметить, что ЛЦ- матрица, с которой мы имеем дело, является матрицей, получен- ной перестановкой подматрицы ДПФ и, будучи таковой, останется функцией одной переменной (W7), тогда как ЛЦ-матрица общего вида порядка п является функцией п переменных. Это обстоятель- ство предполагает дальнейшие упрощения, которые и будут реа- лизованы позже. Рассматриваемое умножение матриц показано в следующем выражении, где явно просматривается ЛЦ-структура: (4.29) Введем теперь вспомогательные полиномы (индексы полино- мов указывают на их степень). т (4.30) t-0 т Bm(x) = ^bixi, (4.31) i=0 tn Tm(x) = %tiX‘. (4.32) /=0 96
Рассмотрим произведение полиномов 2m V2m (Л) = Ат (х) Вт (х) = 2 vixl- С4-33) i=0 Легко увидеть, что коэффициенты этого полинома можно полу- чить перемножением матриц (4.34). (4.34) Сравнивая (4.34) с (4.29), видим, что перестановка двух отме- ченных треугольных секций преобразует матрицу (4.34) в три- виальное расширение матрицы (4.29). Этот факт можно отобра- зить следующими соотношениями между полиномами Тт(х) и V2m (х)' Т’т W = V2m (х)—(ат bt + ат-{ Ь2 + ... + ах bm) (x7I+1 — 1) — — (amb2+ ... + a2bm)x(xm+l— 1)— — (ат bm_x + am_i bm) х!п2 (хт+' — 1) — — атЬтх"1-1 (хт+’ — 1), (4.35) 7’mW = V2m(x)-(xm+1-l)Fm_1(x), (4.36) где Fm-\(x) оказывается полиномом степени (т—1). Следова- V2m (x)/(xm+1 - 1) - Fm^ (х) + Тт (х)/(х"‘+> -1). (4.37) Заметим, что в стоящей справа дроби степень числителя меньше степени знаменателя. Это означает, что Тт(х) является остатком отделения V2w на (х™+1—1). Другими словами, Тт (х) = {Ат (г) Вт (х)} mod (xn— 1). (4.38) 97
Здесь используется тот факт, что порядок ЛЦ-матрицы в <(4.29) п=-т+1. (4.39) Равенство (4.38) показывает, что ЛЦП из (4.29) можно вы- 'полнить путем перемножения полиномов, идентичного перемно- жению в (4.5). Это определяет’вторую связь. Теперь рассмотрим число умножений, необходимых для вычи- сления (4.29). Прямое умножение матриц требует п2 скалярных умножений. Значительно меньшее значение следует из теоремы Винограда [4.4]. В более узкой трактовке применительно к дан- ному случаю теорема устанавливает, что, если (х"— 1) предста- вим в виде k (п) хп — 1 = П гщ (х), (4.40) где rrii(x)—различные полиномы, несократимые над полем ра- циональных чисел, то минимальное число умножений равно (2«—/г), вследствие того, что умножения на рациональные числа не учитываются. Возможность исключения умножений на рациональные числа заслуживает пояснения. Предположим, имеем минимальную реа- лизацию Тт(х) в следующем виде: R i i \ Л»(х) = У -^К(Д (4-41) Г--1 V *Уч где К,-— целые числа и Fr(x) не содержит никаких рациональ- ных умножений. В соответствии с теоремой Винограда полиномы Fr потребуют в общей сложности (2п—k) умножений и дополни- тельные К рациональные умножения, появившиеся в (4.41), не учитываются. Чтобы увидеть, что же включается в число умно- жений, поясним дробь в (4.41). Пусть К — наименьший общий знаменатель и JrlKr^J'rlK. (4.42) Тогда R KTm(x)=VJ'rFr(x). (4.43) г= 1 Каждое умножение на J'r может быть реализовано как (Д—1) сложений, так что КТт(х) не требует умножений сверх (2n—k), используемых при вычислении Fr. Наконец, компенсируем умно- жение на К слева предварительным масштабированием матрицы, а, т. е. заменяем а/ в Ат(х) на А т * a.^a-jK, АМ^а-'Х'. (4.44) 98
Таким образом, вместо (4,38) теперь имеем Тт (х) = К {Ат (х) Вт (х)} mod (хп— 1), (4.45/ и отсюда видно, что умножения на рациональные числа могуг быть устранены без увеличения числа иррациональных умноже- ний. Стоит отметить, что, хотя с чисто теоретической точки зрения все верно, практически следует учитывать затраты в виде допол- нительных сложений, вводимых для исключения рациональных умножений. Очевидно, что, когда эти затраты превышают затраты на умножения, которые они заменили, лучше оставить умножения. Такая ситуация действительно возникает при больших п. Поэтому алгоритм, использующий достоинства теоремы Винограда, должен быть сконструирован так, чтобы ДПФ большого порядка разби- валось на ЛЦ-преобразования малых порядков. Фактически все- порядки ДПФ, появляющиеся в табл. 4.6 (А'тах=5040), реализу- ются посредством трех ЛЦ-преобразований порядков 2, 4, 6. Факторизация (хп—1) для этих трех случаев показана в табл. 4.1, в последнем столбце которой указано минимальное число ум- ножений по теореме Винограда. В следующем разделе разберем конкретные алгоритмы, обеспечивающие достижение такого ми- нимума. Эти три алгоритма служат основой при последующем по- строении алгоритмов для всех порядков, перечисленных в (4.3).. Таблица 4.1 Рациональная факторизация (х”—1) 2 (х—1) (х+1) 2 2 4 (X-1) (х+1) (х2 + 1 ) 3 5 6 (х-I) (х+1)(х2 + х+1) (х2—х+1) 4 8 4.3. Базовые алгоритмы лево-циркулянтного преобразования Попытаемся прежде всего достаточно детально представить- общий метод, с тем чтобы алгоритмы для трех указанных значе- ний п получились просто, как его очевидное следствие. Отправной точкой является выражение (4.45), в котором К остается неопределенным до самого конца вывода. Факторизация (х"—1) приведена в табл. 4.1, где указаны множители щ,(х) из (4.40). Зная m-i, находим Тт(х) по двухфазной схеме, основанной на полиномиальном варианте китайской теоремы об остатках [4.7]. На фазе 1 вычисляем для всех i из (4.40) (х) = {Ат (х) Вт (х)} mod щг- (х). (4.46)- Эта часть основана целиком на результатах, вывод которых при- веден в приложении и которые представлены в табл. П.1, П.2. На:
фазе 2 для формирования Тт(х) из и, используется полиномиаль- ный вариант алгоритма Гарнера [4.7]. Для этого требуются вспо- могательные функции сц(х), vt(x), введенные ниже. Их использо- вание при формировании Тт(х) будет видно из (4.50): [mi (х) C;j (х)] mod т} (х) = 1 [определение с,- , (х)], (4.47) vL (х) ~ нДх), (4.48) Vj (х) =--{[...[[[«; (х) — СЛ1 (х)| С,_ i (х) — — v2 (х)]с2, Дх) — "J3 (х)]с3. Дх) — — uf_i (х)] Ci-i, i (х)} mod mt (х), (4.49) Тт(х) = К ^Дх)+ 2 М*)П/ДЛ*) (& из табл. 4.1). (4.50) i=2 j=l Если степень тДх) равна 1, т. е. тДх) =х—хд вычисление СлДх) тривиально. Из (П.5) видно, что в этом случае ^ДхДсгДхД= 1. (4.51) Теперь можно вычислить любые сц(х), удовлетворяющие (4.47) и, следовательно, (4.51). Выбирая наименьшую степень, полу- чаем са (*) = Сц = l^i (X;)]-1 . (4.52) Разобрав принципы вывода алгоритмов, обратимся теперь к частным случаям. Чтобы установить общую картину, будем при- держиваться сформулированных принципов даже при рассмотре- нии случая самого низкого порядка (п = 2), когда вывод мог быть много проще. 4.3.1. Лево-циркулянтное преобразование порядка 2 Т, (X) = К {Л (х) В1 (X)} mod [(X-1) (X + 1)], т, т2 ui (х) = Mi (*) (х)} mod Д— 1) = (4.53) (4.54) = (00+3) (Vr£i) 1см- (п- а, 6, — Wj "CCj Pj, и2 (х) {Д\ (х) Bl (х)} mod (х + 1) = (Оо—Oj.) ’ ^2 — ^2 — ^2 Р‘2‘ 100
Фаза 2 , . 1 1 1 s С12 W =--------~ = ...... — ~ =---------- , = 6j, тг(х2) «Н — 1) 2 »2= {(6-2—Sj)(--------М I mod(x+ 1) = -^(б!—62), L \ / I T1(x)^J<[61 + ^-(61-62)(x-l)] = [А(б1_б2)]х+|^Л(61 + 8г)]. (4.55) рис. 4.1. Способ изо- ({^}) ({ь}) П = 2 (2М;4А) Рис. 4.1. Алгоритм ЛЦП порядка 2 с использованием сим- it to Выбирая 7<=2, получаем ^0=61 + 62, £1 = 61—62- Окончательный вид алгоритма представлен графически на бражения, которого мы придерживаемся, достаточно прост, поэтому будем использо- вать его и в более сложных таблицах. Pt обозначает линейную комбинацию by, строка Р; содержит (ненулевые) коэффи- циенты этой линейной комбинации. Анало- гично, It — линейные комбинации 6/, в столбце tf приведены коэффициенты этих линейных комбинаций. Стрелка в правом углу показывает, что Р; порождаются толь- ко значениями Ь;. Обычно нет какой-либо неопределенности в отношении этого нап- равления. так что стрелки можно опустить. Равенства 6; = р,а,- указаны на изображении волики для умножения, принятой в Фортране. Напомним, наконец, что основное выражение (4.45) полно- стью симметрично относительно {&)} и {bj}. Это удобное свойство использовано в принятых здесь обозначениях. Итак, наряду с каждым pi, которое является функцией {&,} (скажем, определяемой таблицей, имеется переменная ct£, которая является точно такой же функцией {dj: аг=Фг ({aj/K}). Это обстоятельство будет учитываться во всей главе. Практичес- ки это означает, что через левую часть таблицы необходимо прой- ти дважды. кВо-первых, подставляем {а,/К} вместо {dj и получа- ем таким образом {аг} вместо {р,}; затем проходим всю таблицу, задавая на входе {Ь,}. Заметим, однако, что несмотря на мате- матическую симметрию между {aj/K} и {bj}, на практике между ними имеется важное различие: а рассматривается как матрица констант, преобразующая ряд различных векторов данных Ь. По- этому значения а; можно предварительно вычислить раз и на- всегда, а затраты на их вычисление при подсчете стоимости пре- образования одного вектора данных полностью игнорировать. 101
Имея это в виду, учитываем только те арифметические операции, которые явно указаны в схеме алгоритма. В нашем случае это 2 умножения и 4 сложения, для которых выбраны обозначения (2М и 4А), приведенные на рис. 4.1. Заметим, что 2 умножения — это тот минимум, который определяется теоремой Винограда (см. правую колонку в табл. 4.1). 4.3.2. Лево-циркулянтное преобразование порядка 4 Относительно всех таблиц алгоритмов, разрабатываемых в этой главе, предполагаем, что читатель будет прослеживать таб- лицу алгоритма и отмечать графическое представление каждого математического утверждения по ходу построения алгоритма (рис. 4.2) 0rMbi} п = 4 (5М; I5A) Рис. 4.2. Алгоритм ЛЦП порядка 4 Фаза 1 Т3(х) = К {А3 (х) В3 (х)} mod [(х3+ 1) (х + 1)(х— 1)], (4.37) 102
(х) - Л (1) В3 (1) — (a0 + &i + &2 + йз) (^о 4* 4* Ь2 + Ь3), «1 Pi С1 = ^о4~^2, С2=Ь1-{-Ь3, .••Pi-q+Ca, 61=«з = а101, (л) = А3 (— I) В3 (— 1) = (а0 —а44-а2 —а3) (fy—&14-&2—&з), а2 02 • ' • р2 = ^2’ ^2 ~ ^2 ™ ®2 ^2’ Величина «1(х) находится за два шага: Л3 (х) mod (х2 4- 1) = (fljj—Оз) х + (а0—аг), В3 (х) mod (х2 4- 1) = (Ь^ — Ьз) х 4- (60—&t). Р, Р. (из табл. П.1) (4.58) Заметим, что схема алгоритма на рис. 4.2 определяет 03, 04 косвенно через c3 = bi—b3, С4=Ь0—Ь2. Поэтому 03 = Сз, 04 = ^4, так что какие-либо арифметические операции здесь отсутствуют. Вез- де, где такая ситуация повторится, мы, чтобы обратить на нее внимание, будем отмечать кружочком соответствующий член в таблице. Теперь объединим оба результата из (4.58), используя табл. П.2 (a. = /?i, Рз = 91 и т. д.): «1 (х) = [ — (а4—а3) 04 4- a t фз 4- р4) ] х 4- [а4 (₽з 4- 5 J — (а3 4- а4) Рз1 • Обозначим ®5 — ®з . а4’ Рз ~ Рз 4- 04 — Сз4*с4, 63 — 2а50?, 64 — 2 (а4 <х3) 04, 65 = — 2а4 05. Следовательно, и1 (х) =----------(64 + 6s) х-----(654-63). е, е> Фаза 2 1 1 1 _ 1 _ 1 _ 1 С12“ m4(x2) “«!( —1) “ 2 ’ С13~/Мхз) “[XU) ’2’ 1 1 1 С оз —• —————— — ————— — , m2(x3) т2(1) 2 vL (х) = «4 (х) =-1- (е4 х 4- е3), с'; ’ 162 4-е4 х -e3jj mod (х4-1)-=-^-(2б2—е44-е3), °з= : ез)4-----г(2б-2 —е44-е3)]4-1 mod (х— D = ! L • Л ’ 2. 4 J 2 ) =4<б1-б2+^’ 4 103
Т’з (х)---(^«х + ^з)+ ~(2 62 + 64 + 63) (*2 + 1) + + ~~ (6t—62 + ei) (-^ + *2 + х + !)• 4 При К=4 Т3 (х) =-- (61-62 + ej х» + (6, + 62 + ?я) х2 + + (61 ^2 £4) Х 4*01 + ^2 ез)- Введя теперь ei=6i—62, 62 = 61+62, окончательно получим Т3 (х) = (ег + б4) х8 + (е2 + е3) х2 + (е4—е4) х + (ег — е3). (4.59) Подсчет по изображению алгоритма числа арифметических операций (исключая манипуляции с at) дает 5 умножений и 15 сложений1, что снова соответствует минимальному числу умноже- ний, указанному в табл. 4.1. 4.3.3. Лево-циркулянтное преобразование порядка 6 ~4" 1 G 01 Ki A & w ft №9 Jft ft О 1 60' at = aJK ^4 to « e «* w a СЭ <3 -r bi . 5 , ^3 — a3 a2 ®i 62 AsM = S atxi (4-60) #2 ^2 ^0 ^5 ®4 ®3 63 1=0 Jo- Gj Go ®4 ^-2 _®0 ^-5 ®4 ^2 64 _65_ W = S bi x‘ 1=0 Фаза 1 Тъ (х) = К {А, (х) В5 (х)} mod {(х2-х+1) (+ + х+1) (х+1) (х-1)}, т, т, тг т< (4.61) «4 = А5(1)В5(1)= (Д b], с^Ьз + Ьо, с2 = 65 + 62, с3 = />14-6|, / 5 * \ «4 = I 2 + С2 +Сз), 61 = «4 = «1 Р1, н 3 = Д 5 (— 1) В5 (— 1) = (—а0 +fl!—^ + 4—^ + 4) X а, X (—bo + bj — ^ + Ьз—bi + ад, 3. * 16 1 Автор выражает признательность д-ру Р. Дж. Липсу, работающему в Ла- боратории реактивного движения, за помощь в уменьшении числа сложений с 16 до 15. 104
— b3 Ьд, c5— b& b%, ct — b±—by, U3 = ae (ce -|~ c5 c4), 6g = u3 = ae pg. 3« Выражения для U\(x\), и2(х) получаем за два шага: Bt (х) mod (х2 + х + 1) = [(й4 + bj—(b& + Ь2)] х + [(&3 + Ьо)—(&5 + 62) ] = с, сг ct ct = (Сз—с2)х + (с1—с2) = р2х + Рз (из табл. П.1), . • . Д5 (х) mod (х2 + х + 1) = a2 х + a3, . • . и2 (х) = {Л5 (х) Вй (х)} mod (х2 + х + 1) = = [a3b3—(а3—а2)(р3—р2)]’х + (а3гр3—а2гр2)(из табл. П.2). (4.62) Теперь введем ?7 = Рз Рг =С1 С2Ч”С2 С3 — С1 С3> | (4 03) а7 = а3—а2 J и используем эти выражения для преобразования (4.62)Ч Ц2 = («2 Рз + «7 Рг) -^ + («7 Рг + «з Р?): (4-64) В5 (х) mod (х2—х 4- 1) = — [ (65 —й.,) + (64 —\) ] х — — [(Ьз^&о) — (fe5—У] = —(gs + cj X — (Се72ft) = (Зв р4 = —р5х—р4 (из табл. П.1), . •. X5(x)mod(x2—х+ 1) = —а5х—а4, . •.«! (х) = {Яв (х) Вь (х)} mod (х2—х-1- 1) = = t(a4 + ®s) (Pi + Ps)—+ a5₽s) (из табл. П.2). (4.65) Введем р8 = Р5 + р4 = с5 + с4 + св—с5 = с4 + с6, | «8 = «5 + а4 J и преобразуем (4.65): «1И = (a6p4 + a8p5) х + («4р8—ст8рб). (4.67) е« 1 Введенные здесь ег не появляются в окончательных изображениях алгорит- мов :: используются только на промежуточных шагах. 105
Фаза 2 {т1 (х) с12 (х)} mod т2 (х) = 1. Пусть с)2(х) =71х + то, •• т1(х)с12(х)=-(х2—х+ 1)(Т1*-гТо) = = Vi х3 + (То—Vi)/2 + (Vi — То) -г + ?о, •'-(Vi—Vo—Yo + Yi)x + (To —To + Vi + Vi) : 1 (из табл. П.1) ••-71 = 70= 1/2, cJ2(x)=^(x+1)/2, 111 11, fig — " -— —- , Год '— — » «1(х3) «1(—1) 3 т2(х3) «г( —1) с — 1 = 1 — 1 с — 1 1 — 1 14 (х4) тх (1) ’ 24 т2 (х4) тг (1) 3 - 1 _ 1 „ J_ 34 m3(x4) m3(l) 2 vl^eix-Yeb, u2 = £(—e3x + e2—ei x—e5) (x4- 1 )j mod (x2 + x+ 1), v2 = -y [ — (<?4 + e3) x2 + (— e4—e3 + e2 — e5) x + + (e2— e3)J mod(x24-x + 1), v2 = ~ [(e2—e6)x + (e2 + e3 + e4—e5)] (из табл. П.1), »з=[у (6e—e4x— e6)—jmod(x4- 1) = = 4“ (—3e3—e4—2e6 + 26e), О ^4 = -M <3 61—e4x ~ ~ 4ч (e2 — e5) Л- л- (<?., + e3 + e4—e5) ]\ 4— ---4(—3e3—e4—2e54-26e)1 mod (x—1) = 0 I = -e2~t~e3-e.l~Te5-^o)’ о 75 (x) К (e4 x + e5) + -y [(e2—e5) x 4- (e2 + ея + e4—e6)| (x2 — x + 1) = + ~ (— 3 es—ei—2e5 4- 266) (x4 4- x24-1)4* D 4--y (6X—e2 4- e3~et + e5 — 6e) (x6 4- x4 4- x3 4*x2 -4 x 4- 1). Собрав члены с одинаковыми степенями, получим искомые значения для Л-. Подставим теперь К=6 и представим зависи- симость ti от ei и д, в виде таблицы на рис. 4.3а. 106
Рис. 4.3. Этапы разработки алгоритма ЛЦП порядка 6 До сих пор вывод алгоритма представлял собой практически непосредственное применение основной идеи, высказанной в на- чале раздела. Однако полный. алгоритм, основанный на рис. 4.3а. требует слишком много сложений. Чтобы избавиться от не- которых из них, придется прибегнуть к менее очевидным преобра- зованиям. Изучая внимательно рис. 4.3а, можно заметить, что коэффициенты у to и t3 имеют одинаковые абсолютные значения. Слева от линии симметрии коэффициенты полностью идентичны, а справа имеют противоположные знаки. Это справедливо также и для пар (Л, tt) и (/2, М- Используя эту симметрию, можно снизить число сложений, как показано на рис. 4.36. Окончательные преобразования связаны с исключением на рис. 4.36. В приведенных ниже выкладках мы опираемся на оп- ределения (4.64), (4.67) и соответствующее использование (4.63), (4.66): gi—S1 = «з—«2 = — 2 а7 02—“2 (07 + 02)—а3 07 = ~ 02 ( а3 ат) + 07 ( а2 аз), (4 68) б? 67 go ®e = е5 = а5 (08 0s) “Ь 2 «8 05 — «4 08 = 05 («8 + «4) + 08 (?5~«4). (4.69) 65 6. g2—6t = 2 е2 + е3 = а- (03—07)—а2 03 + 2 а3 07 = — 0з(а7 —а2)~ 07 (—а2~ ®з), (4.70) 63 ~ " g-5—6в = 2е6 + е4 = — а8 (08—04) + а5 04 + 2а4 08 = = 04 (?J_+ga) — 08 («s_7L°4) i (4.71) £ 6. 107
ьо 1 -1 bj 1 -1 Ь2 1 -1 Ь3 1 1 Ь« 1 1 Ь5 1 1 0|=*i({b}) п - 6 (8M;34Д) Рис. 4.4. Алгоритм ЛЦП порядка 6 ёз 2б?з — И7 Рг "Ь 20С2Р3—Из (Рз Р2)—• = — р2( — «з— «-) — Рз (И7 — и2), (4.72) 62 б3 gf4 + 66 = e5 + 2e4 = a8 Р5 + 2и5 ₽4 + и4 (fVHi)^ = р4 («g+j*5) + р5 («з + и4). (4.73) в4 б5 На этом вывод алгоритма завершается (рис. 4.4). 4.4. Базовые алгоритмы ДПФ для простых N В этом разделе построенные выше схемы используются для получения алгоритмов дпф для простых нечетных элементов списка (4.3), а именно, 3, 5, 7. Как указывалось в разд. 4.1, они послужат конструктивными блоками для алгоритмов ДПФ более высоких порядков. В разд. 4.2 показано, что при соответствующей перестановке индексов матрица ДПФ порядка N отображает ЯП- подматрицу порядка п. Основная часть вклада этой подматрицы в выполнение преобразования в целом раскрыта в (4.21), которое повторим еще раз: Bp = ^'weP+a b0 (р = 0, 1,..., п— 1). (4.74) Р—О 108
С другой стороны, ЛЦТ-схемы в последнем разделе основыва- ются на представлении ЛЦ-преобразования порядка п, определя- емом (4.29), (4.39). Поэтому при применении ЛЦП-схем к ЛЦ- преобразованиям, выражаемым (4.74), нужно принять следующие определения: Bp = tn^p (р = 0, 1, ..., п-1), (4.75) (р = 0, 1.. п—1). (4.76) Обратим внимание на роль (4.76). ЛЦП-схемы как обобщен- ные задают лишь правила вычисления аг- по значениям а;. Одна- ко, поскольку (4.76) содержит явную формулу для ait можно на самом деле вычислить конкретные значения аг. (4.77) где ег- — функции I и N, поэтому их можно вычислить заранее. Перепишем оставшиеся выражения ДПФ с переставленными индексами (4.19), (4.25), (4.26): Вр--Вр-\-В’р (р = 0, 1, .... п—1), Bp^=Qft0 (р—О, 1,..., п—1), В(о) — Й(^(о) + 2 \ а=0 ' (4.78) (4.79) (4.80) Заметим, что (4.79) и (4.80) справедливы только для случая про- стого -V и основаны на равенстве n^N— 1. (4.81) С другой стороны, равенства (4.74) —(4.78) являются совершен- но общими и могут использоваться также в следующих двух раз- делах, где N — не простое. Первый шаг в конструировании ДПФ-схемы для простых :V заключается в вычислении констант еДЛ(). Для этого с помощью (4.76) вычисляются ар , которые применяются затем в ЛЦП-схе- мах порядка (.V—1) для вычисления аг- и, следовательно, s, (4.77). Следующим шагом является преобразование ЛЦП-схем по- рядка ((V—1) в ДПФ-схемы порядка N. Это эквивалентно реализа- ции (4.74) и дает схему преобразования bi в Теперь с помощью (4.14) — (4.16), (4.75) заменим эти переменные переменными (>: и F,. С этого момента индексация на входе и выходе будет, как правило, немонотонной. Поэтому, чтобы сохранить монотоннность, переставим строки и столбцы во входных и выходных квадратах. Следует отметить, что замена переменных (4.14) — (4.16) была введена для того, чтобы выявить ЛЦ-структуру и сделать, таким образом, возможным использование (4.45). Однако после этого нам хотелось бы иметь результирующую ДПФ-схему в таком ви- де, чтобы в ней фигурировали переменные Fu, fv со стандартной монотонной последовательностью индексов, поскольку это облег- чает объединение отдельных схем в алгоритм для больших Л'. 109
Обратимся теперь к реализации (4.80). Поскольку все три ЛЦП-схемы удовлетворяют соотношению п-1 pT=Vd;, (4.82) 1-0 равенство (4.80) эквивалентно Fo = В(о) = Q (bM + ₽J = Й (/0 + PJ. (4.83) Наконец, чтобы эффективно реализовать (4.78), во всех трех ЛЦП-схемах выделяем член, который появляется с коэффициен- том + 1 у всех ti. Оказывается, что этот член есть бь Следовательно, замена 6i = cti0i на = й fe(0) -J- aj Pj (4.84) преобразует на выходе В'р в Вр . Заметим, однако, что слагае- мое Q6(o) уже входит в В(0), вычисленное в (4.83). Это дает воз- можность исключить одно или два умножения в (4.84). Действи- тельно, объединяем (4.83) с (4.84) и получаем [используя (4.77)]: 6, = Bw + (S1- 1) Qpt = Fo 4- (61-1) <> p, - (4.85) Отсюда видно, что множитель у Pi является произведением й и некоторой функции от Л4 Это оказывается общим для всех р, во всех ДПФ-схемах, которые предстоит построить. Поэтому введем обозначение £г = (<о;Й)Р;, (4.86) где и); — функция только i, N. р; всегда первоначально преобра- зуется в соответствии с (4.86). Следовательно, одной из задач при конструировании ДПФ-схем будет определение значений кон- стант (о,. В ходе разработки будет видно, что лежащее в основе ЛЦП-схемы вместе с выражениями (4.77), (4.86) всегда одно- значно определяют оц. В случае (4.85) 0)1 = 8!—1, В(о) 4-(«! Q)]Pj = F04-(<”i Q)Pi- (4.87) Итак, мы рассмотрели с общих пизиций связь ЛЦП с ДПФ. Обратимся теперь к частным случаям. 4.4.1. ДПФ порядка 3 (рис. 4.5) N =3 (3M,6A) Равенство (4.83) явно указано на схеме. Из (4.76), учитывая, что ' 9-т ’ W = exp( — i — ); g = 2, получаем 3 / Га»/2 -й/2 W2 ax/2_ F1 -- Й/2 Wl Wl (4.88) Puc. 4.5. Алгоритм ДПФ поряд- ка 3 210
|де F — комплексно сопряженное значение W. Следовательно, Применяя ЛЦП-схему второго порядка (см. рис. 4.1), находим й —. й 2 1 I «1 й = -Т. е1=- 1 2 ’ йх = 8 j 1 = 3 2 " 1 — 1 «2 yr = i Й, f2 — i Уз~ 2 ’ COg — ^2 — 1 2 4.4.2. ДПФ порядка 5 (рис. 4.в) №•-= exp — i — , Следовательно, из (4.76) (4.89) 1" 4 1 (cos 36® + cos 72® <. = i (sin 36® + sin 72°) «4 = i (sin 36®- sin 72®) "5 = - i sin 36® №5 (6M ; I7A) Puc. 4.6. Алгоритм ДПФ порядка 5 118
находятся по следующим правилам из рис. 4.2: Равенство (4.77), (4.90) определяют еь Наконец, из (4.87) с использованием коэффициентов при р,- на рис. 4.2 получаем oj; ==; ех — 1 = —5/4, 1 со2 = е2 =----(cos 36° +cos 72°), <о3 = 2в5 — i (sin 36°-(-sin 72°), I co4 = 2(e4—e3) = i(sin36°— sin 72°), ! co5 = — 2e4 — — sin 36°. J 2 IE (4.91)
4.4.3. ДПФ порядка 7 IF = expg — %. Тогда из (4.76) (4.92) Все at выражаются через угол 0 = 907" (4.93) и кратные ему углы. Правило рис. 4.4 для вычисления а; пока- зано на рис. 4.7, а окончательная схема, основанная на нем, — на рис. 4.8. Рис. 4.7. Вычисление о>г для алгоритма ДПФ порядка 7 113
. N=7 (9М.36А) 6, В ------------- "i*“5 ; = (2cos6 + sin2e-sm46) V 3<2sin5-cos 25+cos 45) i "e = --j(cose-sin2e+ sin45) "3= ^(-sinfl + 2 cos 25 ♦ cos 45); «7= 5-(sin5+cos25 + 2cos45) Videos 5 +2sin25 + sin 45) , <*>g = -|(-cos 5 + sin 25+2sin 45) Puc. 4.8. Алгоритм ДПФ порядка 7 4.5. Базовые алгоритмы ДПФ для N = 4, 9 Из (4.2) можно увидеть, что при использовании схем, полу- ченных в последнем разделе, наивысший реализуемый порядок ;V=105 (3-5-7). Учитывая это, добавим тривиальный алгоритм для У = 2 (рис. 4.9), увеличив таким образом максимальное зна- чение У до 210. Если бы мы захотели получить еще большие N, нам нужно было бы или построить новые схемы для следующих по порядку простых чисел (11, 13, 17, ...), или придумать новые схемы для N = pk (р — простое). Выберем последнее. N -2 (2М; 2 А) Рис. 4.9. Алгоритм ДПФ порядка 2 1Ы
4.5.1. ДПФ порядка 4 Л—22, т. е. в соответствии с (4.12) tr= 2. (4.94) Примитивный корень из 4 равен 3. Отсюда р 0 1 г = 3° mod 4 1 3 (4.95) Число строк, исключаемых из ЛЦ-таблицы, равно 2. Оно значительно увеличивается в последующих таблицах, достигая 8 при Л'=16. Это обстоятельство требует новой и слегка модифици- рованной терминологии для облегчения работы с частью матри- цы, не являющейся левым циркулянтом. Во-первых, расширим определение г так, чтобы (4.15) вклю- чало теперь (4.16): Р | 0 1 (0) (2) | г 13 0 2 (4.96) Подобным образом для индексов столбца о. s теперь имеем о 0 1 (0) (2) s 13 0 2 (4.97) В этом и в следующем разделах будем придерживаться тако- го расширенного определения г, s без явного упоминания об этом. Дополним теперь (4.19) — (4.21): F'r^B\, F^B», Fr = Fr + F'r. (4.98) И, наконец, зная, что элемент (г, з) матрицы ДПФ (4.9) — это введем «экспоненциаль- ную» матрицу Е: Ers = (rs) modN, (4.99) которая оказывается очень удоб- ной для учета вклада части, не являющейся лево-циркулянт- ноь. Рис. 4.10. Алгоритм ДПФ поряд- ка 4 115
В данном случае О 2 1 3 t (4.1 < Здесь добавлены оба типа индексов строки и столбца. Проще всего получить Е непосредственно из определения (4.99). Выписы- вая эту матрицу, нужно следить за тем, чтобы незаключенные в скобки индексы р, о следовали в порядке 0, 1, 2, .... Этим мат- рице придается ЛЦ-структура. Последовательность других индек- сов безразлична. Видно, что (4.100), как и следовало ожидать, представляет ЛЦ-подматрицу второго порядка. Используем действие этой под- матрицы вместе со схемой ЛЦП на рис. 4.1, начиная с вычисле- ния Q i £ Г IP 2 Г1 1 «о 2 Следовательно (см. рис. 4.1), а} — 0, а2 = i Q. (4.101) (4.102) Отсюда следует, что только строка р2 дает вклад в формирова- ние F'i. Перепишем ее в строку р3 на рис. 4.10. Выходной вектор F (см. рис. 4.10) оказывается неупорядоченным по своим состав- ляющим. В разд. 4.9 будут показаны преимущества некоторых схемных структур, которые обеспечивают экономию объема па- мяти при реализации алгоритма. Схемы, построенные до этого, имеют и такого рода структуру, и упорядоченную индексацию вы- ходного вектора F. Начиная с этого момента, по-видимому, уже невозможно иметь оба желаемых свойства одновременно. Мы вы- брали структуру, экономящую объем памяти, что представляется более важным, поэтому имеем неупорядоченный выходной вектор. В данном случае закон перемешивания индексов достаточно прост, но при Аг=16 он становится сложным. Для облегчения выкладок введем дополнительный вектор ц в формируемые схемы. Неупоря доченный вектор F идентичен упорядоченному 1] (см. рис. 4.10). Теперь вернемся к реализации оставшейся части матрицы Е (4.100) Fr-F'r = Q(f0-f2)=Qp ) ~6, |(л—1, 3). (4.103) Fr-F'r + 62 ) Здесь использован тот факт, что Ат=4, П’/2 = — 1. Равенства, подоб- ные (4.100), могут быть выведены непосредственно из матрицы Е. 146
Такие равенства будут даваться в дальнейшем без каких-либо комментариев: F2 = (А+/з)1 = ОД)-ЙР1 =б0-61( Ро P, 6„ б," о - й К/о+Л) + (Л+/з)] = й Ро + Q ₽1 = 6о + 6г р» ~р! У« &7 Этим завершается вывод. 4.5.2. ДПФ порядка 9 N = 3-. Следовательно, из (4.12) имеем п = 6. (4.104) Примитивным корнем из 9 является примитивный корень из 3, а именно 2. Это приводит к р 0 1 2 3 4 5 г - 2Р mod 9 1 2 4 8 7 5 Отсюда матрица Е имеет вид s—> -0 3 6 (0) (3) (6 "ООО 0 0 0 0 0 0 1 2 4 8 7 5 10 1 2 3 4 5 0 0 0 0 0 0 " 3 6 3 6 3 6 6 3 6 3 6 3 (0) 0 (3) 3 (6) 6 Е = 0 3 6 0 6 3 0 3 6 0 6 3 0 3 6 0 6 3 1 2 4 8 7 5 2 4 8 7 5 1 4 8 7 5 1 2 8 7 5 1 2 4 7 5 1 2 4 8 5 1 2 4 8 7 ? 2 (4-106> 2 4 3 8 4 7 5 5 t t Р г Поскольку п = Б, здесь применима схема рис. 4.4. Рассмотрим сначала а;. Матрица Е (4.106) отображает последовательность а{ [это согласуется также с (4.76)]. Тогда ~№4 £ W71 6 IT4 .F1 (4.107) 117
£‘W2 Sw1 ^w4 I П w2 Iw1 I , C2 c3 c4 . c5 C6 ' 1 1 Q j Q 1 1 : 1 ' . ' 1 04 “5 1-1 11 1 '"--г- ; Г-) К а7 °8 C^-^COS 20“ c2= cos 40“ sin 10“ c=-i§cos 10* 4 3 Cj«-i^sin 40" c6>-i§ sin 20" *y(sin 10"-cos 20"+cos 40") = 0 = §<sin 10"-cos 40") ; w=-4(a,ta,) = i(sinlO"t2cos2O°+cos40"l =-j (cos 20"+cos 40°) , w3= i(a7-a2) = -1(2 smlO’ + cos 20°-cos 40", 5 (sin 20"-sin40"), <^ = l(a8+ = - -j(2cos 10’ * sin 20’* sin 40’1 =-i§(coslO’ + sin40"); w5=^(a8*a4) = -l(coslO’ + 2sin20°-sm40’, = i2(coslO"-sin 20’-sin 40’) = 0 = -£(sin lO"+cos 20’) ; <*J7*-^(a2ta3)=-l(-sinlO’ + cos2O"+2cos 4O’i =-iy(cos 10’+sin 20’); ajgi l(a6- a4) = --^(coslO’-sin 20’+2 sin 40", Puc. 4.11. Вычисление cm для алгоритма ДПФ порядка 9 Вычисление аг- и <ог- показано на рис. 4.11. Заметим, что в терминологии рис. 4.4, 4.11 ai = a6^0. (4.108) Это означает, что в реализации которая выполняется копиро- ванием рис. 4.4. 4.11 в рис. 4.13, члены, связанные с ai и а6, дол- жны быть отброшены1. При копировании этих рисунков исполь- зуем некоторые перестановки, кроме очевидных перестановок входных и выходных переменных. Эти перестановки расшифро- ваны на рис. 4.12. Заметим, что перестановка gi->gj показана за два последовательных шага: gt-^e,, er+gj- (Например, gi->eg-*- 2 Обратимся к учету оставшейся части матрицы, используя в качестве руководства (4.106). При этом нам встретятся следую- щие константы: ЙГ» = Й(—sin 30°—icos30°)= — fi(4~--i ). Q We = QF - — Q (4- — i 3^1. 1 Рис. 4.13 может создать впечатление, что эти члены не быт:: отброшены. Эю заблуждение, поскольку члены, создающие такое впечатление, добавлены позже. 2 В случае gz-*~e?-+gz отброшены два изменения знака. 118
Индексы (i) рис. п 0 1 2 3 4 5 6 7 8 b^fj 1 2 4 8 7 5 C^Cj 1 4 2 7 5 8 4 2 7 5 9 10 9 4 2 7 5 10 e^0J 3 4 2 7 5 6 5 7 8 4 2 1 Рис. 4.12. Перестановка индексов для формирования рис. 4.13 которые будут применяться в дальнейшем. г=1; 4; 7 ₽о 03 ₽. = Й₽о-^- Q₽3-(-i Хг ЭД,) = V-63-6.. до ч * । । >^.. । !!!_ »• ез еg 6з б4 ’ Л = F'r + <?3—<?6. Воздержимся пока от дальнейшей разработки этого случая и перейдем к следующей группе. г = 2; 8; 5. Этот случай по сравнению с предыдущим требует замены U7' на W6 (=W3). Отсюда Fr=F'r + е3 + е6. С этих позиций обе группы, можно реализовать так, как показано на рис. 4.13. Теперь реализуем F3. F6. Из (4.106) О [(/о + /з + /в) — (“г--!" + + — -(4— ^)(ъ+г*+м]= =- “ ‘ /о ы- (h + /з) ~ К/в + Л) + (/- +/г) + (/& +Л)] -г 1 --- 2. '-' ------' р о (3 з С1 С 2 с 4 +i +(4-л)] J = ся с7 с5 =- ВЬ “ т Q (О + Сг + С4) + i + = fi“ ‘,<’3 (Ц 11 s=
seaesssfiSsssEsssss&sassss&sasssaaMB ыг s - (2 sin 10® ♦ cos 20* - cos 40®); w4 = ^(sin 10® ♦ 2 cos 20® + cos 40®). “a3 'j(eos 10* + 2 sin 20°-sin 40®); w7=-j(2cos 10®+ sin 20®+sin 40®) “»* i(_sin 10е® cos 20® + 2cos40®) uios‘3(cos 10®-sin 20® + 2sin40®) N«9 (ИМ, 44A) Puc. 4.13. Алгоритм ДПФ порядка 9
— (S0 + 2 б3)—( i Q08j — = е0—6Х—68 = е0- Cj eg= gt g8. «1 e, gi g> Обратимся теперь к F&. Единственное отличие здесь состоит в замене W3 на Т/6 (=№3). Отсюда F6 = gi + g8- Наконец, Fo = Q (fo+k + fo) + S2 Pl =£Po +£Рз +£P1 = в0 26, ~2бГ — (So + 2 63) + 2 6j — e0 4- 2 ex = g0. e' Этим завершается вывод. С двумя схемами, разработанными в этом разделе, максималь- ное реализуемое значение N достигает 1260= (4-5-7-Э). Мы увели- чим его до 5040 с помощью схем, рассматриваемых в следующем разделе. 4.6. Базовые алгоритмы ДПФ для N=8, 16 Разрабатывая схемы для Af=8, 16, мы сталкиваемся с затруд- нением, обусловленным тем, что W = 2ft(&>»2) (4.109} не имеет примитивных корней. Другими словами, не существует целое число, степени которого по модулю N порождали бы все нечетные числа из интервала (1, N). Однако одну половину этих чисел можно сгенерировать, используя степени числа 3 по модулю JV, а другую половину — используя отрицательные значения этих степеней по модулю N [4.9]. Таким образом, возникает необходи- мость разбиения {Fr} на 3 подмножества: (В(Г) (г —четное), Fr=|Bp (r = 3pmod?V), (4.110) (В- (r^— 3pmodA/). Как и индексы, заключенные в скобки (i) (см. разд. 4.2), индекс I служит для идентификации подмножества, к которому принадле- жит В— Заметим, что нулевой индекс появляется во всех трех подмножествах: В(0) = Е0, B0 = Ft, B^ = Fn_,. (4.111) Теперь можно заменить (4.14) на r 3pmod;V L о = 0д ,, (4.112) $ 3° mod N I 121
г = — Зр mod N s — 3° mod N Проиллюстрируем это для N = 8 (р, о = О, 1, ..., А/4 — 1). (4.113) p 0 10 1 r = 3P mod 8 r = —3pmod8 13 7 5 (4.114) Равенства (4.15), (4.16) должны теперь читаться как Fr = Bp, fs = b0 (г, s —нечетные), 1 = fs-b(s) (г, s — четные), J гак что общее функциональное соотношение между .V = 8 может быть подытожено следующим образом: (4.115) р для Р о 1 0 1 (0) (2) (4) (6) г 75130 2 46 (4.116) Аналогичная таблица устанавливает соотношение между $ и о. Равенства (4.112) —(4.115) применяются теперь, чтобы исклю- чить Fu, fv из (4.9) (см. анализ аналогичной ситуации в разд. 4.2. учитывая, что здесь р = 2): Л’ 2-1 в(2О = г2/ 2 w^b(2m) + Л74-1 + Q V (F-2t3C&5- + lP^6o)(/ = 0; 1( ... iW2_1)i (4.117) а=о ВР = ВР+ Bp, Fr^= Вр, Fr= B'p (4.118) (г — нечетное), A W2-I B- = Q У W-2m3Pb(2m), m=0 „ N/2— 1 BP = Q У U72m3Pb(2,„) m=0 (p=--0, 1, ... , (V/4-1), (4.119) .V/4—1 пЧ-о BL = Q У (IVZ3pTtI b- + W~3 b0) " Уо N. 1 O-T-G 04-0 в; - q у (Ц7- зр ь- + ьа) o^O ... ,Л//4—1). (P = o, 1,... (4.120) г и 12 2
Очевидно, что все четыре матричные произведения, появляю- щиеся в (4.120), являются преобразованиями Ханкеля (р + сг) по- рядка N/4. Докажем теперь, что они являются также ЛЦ-преоб- разованиями. Для этого надо показать, что [см. (4.6), (4.22) ] 3p+W4-i=3p_i modtf(tf = 2M>2) (4.121) или, что эквивалентно, З^4 = 1 mod W(N = 2\ k > 2). (4.122) Докажем (4.122) индукцией по k. Предположим, что оно истинно для N = n. Тогда 3nl4s==mn +1 (т — целое). Возведение в квадрат дает Зп/2~ (т2п/2) (2п) + т(2п) +1, так что 3(2n)/4= 1 mod(2л) и (4.122) истинно для N = 2п. Наконец, очевидно, что (4.122) ис- тинно для k=3. Таким образом, (4.120) включает в себя четыре произведения ЛЦ-матриц. Кроме того, эти четыре матрицы содержат в себе составную матрицу второго порядка, которая сама является ЛЦ- матрицей. Все эти свойства выявляются совершенно отчетливо в двух случаях, разбираемых ниже. 4.6.1. ДПФ порядка 8 (рис. 4.14) Применяя перестановку (4.116), получим матрицу: s—> 0 4 2 6 7 5 1 3 (0) (4) (2) (6) 0 1 0 1 "0 0 0 0 0 0 0 0" (0) 0 0 0 0 0 4 4 4 4 (4) 4 0 0 4 4 6 2 2 6 (2) 2 0 0 4 4 2 6 6 2 (6) 6 E — 0 4 6 2 1 3 7 5 0 7 (4.123) 0 4 2 6 3 1 5 7 1 5 0 4 2 6 7 5 1 3 0 1 0 4 6 2 5 7 3 1 1 J 3 t t Р f Обратимся теперь к явному представлению подматрицы, соот- ветствующей нижнему правому квадрату Е. Обозначая (4.124) получаем: м м а, а0 -'1 ьа3 iC1! иу5 w7 w7 w.Dw1 w3 -до ау7|ш3 wt (4.125) 123
Рис. 4.14. Алгоритм ДПФ порядка 8 N-8 (8М;26А) Мы видим здесь четыре ЛЦ-подматрицы второго порядка, по две матрицы каждого типа: а0 и di. Используя введенную терминоло- гию. выпишем эквивалентную блочную матрицу второго порядка «1 а0 Ьо (4.126) b _Оо а. /о Заметим, что (4,126) тоже является ЛЦ-матрицей. Оценим (4.126) непосредственно с помощью схемы на рис. 4.1. Здесь приходится прибегнуть к некоторым уточнениям. Все схемы в этой главе раз- рабатывались с неявным предположением о скалярном характере всех появляющихся в них переменных. На самом деле это не яв- ляется необходимым. Таким образом, можно сделать вывод, что зсе схемы справедливы и при такой обобщающей интерпретации: I) строки (столбцы) переменных (Д-, а, р<, 6;, е,, F,-, ...) являются подматрицами-столбцами; 2) а,, агО являются квадратными мат- рицами; 3) (о, остается скалярной константой; 4) входы в схемы Р;*а; = б|, = нужно интерпретировать как матричные произведения1 ctip>i = 6,. (OiQPi = 6j. Непосредственной целью введения такого обобщения является вычисление (4.126). Однако важность его выходит за рамки не- посредственного применения. Это обобщение означает, что наше 1 «Модифицированной интерпретации» можно избежать, если использовать матрицы-строки вместо матриц-столбцов. Заметим в связи с этим, что мы будем рассматривать матрицу Q как симметричную. 124
основное выражение для ДПФ, а именно (4.9), можно теперь интерпретировать как содержащее блочную матрицу ДПФ, т. е. такую матрицу, у которой блок (и, v) является произвольной пос- тоянной матрицей Q, умноженной на скаляр Wuv. К такой блоч- ной матрице ДПФ применимы все уже разработанные схемы, а также две последние, разрабатываемые в этом разделе. Именно это обобщение переносит схемы из сферы теоретических рассуж- дений по поводу быстрых алгоритмов ДПФ очень низких поряд- ков з область быстродействующих алгоритмов ДПФ высоких по- рядков. Конкретный способ применения этого обобщения приведен в следующем разделе. Вернемся к вычислению (4.126). Из рис. 4.1 получаем ь> b, Zi tQ 1 1 1 —1 01 02 *a, = *a2 = «i 62 1 1 — 1 1 . (4.127) Отсюда (обозначая у=1/| 2) 1 я Iя — an — ax 2 2 1 1 ; • (4.128) /4 1 —1 a2 “i = a., 6, П r№7 + Wzl vp + vp W3 W1 ' c c Cl ci. yQ yQ yQ yQ 1 - 1 ' 1 1 Ci _C3 C5 A -1 1 Г 1 — — •H 4 7 7 > ₽2 = = yQ = i yQ f? + /i /5 + /3 . 17-/1 ' /б-/з . -P7 -S* 1 . ‘ 11 11 G"1 cj? o’ ’dT 1 1 1 1 I 11 'i T-Ds ;1 'W7 — W1 W3 — W° — Ws W7— = = i yQ 2 — i 1 —Г Pl’ “Pl. = yQ 1 1 1 1 11 1J ₽7 .07. F'i F' ti =6 L“ -62 = 61—6- ~ -(6,4-6,). - gi P'i — 4= 51 + 6» 6i 4~ 67 — -£i. Fi (61-67) — ?7 Обратимся теперь к оставшимся частям (4.123). г= 1; 5 Fr = F’r + Q [tf0 - Л) + i (/6 - f2) ] = F'r + Q (c4 - i c6) = F'r 4-Q04 = F'r + gi. ct ce (Ц g« r = 3; 7 F,. = F’r + Q (c4 + i ce) = F'r + g6, 17 125
F.- QK/o-HJ-(/2-/g)-i (/W.) + iO)] - -и C2 C7 lB = Й Keo—c2) + i (^57^7)!’ E7 - Q (e2 - i еъ) - Qp6 = g5, F2 Q (e2— i e5) - Qf3, - g2, ₽, ₽, F, = Й ((/o + Zj) + (Ze 3/2) - (4+Л) ~ (/5 + /3)J -= <?O C 2 C1 C 3 ~ — ^2) G-i ~г~ (-3)] = П (e0 63) = ^Рз — g3, fo e., Зз F0 = П (eo + e8) = -Фо - go- Р» Этим завершается вывод. 4.6.2. ДПФ порядка 16 Перестановка определяется таблицей Ок S—» Р I 0 Г 2 3 0 1 2 3 / -_z Зр mod 16 1 3 9 И . (4.129) г — —3pmod 16 15 13 7 5 ?юда получаем следующую матрицу Е: 0 4 X 12 2 6 10 14 15 13 7 5 1 3 9 11 (0) (4) (Х)(12) (2) (6)110)114) б Т 2 3 0 1 2 3 г0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X 0 0 0 0 X X X X 0 0 0 0 12 4 12 4 X X X X 4 12 4 12 0 0 0 0 4 12 4 12 X X X X 12 4 12 4 (0) 0 (4) 4 (X) X (12) 12 Е~ 0 X 0 X 0 S 0 X 0 X 0 X 0 X 0 X 4 12 4 12 12 4 12 4 4 12 4 12 12 4 12 4 14 10 14 10 10 14 10 14 6 2 6 2 2 6 2 6 2 6 2 6 6 2 6 2 10 14 10 14 14 10 14 10 (2) 2 (6) 6 (10) 10 ,М' 14 (4.13< 0 15 Т 13 2 3 5 •0 1 1 3 2 9 3 И т t С г 0 12 8 4 0 4X12 0 12 X 4 0 4X12 14 10 6 2 10 14 2 6 14 10 6 2 10 14 2 6 1 3 9 11 3 9 11 1 9 11 1 3 11 1 3 9 1513 7 5 13 7 515 7 5 15 13 51513 7 0 4 X 12 0 12 X 4 0 4 8 12 0 12 X 4 2 6 10 14 6 2 14 10 2 6 10 14 6 2 14 10 1513 7 5 13 7 5 15 7 5 15 13 5 15 13 7 1 3 9 11 3 9 И 1 9 11 1 3 11 1 3 9. 126
Учитывая сложность случая, будем строить схему в два прие- ма. Составляющая ЛЦ-подматриц F't рассматривается сначала отдельно в промежуточной схеме (рис. 4.15), а затем будет пере- несена в окончательную схему (рис. 4.17). Как и в предыдущем случае, выпишем ЛЦ-часть явно 127
Обработаем (4.132) по схемам (4.127), (4.128). Из (4.128) оче- видно, что си, а2 будут ЛЦ-матрицами. Следовательно, для их вычисления достаточно иметь первые строки. Выразим их через базовый угол 0 = 360716 = 22,5°. (4.133) [Первая строка aj] = Q[cosOsin0—cosO—sinO], (4.134) [Первая строка аг] = i £2 [sin 0 cos 0—sinO — cosO). (4.135) Следующий шаг в (4.127) требует вычисления двух ЛЦ-преоб- разований порядка 4, а именно: б( = агрг (г = 1,2). (4.137) Выберем следующие обозначения для компонент бь 6/0 бп (4.138) б Теперь их можно определить с помощью схемы на рис. 4.2. Реализация 6i = ai0i Исчезновение первых двух множителей в (4.139) означает, что необ- ходима только часть схемы рис. 4.2, включающая строки Рз, ^4, Рз- Эта часть переписывается в строки Ps, р7, Ры на рис. 4.15 (этим объясняются индексы у ы). Заметим, что на рис. 4.15 указаны два альтернативных пути, ведущих от gt к F'r. Верхний путь сейчас можно игнорировать. Предыдущие относились к б,,. Обратимся теперь к бг,-. Реализация б2 = агРг В (4.140) это очень напоминает случай б,. Строки Рз, рл, Рз на рис. 4.2 переписываем теперь в строки Pi3, Pis, р[7 на рис. 4.15. 128
129
Рис. 4.16. Матрица Е для вычисления Fi—F'i Имея di, 62. применим (4.127) для получения t0, как пока- зано в нижней части рис. 4.15. Переход от gi к F'r (см. нижнюю часть рисунка) требует 8 сложений. Верхняя часть реализует то же самое преобразование, только за 4 сложения. Именно этот ва- риант перенесен на рис. 4.17. В идентичности обоих путей можно легко убедиться. Например, в верхней части 77/i = ^7+^i5> но то же самое имеет место и в нижней части. Прослеживание таких соответствий по всем восьми выходам позволяет установить иден- тичность обоих вариантов. Рассмотрим теперь реализацию оставшихся частей (4.130). Для того чтобы подчеркнуть использованные здесь симметрии, на рис. 4.16 в явной форме показана оставшаяся часть матрицы ДПФ с выполненными перестановками. Для удобства эта матрица пред- ставлена здесь в виде суммы двух матриц и выражена через кон- станту у=1//£ (4.141) Теперь определим С14 = /в~~/ 14» С12 —fl f12» С10 = /2 /10, cs — /о- 130
0 (0) 4 (4) в (8) 12 (12) 2 (2) б4* (6) 10 (10) 14 (14) 15. 6 13 I 7 2 5 3 1 0 3 1 9 2 11 3 (0) 0 <4j a (8) 8 (12) 12 'У iy *У '‘У -iy -iy "'У -'У (2) 2 iy iy 'У iy -iy “iy -iy -iy (6) 6 -'У -'У -iy -'У <У •У >У У (10) 10 + -iy "iy -'У -'X 'У iy iy iy (14) 14 У 'Г -iy -iy 0 15 'У >г -iy -'У 1 15 >Г 'Г -•У -*y 2 7 •У 'Г -'г -iy 3 5 -iy -I/ 'У •У 0 1 <У -1Г iy У 1 3 ну iy iy 2 9 -1/ -!Г 1У i/ 3 1 11 для ДПФ порядка 16 1 P 1 r и проведем вывод следующим образом. г=1; 9 F г—Fr — О {(с8—i с12) у [(ci4 ^ю) Н- i (^14 Н- £1о)П = ₽12 «10 «14 — ^Pi2 i (^14 i eio) = ®i2 i ~ $12 310 Sl2 дю = gl2--^10~^12 gl0==^l12, • Fr = Fr + ft12. 610 г = 5; 13 Fr = F'r + (gi» + gio) = F'r + hi0. ^1 0 r = 3; 11 Fr—F"r = Q {(c8 + i c12) + у [(cu— cI0)—i (c14 + c10)]} = $8 £10 £14 = Qpg—i yQ (614 + i eio) = 6g—i = g8—614 = 6, ₽,4 g, 6u gl4 = gs~Sti-h^Fr-F'r + h3. 131
г =7', 15 ^ = F; + (ft+gu) = F;+/iM. Теперь определим co /о 4~ /з> 62 = /2 4" /ю> 64 — /4 4" /12, 6a= fe 4* fu> Si — ^4 — ^4 = (CO-----Cl) и обратимся к группе строк (Г2, F6, Fю, Flt) F2 = gi + Q{—i(c2—ce) + —Ч/-—'' 3« 4“ у 1(С7 4"6i) (®б 4- сз) 4" i (^*15 сэ) 4" i (cis сн)]}= - Si~ i йРв 4- y& (64—63) + i уй (е9 4- 6U) = gt—б6 4- у&р3 4- №16 (18М;74А> Рис. 4.17. Алгоритм ДПФ 132
+ i тОД = g4—g„ + 63 + 6e = (gj—ge) + (g» + g3) = Л4+*s- в, g, g. bt b„ Отмечая на рис. 4.16 столбцы, связанные с каждым из рех gi, входящих в F%, видим, что те же самые gi входят Гю> Fm, но с другими знаками: Ло = (gt—ge)~(ga + g3) = hi—A3, Pe = (gi + ge) + (g9—g8) = A6 + /Ц, X” b, Pu = (gi + ge)—(ge—gi)^he—h9. четы- fl Fe, Наконец, рассмотрим четыре верхние строки Ро — Q [(со + с«) + (с2 + се) + (^7 + ^1) + + (С& + Сз)] — ® Кео + &s) + (^1 + 63)] = рГ-" ₽Г* порядка 16 133
— QP1 — So + fil—go + gj = ^o + ^l> fl(J Cl go fil Йо ^1 . • Fs — hi> Ft — Q {(e0—g2) 4“ i l(Cu> сэ)' (cis ^ii)]} ~ З2 e9 elt = Qp2 ~F i (e9 — eu) = 85 + i Й0п = gz + би = Сг Pii gz Си Л2 £ц = Л2 + gu = h2-}-h11, ftn . -Fi2~h2 Zin. На этом вывод завершается. (Заметим, что размеры схемы на рис. 4.17 накладывают определенные ограничения на обозначения, в частности, и(1)=<о,, p(i)=0i и т. д.) 4.7. Общий алгоритм 1 Теперь у нас, наконец, есть схемы ДПФ всех порядков, пере- численных в (4.3). Объединим их в алгоритм ДПФ порядка и N = П Nk (Nk — взаимно-простые числа). (4.142) k=i Наш метод опирается на идею блочной матрицы ДПФ, введен- ной в последнем разделе. Проиллюстрируем его простым приме- ром. Предположим, мы хотим реализовать ДПФ порядка N= 120 = = 8-15. Можно ли использовать схему восьмого порядка для реше- ния этой задачи? Можно было бы, конечно, рассмотреть исход- ную матрицу ДПФ как блочную матрицу порядка 8 с блоками порядка 15. Однако применение схемы порядка 8 оправдано толь- ко при условии, что эта блочная матрица отображает структуру блочной матрицы ДПФ порядка 8. Простая проверка показывает, что здесь это определенно не так. Тем не менее это обстоятель- ство не отменяет выбранный подход. Мысленно можно переставить элементы во входном и выходном векторах таким образом, чтобы матрица преобразования превратилась в блочную матрицу ДПФ порядка 8. В этом случае, несомненно, можно было бы применить схему порядка 8 (см. рис. 4.14). Однако на этом пути мы очень скоро столкнулись бы с другим препятствием: схема требует вы- числения Пр;, где Q является теперь матрицей порядка 15, входя- щей в качестве блока (0,0) в блочную матрицу ДПФ с перестав- ленными элементами. В схеме необходимо реализовать 8 таких преобразований, при этом для обеспечения высокой вычислитель- ной эффективности алгоритма нам надо избегать прямого умно- 1 Идея, положенная в основу выводов этого раздела, обычно приписывает- ся Гуду |[4.10]. Мы сочли более удобным избежать использования в явном ви- де кронекеровского произведения матриц. 134
жения матриц. Здесь появляется привлекательная возможность: можно предложить дополнительные ограничения на начальную пе- рестановку, так чтобы й превратилась в блочную матрицу ДПФ, укажем, третьего порядка. Если бы такая возможность была, это позволило бы нам использовать преимущества высокой эффектив- ности схемы ДПФ порядка 3 и, таким образом, реализовать ДПФ порядка 120 с помощью схем порядков 8, 3, 5. Обратимся теперь к более точной формулировке упомянутой идеи, начиная с разработки необходимой терминологии. Будем считать, что индексы в (4.142) отражают порядок применения схем. Так, Ni — порядок первой реализуемой схемы, N2 соответ- ствует второй схеме и т. д. В нашем примере x = 3,1Vi = 8,^=3,^=5, ; . N = 120. (4.143) Пусть й0 будет исходной матрицей ДПФ порядка N с пере- ставленными элементами. Если рассматривать ее как блочную матрицу порядка Nh то каждый ее блок будет иметь порядок Vi = N/Ni. Обозначим блок (0,0) через йь Следующий шаг в реа- лизации основывается на рассмотрении Й1 как блочной матрицы ДПФ порядка N2. Ее блок (0,0), обозначенный й2, имеет порядок *2=лч/Л/2 и т. д. Это приводит к следующим определениям: X Vt= п ATft(0<t<x),vx=l. (4.144) fe=i+l Пусть Qo( = T) будет матрицей ДПФ порядка N с перестав- ленными элементами. Тогда й — верхняя левая подматрица по- рядка Vf. Заметим, что (4.144) подразумевает существование по- следовательности таких подматриц: Qo, &i, —, йх- Порядок под- матриц понижается слева направо. й0 слева имеет порядок N и поэтому идентична полной матрице. йх справа имеет порядок 1 и поэтому является верхним левым элементом полной матрицы. Теперь можно сформулировать набор достаточных условий для перестановок элементов, которые позволили бы реализовать упо- мянутую схему: 1. Йо должна быть блочной матрицей порядка JVi, т. е. блоч- ной матрицей, блок (т, п) которой является матрицей йь умно- женной на Wmn, где 1^=ехр(—i2n/Ni) {см. (4.9)]. Это обеспечит реализацию фазы 1 схемы порядка Ni. Фаза 2 требует определе- ния (и,-Й1)р,-. Следовательно, 2. й[ должна быть блочной матрицей ДПФ порядка N2. Мы используем фазу 1 схемы порядка N2 и на фазе 2 приходим к пре- образованию, включающему й2. Следовательно, 3. й2 должна быть блочной матрицей ДПФ порядка N3. k. йх-1 должна быть блочной матрицей ДПФ порядка к. 135
Подведем итоги сказанному. Приемлемой схемой изменения индексов была бы схема, удовлетворяющая следующим требова- ниям: Подматрица матрицы Y должна быть блочной мат- (4.145) рицей ДПФ порядка Nh- Это должно выполняться для всех 1=С/г=Сх. Хотя основанный на предыдущих рассуждениях алгоритм был бы вполне удобен с точки зрения его реализации, однако не ясно, существует ли на самом деле схема изменения индексации, удов- летворяющая одновременно всем х требованиям (4.145). Приступим теперь к разработке схемы изменения индексации, которая быстро приводит к (4.145), лишь незначительно усложняя приведенный выше эскиз алгоритма. Начнем со стандартной мат- рицы ДПФ [см. (4.9) при Q=l] Ги=2’^/Д« = 0, 1.......N— 1). (4.146) V—О Пусть Qm = £«,<7n=A>, (4-147) где u = X(/n), u = A(n) (tn, n — Q, 1, ... ,N— 1), (4.148) а функцию Л еще предстоит определить. Тогда (4.146) преобра- зуется в N—l N—1 Qm-'Z W^^>qn=^ Ymnqn(m = 0,1,... ,g-l). (4.149) n=0 n=0• Функция А, будет определена в терминах модульного представ- ления [4.7] и и V. Другими словами, изменение индексации зави- сит от величин Иъtc mod АД \ /л 1 * . 11 I (k = 1, 2, ..., х). (4.150) vk = v mod Nk j В соответствии с китайской теоремой об остатках [4.7] эти остатки единственным образом определяют любые 0^ (и, v) <N. Следовательно, можно выбрать следующее представление для и, v: « = ....«х) 1 (4151) о = (уъ С'г.vK) J’ 1 Здесь применены обозначения Fu, ft с тем, чтобы отличить их от исполь- зуемых в схемах переменных Fn, f„. 136
V п 3 4 5 6 48 = (0, 0, 3) 24 = (0, 0,4) 40 = (0, 1,0) 16 = (0, 1, 1) Теперь функция X определяется с помощью объединения (4.148), (4.151): v^(vltvit... ,и^) = к(п) (4.152) следующим образом: к(п) должна быть такова, что, когда п пробегает значения О, 1 У—1, vk изменяются, периодически принимая зна- чения из последовательности 0, 1, ..., Nh—1, начиная с vh = Q. vk должно принимать новое значение при каждом увеличе- нии Vk на п [см. (4.144)]. Это означает, что «1 изменяется очень медленно, у2 — быстрее и т. д., вплоть до vH , которое изменяется синхронно с п. Чтобы проиллюстрировать такую перестановку, рассмотрим пример (4.143), для которого часть индексной последовательности будет выглядеть так: Для определения этой последователь- ности с помощью ЭВМ можно воспользо- ваться подпрограммами модулярной ариф- метики. С другой стороны, ее можно по- строить по схеме, не применяя ни ЭВМ, ни какие-либо вычисления. Все, что потребует- ся, — это утомительное переписывание пов- торяющихся последовательностей. Этот ме- тод для примера (4.143) проиллюстрирован в табл. 4.2, 4.3. Сначала выпишем последо- вательность 0, 1, ..., N—1, как показано в табл. 4.2 в колонке для v. Затем из колон- ки для vk выпишем повторение последова- тельности 0, 1, ..., Nk—1 и повторим это для всех Так получаем представление (4.151) для всех v. Частичное упорядоче- ние табл. 4.2 экономит усилия и удобно для выполнения следующего шага, который является просто переупорядочением табл. 4.2 в требуемую после- довательность. Чтобы упростить процесс, используем табл. 4.2 для определе- ния порядка, в котором заполняется табл. 4.3. Например, первыми значениями v, копируемыми табл. 4.2 в табл. 4.3, являются 6,40,80,8,48,88,16,56, ... Табл. 4.3 теперь задает последовательность индексов у входного вектора с переставленными элементами для (4.143), а именно: fot /эв’ "• > Ло4> /х05> ••• > /в»> /э0> — > f 119- Чтобы облегчить анализ выбранного способа перестановки, введем Е — экспоненциальную матрицу У. Вспомним, что из (4.149) вытекает Ymn = W^^. (4.153) 137 62 63 64 65 66 12 = (4,0, 2) 108= (4, 0,3) 84 =(4,0, 4) 100= (4, 1,0) 76= (4, 1, 1)
Таблица 4.2 Модулярное представление и в примере (4.143) Nt=8, Ni=3, Ns — 5 Г, Г г2 г Г 2 ‘j Г Г 2 Гд Г г. Г Г 2 Г» О О 0 0 8 2 3 16 1 1 24 0 4 32 э 2 1 1 1 1 9 0 4 17 2 2 25 1 0 33 О 3 2 2 2 2 10 1 0 18 0 'з 26 > 1 34 1 4 Я 3 0 3 11 2 1 19 1 4 -27 0 *> 35 э 0 4 4 1 4 12 б 2 20 2 0 28 1 3 36 0 1 5 5 2 0 13 1 3 21 0 1 29 2 4 37 1 6 6 0 1 14 2 4 22 1 2 30 0 0 38 2 7 7 1 2 15 0 0 23 2 3 31 1 1 39 0 4 0 40 1 0 48 0 3 56 2 I 64 1 4 72 0 1 1 41 2 1 49 1 4 57 0 2 65 2 0 •73 1 2 42 0 2 50 2 0 58 1 3 66 0 1 74 2 4 3 43 1 3 51 0 1 59- 2 4 67 1 2 75' 0 0 4 44 2 4 52 1 2 60 0 0 68 2 3 76 1 ) 5 45 0 0 53 2 3 61 1 1 69 0 4 77 2 6 46 1 1 54 0 4 62 2 2 70 1 0 78 0 3 7 47 -> 2 55 1 0 63 0 3 71 7 1 79 1 4 0 80 2 0 88 1 3 96 0 1 104 т 4 112 1 ч 1 81 0 1 89 2 4 97 1 2 105 0 0 113 2 82 1 2 90 0 0 98 2 3 106 1 1 114 0 4 3 83 2 3 91 1 1 99 0 4 107 2 2 115 1 0 4 84 0 4 92 2 2 100 1 0 108 0 3 116 2 1 5 85 1 0 93 0 3 101 2 1 109 1 4 117 О т 6 86 2 1 94 1 4 102 0 2 НО э 0 118 1 5 7 87 0 2 95 2 0 103 1 3 111 0 1 119 2 4 Отсюда определяем экспоненциальную матрицу Е следующим образом: £mn = X (/п)Л(п) = иу. (4.154) Обозначим Ek как верхние левые подматрицы порядка v& матри- цы Е, подобно тому как выделялись подматрицы Qft из Y. Рассмотрим теперь распределение аргументов «д, Vk в Ek-i- Перестановка определяет, что uk должно увеличиваться на еди- ницу в каждых Vk строках, начиная с нулевого значения в верх- нем левом углу. Подобным образом Vk должно увеличиваться на единицу в каждых Vk столбцах. Это, в свою очередь, определяет разбиение ед-i на подматрицы порядка Vk. Матрица еь-i может рассматриваться теперь как блочная матрица порядка Nk(=Vk-ilvk), блок (г, s) которой характеризуется uh = r, uft = s. (4.155) Очевидно, что блок (0,0) этой блочной матрицы идентичен ед. Выберем элемент в произвольной позиции в ед. Его индексы бу- дут иметь вид 138
Таблица 4.3 Изменение индексации для примера (4.143) п через v=(vi, v2, v3) 1’1 г2 ( 0 1 2 3 4 5 6 7 0 105 90 75 60 45 30 15 0 0 96 81 66 51 36 21 6 111 0 I 72 57 42 27 12 117 102 87 0 5 48 33 18 3 108 93 78 63 0 3 24 9 114 99 84 69 54 39 0 4 40 25 10 115 100 85 70 55 1 0 16 1 106 91 76 61 46 31 1 1 112 97 82 67 52 37 22 7 1 2 88 73 58 43 28 13 118 103 1 3 64 49 34 19 4 109 94 79 1 4 80 65 50 35 20 5 ПО 95 . 2 0 56 41 26 11 116 101 86 71 "> 1 32 17 7 107 92 77 62 47 2 2 8 113 98 83 68 53 38 23 2 3 104 89 74 59 44 29 14 119 2 4 и = (0, ... , О, Uk+1, Uk+i, ... , Ых), и = (О,..., О.Рь-ы, vk+i,..., vH). (4.156) Выбранная схема перестановки гарантирует, что все скалярные элементы матрицы ел—i, занимающие те же самые позиции в дру- гих блоках ей—1, имеют vt, которые отличаются от (4.156) только в Uk, v:t и удовлетворяют (4.155). Это означает, что раз- ность между элементами в блоке (г, s) матрицы е/г < и соответ- ствующим элементом в е/; [блок (0,0)] равна {[4.7], (4.154)} A£(r,s) = (0,...,0, rs mod Nk, 0, ... , 0). (4.157) k-я позиция Важно отметить, что эта разность не зависит от конкретного общего расположения двух парных элементов в их соответствую- щих блоках. Следовательно, она постоянна для всего блока (г, s). Другими словами, блок (г, s) из Eh--i может быть получен из еь просто добавлением константы ДЕ (г, s) ко всем его элементам. Нам нужно явное выражение для этой важно?! константы. Учи- тывая неявную ее формулировку (4.157), приходим к выводу, что константа должна быть целым числом, кратным nh, где (4.158) *=i Nt 139
А именно, мы должны иметь Д Е (г, s) = т] (г, s) nh, (4.159) где целое q удовлетворяет r\<Nk, nkr\—rss= 0 (mod Л\). (4.160) (4.161) Соотношение (4.161) является линейным однородным относитель- но неизвестного т] и имеет решение [4.8], а именно: г| = (rs') mod Nk, (4.162) где1 * * 1 S' = (sSft)mod^,U = nft modtf*. (4.163) (4.164) Результат, установленный для подматриц ел-i, распространяет- ся на подматрицы Qft-i следующим образом: блок (г, s) матри- цы Qfc-i представляет собой s>Qft. Используя (4.159), нахо- дим: ^ДЕ(г,о=ехр .2л, ,1 —1 77—'rl(r’ s) • Nh J (4.165) Обозначим "?‘=exp(-,sr)’ (4.166) тогда VfZA£(r.s) ==^<r>s), (4.167) так что блок (г, s) блочной матрицы Qft—i порядка Nh представ- ляет собой rF’s) = №('s')mod = Wrks' Это очень напоминает блок (г, s) блочной матрицы ДПФ (4.9) порядка Nh с Q = Qfc. Единственная разница состоит в том, что s заменено на s'. Эта, однако, тривиальная разница сводится толь- ко в перестановке столбцов. Для доказательства достаточно по- казать, что существует однозначное соответствие между s и s', так что когда s пробегает значения 0, 1, ..., Nh—1, s' пробегает те же значения в переставленном порядке. А это, несомненно, так, если в (4.163) и Nh — взаимно-простые. Но это гарантируется (4.164), поскольку tth и Nh — взаимно-простые [см. (4.158)]. Отсюда можно сделать вывод, что тривиальная модификация схемы ДПФ порядка Nh позволит найти преобразование, опреде- ляемое матрицей А именно, мы модифицируем входной квадрат схемы Nh перестановкой строк/столбцов ft так, чтобы по- следовательность i была идентична последовательности s' (вмес- то последовательности натуральных чисел s в немодифицирован- ной схеме). Назовем такую схему «модифицированной схемой» и 1 ф(п) —это тотиентная функция Эйлера, которая определяется как коли' чество целых чисел, взаимно-простых спи меньших, чем л. 1(40
будем с этого момента 'использовать этот термин только в этом ограниченном точном значении. Проиллюстрируем модификацию схемы для k=l в примере (4.143): = 15, <р (NJ = <р (8) = 4, = 15«-i mod 8 = (— 1)» mod 8 = 7. Следовательно, S 0 1 2 3 4 5 6 7 s' = (7s) mod 8 0 7 6 5 4 3 2 1 (4.168); Модифицированный входной квадрат, который требуется для (4.168), показан на рис. 4.18. Заметим, что в этом случае моди- фикация заключается только в изменениях знака. Установленный результат можно сформулировать так: Подматрица fis-i из У является результатом пере- 'j становки столбцов в блочной матрице ДПФ порядка } (4.169) (4.9) с Q = Qfe. Это справедливо для всех J Отличие от (4.145) состоит в перестановке столбцов. Но, как уже отмечалось, это означает только то, что в алгоритме порядка N (4.142) стандартные схемы должны быть заменены на модифи- цированные. В этом и заключаются незначительные усложнения, о которых упоминалось выше. Рис. 4.18. Входной квадрат модифицированной схемы восьмого порядка для при- мера (4.143) Рис. 4.19. Схематическое представление базовых схем ДПФ 141
В заключение приведем важную графическую схему общего алгоритма. Она основывается на символическом представлении схем, показанном на рис. 4.19. Для словесной формулировки бу- дем 'использовать понятия обобщенных блочных матриц. Пусть схемные переменные fi, 0,, di, 1\, ... представляют m-мерные век- торы. Тогда схема порядка N применима к любому матричному преобразованию порядка mN, в котором матрица преобразования У, рассматриваемая как блочная матрица порядка N, является матрицей ДПФ порядка N (4.9). В этом случае параметр схемы Q — верхняя левая подматрица матрицы У, имеющая порядок т. Изучение схем показывает, что все они состоят из трех час- тей, соответствующих трем различным фазам алгоритмов, которые ими описываются. На первой фазе обрабатывается тМ-мерный входной вектор [, чтобы получить m-мерные векторы р,-. На вто- рой фазе матрица Q, умноженная на скаляр, преобразует р,- в дг в соответствии с (4.86) [£г= (<BiQ)P;, i=0, 1, ..., М—I]1. Л4 — это число умножений, определяемое назначением схемы. Очевидно, это также число векторов р,, построенных на фазе /. И, наконец, на фазе 3 для получения mM-мерного выходного вектора F обра- батываются m-мерные векторы д,. Три фазы представлены схе- матично на рис. 4.19 со следующими обозначениями. Все линии отображают векторы. С каждой линией связано целое число, по- казывающее размерность вектора, представляемого этой линией (рис. 4.20). Фаза 1 обозначается кружком, фаза 3— квадратом. В каждом случае символ внутри фигуры обозначает матрицу, оп- ределяющую преобразования очерченного кругом входа в очер- ченный квадратом выход. Заметим, что единственными арифме- тическими операциями, включенными внутрь кружка или квад- рата, являются сложения или вычитания. Общий алгоритм приведен на рис. 4.20. Здесь показан кон- кретный пример для х = 3, Л^ = 3, N.-=2, Ns = 5, N = 30. (4.170) Модификация для любого другого случая выполняется совсем просто, как это будет показано позже. Первый шаг алгоритма — перестановка элементов входного вектора f, порождающая век- тор q. Это действие и соответствующая перестановка вектора F преобразуют матрицу ДПФ в матрицу У из (4.153). Теперь мат- рица У разбивается так, как показано на рис. 4.21 (указанные «размеры» относятся к числу строк и столбцов). На следующем шаге У( = £2о) рассматривается как блочная матрица третьего по- рядка (Л/) = 3) и используется модифицированная схема ДПФ третьего порядка со значением Q на схеме, тождественно равным Qi на рис. 4.21. Фаза / показана в верхней части рис. 4.20 (Qo в кружке), фаза 3 — в нижней части (Qo в квадрате), а фаза 2 — на остальной части рисунка между ними. На фазе 1 требуется 1 Для большинства значений i, но не для всех, = Например, из схемы для N=5 следует, что ?о = /?о, 6i = 5i + 5o- 142
Рис. 4.20. Алгоритм ДПФ порядка 30 [пример (4.170)] ё
Таблица 4.4 Множители схемы ДПФ (co^.w) \* 2 3 4 5 7 * 8 9 16 0 1 1 1 1 1 1 1 1 1 1 - 1,5 1 - 1,25 - 1,1666667Е-0 7.O71O678E-1 0,5 1 2 3 4 3 4 7 ( • № II 12 13 14 13. 14 17 il,M02540E-t 1 - 5(5901699Е-1 i il,5388418E-O -13,6327126Е -1 -i5,8778525E -1 5.5854267Е-2 7343О22ОЕ -1 - 18.7484229Е -1 - i5,3396936Е - I - i4,4O95855E -1 7,9O15647E-l —13,4О87293Е-1 1 - I.7364818E-1 1 0,5 1 9,3969262E-1 1 - i3,4202014E-1 1 - i8,6602540E -1 •i7,O7!O678E-l -i9,848O775E - I — i8,66O254OE -1 7,66O4444E - [ - 16.4278761E -1 1 7,O71O678E-l 1. - !,3065630E-0 5.4I196I0E-I 1 i7,O71O678E- 1 17,071O678E-1 1 — i 1,30656ЗОЕ-0 i7,O71O678E- 1 - i5,41196I0E-1 3,8268343E-l i9,2387953E- I Примечание. Числа, представленные тремя или менее значащими цифрами, явля- ется точными. Все остальные числа представлены в формате-Е Фортрана (3,4Е—l=3,4X10-4. разделение входного вектора на три его «компоненты». Это де- лается следующим очевидным образом: Яо LftJ Яю Я19- Яго f2= : 4729. (4.171) Выходом фазы 1 являются три вектора р, размерности 10. Пе- ред тем как перейти к рассмотрению фазы 2, необходимо ввести обобщенные обозначения, которые используются для о,. Величи- ны ©г в схеме ДПФ порядка N будут обозначаться как х (o)iN, которые также появляются на рис. 4.20, будут определены Рис. 4.21. Разбиение матрицы У для примера (4.170) позже). Эти константы или явно указаны на схемах, или выводятся из условия, что каждое Рг умножа- ется на (©гЙ). Например, на схеме ДПФ порядка 5 явно указано, что <01,5 = —5/4. Очевидно, что мо,5=1. Для удобства все значения сведе- ны в табл. 4.4. Эти значения вычис- лены на 10-разрядном калькулято- ре. Более точные значения можно получить, используя явные выраже- ния, указанные в схемах. Возвращаясь к рис. 4.20, об- наруживаем, что на фазе 2 схемы 144
третьего порядка требуется вычислить gi= (ш4зЙ1)₽». Здесь мы снова применяем результат (4.169), из которого вытекает, что для k = 2 преобразование (шг-3Й1)Рг может быть вычислено с помощью модифицированной схемы ДПФ второго порядка [со схемным зна- чением Q, идентифицируемым как ((oi3Q2), см. рис. 4.21]. Поэтому каждый из трех 10-мерных векторов рг показан на рис. 4.20 как вход первой фазы схемы второго порядка. В каждом из этих трех применений схемы второго порядка фаза 1 порождает пару век- торов размерности 5. Рассмотрим теперь самый левый пятимер- ный вектор р на рис. 4.20. Он порожден фазой 1 схемы, реали- зующей преобразование, в основе которого лежит матрица (к>озП1)- Поэтому фаза 2 требует его преобразования с помощью матрицы 0)02(003^2). На рис. 4.20 вместо этого указана матрица ЮогПг- Здесь мы придерживаемся несколько необычной термино- логии: Oij = Wi3- * (первый множитель Па, встречающийся при движении против стрелок в верхней половине рис. 4.20). (4.172) Таким образом, ац определена только по отношению к кон- кретной диаграмме. Кроме того, тот же самый символ может иметь разные численные значения при разных расположениях на диаграмме. Например, мы только что видели (см. рис. 4.20), что на крайнем слева месте (0о2=<|)о2«оз- Этот же символ появляется еще два раза правее. В первом случае он равен <в02<»1з, во вто- ром — (O02®23- Вернемся к основному предмету наших рассуждений. Каждый из пятимерных векторов р теперь должен быть входом модифи- цированной схемы ДПФ порядка 5. На этот раз «векторы» (5, полученные на фазе /, имеют размерность 1, т. е. фактически явля- ются скалярами. Они должны умножаться на (1)15^3=0)15 (Q3— это скалярная 1). В этой точке фактически и выполняются умно- жения, и необходимо иметь численные значения множителей. Эти значения очевидны. Рассмотрим, например, самый левый множи- тель на рис. 4.20: ®05 = ®05 ®02 = ®05 ®02 ®03 ’ Подобным образом самый правый множитель на рис. 4.20 равен = ®55 ®12 ~ ®55 ®12 ®23> и вообще значение множителя в конкретном узле является произ- ведением всех членов o)tJ- (без значка «Л»), которые встречаются при движении по древовидной структуре вверх от рассматривае- мого узла. На рис. 4.20 эти умножения показаны в форме полукруга и полуквадрата, расположенных вдоль средней линии схемы. (Их 145
можно рассматривать как объединенные три фазы алгоритма ДПФ ПОрЯДКа 1 При S2 = (Oi5-) Получаемые после умножения 36 членов образуют 6 независи- мых групп, являющихся результатом шести отдельных применений модифицированной схемы порядка 5. Члены каждой группы объе- диняются теперь в соответствии с предписаниями фазы 3 схемы пятого порядка для получения шести векторов размерности 5. Каждый из них является членом вида требующим для за- вершения вычислений в трех применениях схемы второго порядка. Эти вычисления порождают теперь в качестве выходов схемы три вектора размерности 10, которые идентичны <Вгз^1Рг для схемы третьего порядка. Объединение их в соответствии с предписания- ми фазы 3 этой схемы порождают 30-мерный вектор Q, который с точностью до перестановки является нужным нам вектором Р. Хотя рис. 4.20 непосредственно применим только к примеру (4.170), он достаточно характерен и для всех значений N. Для больших М может появиться еще один уровень ветвления в каж- дой половине схемы, а число ответвлений от каждого узла мо- жет увеличиться. Но общая структура идентична показанной на рис. 4.20. 4.8 Оценка быстродействия В разд. 4.4—4.6 мы построили базовые схемы ДПФ; в разд. 4.7 показали, как их использовать в эффективном алгоритме для не- которых значений N. В этом разделе нашей целью являются оп- ределение того, насколько быстрым является результирующий ал- горитм, и получение сводной таблицы 4.6 соответствующих пара- метров для всех порядков, реализуемых с помощью сконструи- рованных -схем. В качестве основы будем использовать табл. 4.5, в которую сведены параметры разработанных схем. Все парамет- ры ранее были полностью объяснены и указаны на изображении каждой схемы. Таблица 4.5 Сводка параметров основных схем ДПФ Порядок схемы Общее число умножений м Число умно- жений на 1 или на i зп Число сложений А Рисунок схе м ы 2 2 2 2 4.9 3 3 1 6 4.5 4 4 4 8 4.10 5 6 1 17 4.6 7 9 1 36 4.8 8 8 6 26 4.14 9 11 1 44 4.13 16 18 8 74 4.17 146
Рассмотрим алгоритм порядка N= П Nh, применяемый к ком- плексным данным Для каждого Nk из табл. 4.5 выбираются со- ответствующее число комплексных умножений Mh и комплексных (сложений А1;. Нас интересуют две функции этих переменных — общее число вещественных умножений и общее число вещест- венных сложений з4- для всего алгоритма, реализованного в по- рядке, предусмотренном (4.142) (фаза 1 схемы Ni реализуется первой; фаза 1 схемы N„— последней). Теперь обратимся к ма- тематической формулировке некоторых характеристик алгоритма, структура которого совершенно очевидна из рис. 4.20. Заметим, что выходом фазы / схемы Л7, является множество из Л1] векторов ((3t) размерности vj. Каждый из них порождает (на выходе фазы / схемы N2) М2 векторов размерности v2 и т. д. Очевидно поэтому, что Общий выход фазы / всех схем порядка N/t состоит) k > (4.1 /о) из П Mi векторов размерности v* (4.144). J 1=1 Поскольку каждый из этих векторов поступает на вход фазы 1 схемы Nk+i, указанное в (4.173) число определяет также число схем порядка Уд+ь или, что эквивалентно, k—1 Число схем порядка Nh равно П Mi. (4.174) i=i Простейшим применением полученных результатов является определение числа умножений. Пусть Л* — общее число (комп- лексных) скалярных умножений на фазе 2 алгоритма, реализо- ванного в виде каскада из х ступеней. Перемножаемые перемен- ные являются одномерными векторами (3,, полученными на пос- ледней ступени каскада (N и). Из (4.173) известно, что существует X П Mi таких членов. Следовательно, (4.175) гл Чтобы получить общее число вещественных умножений (_#) на весь каскад, отметим, что в каждом из учитываемых умножений только один из двух сомножителей является комплексным, а дру- гой— вещественным или мнимым (см. табл. 4.4). Поэтому = 2 Л х. (4.176) В разд. 4.7 показано, что каждый из полных множителей кас- када является произведением х схемных множителей, по одному из каждой схемы каскада. Поскольку каждая схема имеет по крайней мере один множитель, значение которого равно 1 или i 1 Определение числа арифметических операций для вещественных данных является более сложным и будет лишь кратко рассмотрено позже. 147
(см. т^1 в табл. 4.5), некоторые из полных множителей бу- дут 1 или i. Рассмотрение структуры рис. 4.20 показывает, что число таких множителей1 Ри=Птг. (4.177) i=l Поэтому, если пойти на более сложное программирование, позво- ляющее выделить эти тривиальных множителей, ДПФ можно будет вычислить с меньшим числом вещественных умножений о# = 2(^х—Рх)- (4.178) В итоговую табл. 4.6 включены оба случая [(4.176), (4.178)]2. Обратимся теперь к подсчету числа сложений. Пусть <s$x будет общим числом (комплексных) скалярных сложений в последова- тельности из х ступеней. Тогда соответствующее число веществен- ных сложений ^ = 2ЛХ- (4.179) Простейший способ определения з4- состоит в использовании рекурсивных рассуждений. Предположим, что известен результат для последовательности длиной (х—1), и мы добавляем еще од- ну х-ю ступень. Отсюда вытекают два обстоятельства. Во-первых, сложения на первых (х—-1) ступенях относятся теперь к векто- рам, размерность которых в ЛГХ раз больше их предшествующих значений. Следовательно, предыдущие з^х_1 сложений превраща- ются в сложений. К этому необходимо прибавить число сложений на последней ступени. Из (4.174) число схем на послед- X—1 ней ступени равно П Мг = Л^-\ (4.175). Каждая такая схема 1—1 требует Дх сложений скалярных величин. Следовательно, число скалярных сложений на последней ступени равно ^#x-i^x, а об- щее число <Дх = Л%—1 Nх ©$х—j Дх, | <г#х = ^х-1 Мх, ' (4.180) = Дх, — Л4Г J Здесь для получения полной системы правил последовательного вычисления з$х и Лх добавлено выражение (4.176) в рекурсив- 1 Все допустимые значения N выражаются как N=H-2T (Н — нечетное, 0гСг^4). Используя это и значения тг, перечисленные в табл. 4.5, получаем Рх—2г+6о,г. 2 Могут возразить, что в двоичной машине умножение на 1/2 также явля- ется тривиальным и должно исключаться из подсчета числа умножений. Если придерживаться такой точки зрения, то схема порядка 9 будет иметь 3 триви- альных умножения (zn=3). Это обстоятельство будет достаточно существенным для #=144, снижая Л с 380 (см, табл. 4.6) до 348. 148
Таблица 4.6 Сводка характеристик алгоритма ДПФ 4 t t учетом умножении на 1 и 1 без учета умножении на i и t число Вещест - ] Венных сло- жений Последовательность реализации схем Nk выигрыш в ско- рости как функция па- раметров ппнэж -OHktfi хпн \ -naguinafn -эд oin/ifi выигрыш О ско- рости как функция па- раметров . Я+ 1-5 б(я)-б, — я + к Число ве- ще стаем - ны* умно- жении G{& = G А*ч- я + л k к G, Л .# С. К я d 1 2 3 4 12 3 4 *• 2 1,000 1,000 4 - 0 4 2d) 3 1,585 2,000 6 2,377 3,000 4 12 3(1) * 4 2,000 2,000 8 - 0 16 4(1) 5 1,935 2,833 12 2,322 3,400 10 34 5(1) 6 2,585 3,000 12 3,877 4,500 8 36 3(2) 2(1) 2(1) 3(2) 7 2,183 4,000 18 2,456 4,500 16 72 7(1) * 8 зроо 3.250 16 12,000 13,000 4 52 8(1) 9 2,594 4,000 ЧТ 2,853 4,400 20 88 9(1) 10 2,768 3,667 24 3,322 4,400 20 88 2(1) 5(3) 12 3,585 4,000 24 5,377 6.000 16 96 3(1) 4(3) 4(3) 3(1) 14 2,961 4,778 36 3,331 5,375 V 172 2(1) 7(4) 15 3,256 4,500 36 3.447 4,765 34 162 3(2) 5(2) 416 3,556 4,111 36 6.400 7,400 20 148 16(1) 18 3,412 4,818 44 3.753 5,300 40 212 2(1) 9(5) 20 3,602 4,500 48 4,322 5,400 40 216 4(1) 5(4) 21 3,416 5,556 54 3,548 5,769 52 300 3(>) 7(5) 24 4,585 5,250 48 6,113 7,000 36 252 3(2) 8(3) 8(3) 3(2) 28 3,739 5,556 72 4,206 6,250 64 400 4(3) 7(2) «30 4,089 5,333 72 4,330 5,647 68 384 3(1) 2(1) 5(1) 2(1) 3(1) 5(1> *35 3,325 6,167 108 3,387 6,283 106 666 7(3) 5(3) 36 4;23О 5,636 88 4,653 6,200 80 496 4(1) 9(7) 40 4,435 5,542 96 5.069 6,333 84 532 8(5) 5(2) 42 4,194 6,333 108 4,355 6,577 104 684 3(2) 2(1) 7(6) 2(1) 3(2) 7(6> 45 3,744 6.167 132 3,802 6,262 130 814 9(2) 5(4) 48 4,964 5.889 108 5,828 6,913 92 636 3(1) 16(11) 56 4,517 6.528 144 4,927 7,121 132 940 8(7) 7(1) 60 4,922 6,167 144 5,212 6,529 136 888 3(2) 4(3) 5(3) 4(3) 3(2) 5(3) -63 3,804 7,111 198 3,843 7,184 196 1 408 9(4) 7(4) *70 3,973 6,815 216 4,048 6,943 212 1 472 2(1) 7(5) 5(4) 72 5,048 6,659 176 5,417 7,146 164 1 172 8(1) 9(8) 80 4,683 6,259 216 5,058 6,760 200 1 352 16(13) 5(1) 84 4,972 7,111 216 5.163 7,385 208 1 536 3(1) 4(1) 7(3) 4(1) .3(1) 7(3) 90 4,426 6,848 264 4,494 6,954 260 1 808 2(1) 9(1) 5(2) 105 4,352 7,463 324 4,379 7,509 322 2418 3(2) 7(1) 5(1) 112 4,706 7,198 324 4,951 7,571 308 2 332 16(7) 7(4) 120 5,756 7,208 288 6,006 7,522 276 2 076 3(1) 8(7) 5(4) 8(7) 3(1) 5(4) *126 4,440 7,747 396 4,485 7,827 392 3 068 2(1) 9(2) 7(2) •140 4,621 7,463 432 4,708 7,604 424 3 224 4(3) 7(6) 5(2) 144 5,214 7,364 396 5,434 7,674 380 29Г6 16(9) 9(4) 168 5,750 8,083 432 5,914 8,314 420 3 492 3(2) 8(5) 7(5) 8(5) 3(2) 7(5) 180 5,(08 7,530 528 5,187 7,646 520 3 976 4(1) 9(5) 5(1) 210 5,000 8,111 648 5,031 8,161 644 5 256 3(1) 2(1) 7(4) 5(3) 2(1) 3(1) 7(4) 5(3| 340 5,857 7,741 648 6,005 7,937 632 5016 3(2) 16(15) 5(2) -252 5,076 8,384 792 5,128 8,469 784 6 640 4(3) 9(1) 7(1) *280 5,269 8,273 864 5,343 8,390 852 7 148 8(3) 7(3) 5(1) 315 4,401 8,759 1,188 4,409 8,774 1 186 10 406 9(8) 7(5) 5(2) азе 5,802 8.580 972 5,899 8,724 956 8 340 3(1) 16(13) 7(6) 360 5,790 8,383' 1.056 5.856 8,479 1 044 8 852 8(5) 9(7) 5(3) 420 5,648 8,759 1.296 5,683 8,814 1 288 И 352 3(2) 4(1) 7(2) 5(4) 4(1) 3(2) 7(2) 5(4) •304 5,7| 3 9,179 1.584 5.756 9,249 1 572 14 540 8(7) 9(5) 7(4) ►560 5,260 8,831 1.944 5.303 8,905 1928 17 16'8 16(11) 7(5) 5(3) 630 4,931 9,290 2.376 4,940 9,305 2 372 22072 2(1) 9(4) 7(6) 5(1) 720 5,753 8,970 2.376 5,792 9,031 2 360 21 312 16(5) 9(8) 5(4) 140 6,296 9,569 2.592 6,326 9,614 2 580 24 804 3(1) 8(1) 7(1) 5(2) 8(1) 3(1) 7(1) 5(2) «08 5,644 9,727 3.564 5,669 9,771 3 548 34 668 16(15) 9(7) 7(2| 1360 5,462 9,820 4.752 5,471 9,836 4 744 46 664 4(3) 912) 7(3) 5(3) 6X0 6,173 9,984 5.832 6,190 10,011 5 816 58 224 3(2) 16(9) 7(4) 5(1) 2320 5,992 10,483 9.504 6,000 10,496 9492 99 628 8(3) 911) 7(5) 5(4) 3940 5,7М 10,939 21.384 5,802 10,948 21 368 233 928 16(3) 9(5) 716) 5(2)
ном представлении и определены начальные условия. Выражение (4.180) дает также явную формулу для Например, Лц = Аг N2N3Nt + M1A2NaNi + + Л4Х M2 А3 N^~\“ Л41М2 М3 Л4. (4.181) Важным и очевидным следствием (4.181) является то, что в отличие от Л-л является также функцией порядка, в котором входят в N. Поэтому важно найти порядок следования каскадов, минимизирующий Имея в своем распоряжении (4.175)—(4.180) и табл. 4.5, мо- жем вычислить .sT- и для всех N, удовлетворяющих (4.142). В табл. 4.6 представлены результаты таких вычислений, выпол- ненных с помощью простой программы, которая позволяет также получить данные для выбора наиболее эффективного варианта порядка следования каскадов. Эта последовательность Nh пока- зана в последних столбцах табл. 4.6. Здесь в таблице оставлено место для двух последовательностей, так как в некоторых случаях одни и те же значения Л и Л получаются для двух разных по- следовательностей Nh. В таких случаях окончательный выбор оп- ределяется не эффективностью, а другими соображениями. Справа от каждого значения Nh стоит число в скобках — зна- чение ^h из (4.163). Таким образом, табл. 4.6 дает и последова- тельность схем, которая должна быть реализована, и перестанов- ку, которую надо выполнить во входном квадрате каждой схемы [см. рассуждения, предшествующие (4.168)]. Заметим, что очень важно придерживаться порядка, предпи- санного табл. 4.6. Например, для Af=240 таблица определяет зна- чение 3^ = 5016 с предписываемым порядком 3; 16; 5. Если вместо этого выбрать порядок 5; 16; 3, то число вещественных сложений возрастает до 5592, т. е. на 11%. Обратимся теперь к двум оставшимся столбцам табл. 4.6, а именно, Goo и R. Оба параметра уже упоминались в разд. 4.1. Они требуются для определения выигрыша в скорости в конкрет- ной системе. Пусть время одного вещественного умножения Ц = --------------------:------- время одного вещественного сложения в рассматриваемой системе. Определим выигрыш G данного алго- ритма по сравнению с алгоритмом Кули—Тьюки: G _MyfKT+jAcr-, (4182) LI М + 7 где .<кт, — параметры Кули—Тьюки, введенные в (4.1). Оче- видно, что G — это отношение времени, требующегося для алго- ритма Кули—Тьюки, к времени, которое необходимо для алгорит- ма Винограда. Будем называть его выигрышем в скорости, хотя 160
следует принимать во внимание, что он отражает только время, занимаемое арифметическими вычислениями. Поэтому этот пока- затель не отражает большей сложности алгоритма Винограда, которая замедляет выполнение его на универсальной ЭВМ. Одна- ко, когда рассматривается специализированный ДПФ-процессор, эта оценка выигрыша в скорости весьма правдоподобна. G — функция ц и еще четырех параметров, появляющихся в (4.182). Более удобной формулой, содержащей только два пара- метра [см. (4.1)], является выражение G(p) = Goe(p+l,5)/(p + /?), (4.183) где (4.184) /? = .+М, (4.185) Goo — это асимптотический выигрыш в скорости, который дости- гается при больших значениях ц; /? является полюсом функции G(p) при (р=—/?) и поэтому определяет вторую асимптоту. До- бавление к этим двум параметрам нуля функций G(ji) при р= =—1,5 позволяет легко представить себе вид функции и достаточ- но точно оценить ее. И, наконец, если заменить в (4.182) — (4.185) v# на Jt, получим значения, приведенные в столбцах О, (?<», Й табл. 4.6. В заключение сделаем несколько замечаний по поводу случая вещественных данных. Число арифметических операций вовсе не составляет половины соответствующего числа в случае комплекс- ных данных1. Основная причина этого заключается в том, что, по- скольку результат ДПФ вещественного вектора является в общем случае комплексным, некоторые из промежуточных результатов будут комплексными. Например, согласно схеме ДПФ восьмого порядка ₽5 = ег + Ч (4.186) и поэтому ps является комплексным даже для вещественных дан- ных. Это значит, что схема, реализующая ^5 = йр5, имеет на входе комплексные данные. Другим фактором, который надо учитывать, является то, что представление комплексного числа в виде суммы двух его ком- понент не означает на самом деле никакого сложения, несмотря на наличие знака плюс. В упомянутом выше примере и е2, и е5 являются вещественными, когда вещественны f,. Следовательно, «сложение», появившееся в (4.186), становится фиктивным. 1 При использовании так называемых совмещенных алгоритмов, осуществ- ляющих преобразования пар последовательностей вещественных чисел, число дополнительных операций сложения минимально и равно длине последователь- ности. — Прим. ред. 151
4.9. Заключительные замечания Мы попытались здесь вывести алгоритм Винограда дискрет- ного преобразования Фурье, начиная с общей концепции, форми- рования необходимых .конструктивных блоков и кончая детальным описанием объединения этих блоков в общий алгоритм. Стартовой точкой в применении алгоритма является табл. 4.6, поскольку она представляет список допустимых значений N и со- ответствующих параметров, характеризующих производительность алгоритма. После выбора нужного N следует обратиться к табл. 4.5 и отыскать конкретные схемы, требующиеся в соответст- вии с табл. 4.6. При реализации алгоритма сначала осуществляет- ся перестановка элементов входного вектора, а затем применяется фаза 1 схем (в том порядке, который предписан табл. 4.6) к все меньшим и меньшим сегментам вектора данных, которые оказы- ваются в различных частично преобразованных состояниях. Этот процесс завершается, когда, в конце концов, однокомпонентные «сегменты» умножаются иа константы в фазе 2. С этого момента процесс развивается в обратном направлении на фазе 3. Скаля- ры, появившиеся как результат фазы 2, комбинируются в векторы все большей и большей размерности, превращаясь, наконец, в JV-мерный вектор, который отличается от результата преобразо- вания лишь перестановкой своих элементов. Эта глава содержит подробную информацию, достаточную для непосредственной аппаратурной или программной реализации упо- мянутой выше схемы. Хотя мы не рассмотрели конкретной реали- зации, стоит обратить внимание на некоторые особенности схем, специально внесенные в них для облегчения их реализации. Мы имеем в виду преобразование с оставлением на месте. Рассмот- рим схему седьмого порядка (см. рис. 4.8). Заметим, что исходные компоненты /2, h используются только для вычисления с2, с5. Следовательно, нет необходимости выделять дополнительную па- мять для с2, С5- Они могут храниться в массиве f на месте f2, f$. Единственно, что требуется, — это временно сохранить, скажем, f2, так чтобы, запомнив с2. можно было бы использовать f2 для вы- числения С5. Даже если f2 является вектором, необходимо лишь одно слово памяти для временного хранения, так как вычисления выполняются покомпонентно. Это свойство, которое мы проиллюстрировали здесь на приме- ре преобразования (f2, fs)~^(c2, с5), является общим для всех переменных в схемах порядков 2, 3, 5, 7. Оно остается в силе и для остальных схем, если рассматривать г] как выходной вектор. Единственное отклонение заключается в том, что в некоторых случаях должны рассматриваться группы из трех, а не из двух компонент. В выбранной схеме таким случаем является вычисле- ние pi, 02, 0з. Однако даже в этом случае достаточно иметь вре- менную память на одно слово. Надо особо отметить, что в тех применениях, где свойство ос- тавления на месте не используется, схемы порядков 4, 9, 8, 16 мо- 15а
гут быть несколько упрощены за счет перестановки Ft строк/столб- цов в выходном квадрате, чтобы получить выходной вектор F без перестановки элементов. В этом случае, конечно, можно обойтись без вектора т]. Обратимся теперь к краткому рассмотрению вопроса потери точности, упомянутому в разд. 4.1. В приложении (см. последний раздел) некоторые преобразования, применявшиеся при построе- нии схем, отрицательно сказываются на точности. Подобная си- туация имеет место и при вычислении 61 в некоторых схемах. Анализ (4.84), (4.85) показывает, что выбранный вид выражения (4.85) включает в себя сложение и вычитание Q|3i. Следовательно, если |QPi | 3> 1611, мы непременно столкнемся с проблемой потери значащих битов в арифметике с плавающей запятой и возможно- стью переполнения в арифметике с фиксированной запятой. По- добные же манипуляции с операциями сложения — вычитания имеют место в том или ином виде при выводе всех схем. Вследствие этих особенностей схем для гарантии определенной степени точности в алгоритме Винограда необходимо, вероятно, больше битов на слово, чем в алгоритме Кули—Тьюки. Мы не анализировали здесь эту проблему точности, но надо отметить, что структура алгоритма в том виде, в котором она представлена на рис. 4.20, делает такой анализ относительно простым. В заключение упомянем еще один важный аспект алгоритма, представленного на рис. 4.20, а именно, удобство его структуры для реализации различных схем параллельной обработки и кон- вейерной организации. Действительно, он создает благодатную основу для всевозможных проектных решений и различных ва- риантов реализации. По мере расширения известности алгоритма, несомненно, будет материализовано все больше и больше таких вариантов. Признательность. Представленная здесь работа выполнена в Лаборатории реак- тивного движения (ЛРД) Калифорнийского технологического института, по кон- тракту NASA № NAS7-100. Автор хотел бы также выразить благодарность д-ру Л. Д. Баумерту, бывшему сотруднику ЛРД, за полезные комментарии, от- носящиеся к некоторым теоретико-числовым аспектам этой работы. Приложение. Конгруентность полиномов. Выкладки в разд. 4.3 требуют численного решения уравнения R (х) — Sn (х) mod m (х), (П.1) где Sn(x) = S s^xk . (П.2) k=o a m(x)—моиическнй полином степени 1 или 2, корни которого лежат иа еди- ничной окружности. Здесь мы получаем все необходимые для этого результаты. :1) т(х)=х—хо(хо=±:1); 7?(х) должен иметь степень нуль Я(х) = гв (П.3) 153
и (П.1) в этом случае эквивалентно Sn (*) = («—*о) <4-! («) +'о > (П.4) где Qn-i является полиномом степени (га—1). Подставляя х—Хо в (П.4), полу- чаем R («) — ro = sn («о) • (П.5) Заметим, что при х0=±1 г0 является алгебраической суммой коэффициен- тов 3„(х), не содержащей умножений. 2) гаг(х)=х2—2xcos0+l= (х—х0) (х—х0); Р(х) должен быть полиномом первой степени R (х) = го + '’г х (П.6) и (П.1) эквивалентно •Sn W = (*—*о) (х~ха) Qn_2 (х) + (г0 + гхх). (П.7) Отсюда •Sn (*о) == fo + ri хй> (П.8) •Sn (*о) = Го + (П.9) Заметим, что x0 = cos6 + isin6 = e10. (П.1,0) Следовательно, вычитая (П.9) из (П.8), получаем 2 i sin в = Sn (х0)—Зп (х0) = 3 sk (е‘ 60 — е~ ' *9)> /г=о 1 п • '1 ==“Г~7- У] Shsinfe0, sinQ.^o rx=ysftt/ (cos0), (П.11) k=l где Um (х) — полином Чебышева второго рода. Для получения ra умножаем (П.8) на х0 и (П.9) на х0, после чего находим их разность 2 i r0 sin 0 = x0Sn (х0)—xj3n (х0)= [е“‘ (fc'~I) 0—е‘ ej = fe=i — 2 isosin0— 2 i Yj sin (й— 1) 0, k=2 П) =«o — 2 Sk (cos 0). (П.12) В табл. П.1 перечислены конкретные полиномы т(х) и соответствующие значения R(x), для которых требуется 0. Заметим, что для этих значений 0 t/*.(cos0) принимают только значения 0, ±1. Следовательно, и г0, и ri являются алгебраической суммой коэффициентов Sn(x), не содержащей умножений. Ре- зультаты для всех требующихся степеней Зп(х) сведены в табл. П.1. 154
Таблица П.1 п SJ(x)modm(x)ax«S„(x) = £ .st.x‘ к-0 m(x) 0° S2(x) mod m(x) S,(x) mod m(x) Ss(x) mod mix) (x2 - x +1 60 (s, +s2)x + (x0-.s-2) (s ( + s2 - s4 - s5 )x + (s0 - s, - s, + ,s'O ,v2 + 1 90 Ъ X+(S0~S2) (.^-sjx + tso-sj) - x2+x+ 1 120 (s, -s2)x+(s0-s2) (x, -52)X+(s0-S2+Sj) (5,-S2 +S4 -S5)X + (SO -S, +5, -S,) Конкретное применение табл. П.1 заключается в следующем. Дано Р(х) modffi(x) =Pix + Po> (П.13) Q (х) mod zn (х) = ft х + </0. (П.14) Найти G (х) = х + g0 = [Р (х) Q (x)J mod т (х). (П.15) G(x) может быть выражена с помощью (П.13), (П.14) следующим образом: G (х) = {[Р (х) mod т (х)] [Q (х) mod т (х)]} mod т (х) = = I (Pi 41) + (Pi + р0 ?1) х + р0 <7о 1 mod т (х). (П. 16) Отождествляя заключенный в скобки полином с S2(x) в табл. П.1, получаем: G (х) = (Pi (?о + ?1) + Ро 91] х 4-(Ро 9о — Pi 91) [я(х) = х2—х-|-1]. (П.17) G(x) = (Pi<7o + Po'7i)* *+(Po‘7o—Pi<7i) [m (х) = х2 + 1], (П.18) G(x) = [p1(?0 — 41) + Ро41]х+(РоЧо—Pi 9i) [m (х) = х2 + х + 1]. (П.19) Начиная с р., qt, каждая из этих формул требует 4 умножения. Однако при соответствующем переупорядочении членов можно заменить одно из этих умно- жений дополнительным сложением, тем самым ускорив вычисления. Завершает- ся это добавлением и вычитанием ро?о из члена gi. Этого достаточно для (П.17), (П.19). В (П.18) мы также модифицируем член go, добавляя и вычи- тая po?i. Результаты сведены в табл. П.2, и мы видим, что трех умножений те- перь достаточно. Однако случай (х2+1), по-видимому, показывает, что затраты оказываются выше, чем утверждалось ранее, а именно, они составляют 3 до- полнительных сложения. В общем случае это, несомненно, верно. Но мы намере- ваемся применять эти результаты в ситуации, когда арифметические операции, включающие только р0, рь не принимаются в расчет. (Соответствующие констан- Таблица П.2 [Р(х)б(х)] mod m(x) ffm>P(x) mod m(x) = p Lx + p0 Q(x) mod m(x)=q , x+q0 Hx) (7’(x)2(x)] mod mix) x2 - x + 1 [(p, + p0X<71 + q0)'~ P0q0]x + (po?o - P i q i) + 1 [(p 1 - Po)«o + (q 1 + <?o)Pol* + (q 1 + <?o)Po - (P1 + Pu)q 1 *2 + x + l [(Pi-PoX«o-4t) + Po</olx+(Po4o-Pi?il Г55
ты вычисляются заранее.) При этих условиях затраты составляют одно допол- нительное сложение. Надо заметить, что более высокая скорость, достигаемая за счет примене- ния формул из табл. П.2, сопровождается необходимостью иметь больше раз- рядов в слове. В арифметике с фиксированной запятой эти дополнительные раз- ряды должны предотвращать переполнение на промежуточных этапах. В ариф- метике с плавающей запятой эти разряды нужны, чтобы предотвратить потерю точности. Рассмотрим крайний случай, когда po<7o»gi- На выражение (П.17) это не влияет, но в арифметике с плавающей запятой (табл. П.2) может дать зна- чение gi, которое будет чисто случайным. ГЛАВА 5 МЕДИАННАЯ ФИЛЬТРАЦИЯ: СТАТИСТИЧЕСКИЕ СВОЙСТВА (Б. И. Юстуссон.) 1 Медианная фильтрация является методом нелинейной обработ- ки сигналов, который может быть полезен при подавлении шумов. Она была предложена в качестве инструмента анализа временных рядов Тьюки [5.1], в 1971 г. и позже ее стали применять также при обработке изображений. Медианная фильтрация осуществля- ется посредством движения некоторой апертуры вдоль дискрети- зированного изображения (последовательности) и замены значе- ния элемента изображения в центре апертуры медианой исходных значений отсчетов внутри апертуры. При этом обычно получается более гладкое, по сравнению с исходным, результирующее изобра- жение (последовательность отсчетов). Классическая процедура сглаживания состоит в использовании линейной фильтрации нижних частот и во многих случаях являет- ся наиболее приемлемой процедурой. Тем не менее в определен- ных ситуациях медианная фильтрация предпочтительней. Она име- ет следующие основные преимущества: 1) медианная фильтрация сохраняет резкие перепады, тогда как линейная низкочастотная фильтрация смазывает такие перепады; 2) медианные фильтры очень эффективны при сглаживании импульсного шума. Эти свой- ства пояснены на рис. 5.1. Основная цель главы — представить различные теоретические результаты, касающиеся медианной фильтрации. Автор надеется, что эти результаты помогут составить правильное суждение о практической применимости медианных фильтров. 1 Department of Mathematics, Royal Institute of Technology S-100 44 Stock- holm 70, Sweden. 166
Рис. 5.1. Последовательности типа граница плюс шум (а) после медианной фильтрации (б), после фильтрации с помощью скользящего среднего (в); л = 3 Основные определения, касающиеся медианных фильтров, даны в разд. 5.1. В разд. 5.2 исследуется способность медианных фильт- ров подавлять шум, а также приведены формулы, которые дают количественные представления о степени подавления шума. Рас- сматриваются белый, небелый, импульсный и точечный шумы. В разд. 5.3 сравнивается качество фильтрации посредством вычисле- ния скользящего среднего и медианных фильтров на изображениях вида «перепад плюс шум». Влияние медианных фильтров на ста- тистику второго порядка случайного шума обсуждается в разд. 5.4. Для входного сигнала с белым шумом даны точные результа- ты; для небелого шума с помощью предельных теорем получены приближенные результаты. Частотная характеристика рассматри- вается посредством оценки отклика фильтра на простую косинусо- иду, а также на сигналы более общего вида. В разд. 5.5 представ- лены некоторые модификации медианных фильтров, которые так- же обладают свойством сохранения перепадов, но отличаются от простых медианных фильтров другими свойствами. Некоторые применения медиан и других порядковых статистик рассматрива- ются в разд. 5.6. В заключение приведен небольшой обзор более ранних работ, касающихся медиан и медианной фильтрации. Медианы давно использовались и изучались в статистике как альтернатива средним арифметическим значениям отсчетов в оцен- ке выборочных средних значений популяций. Большинство иссле- дований касались медиан и других порядковых статистик последо- вательностей независимых случайных величин (см. хорошо извест- ные монографии [5.2, 5.3]). Однако медианы зависимых случай- ных величин также изучались в литературе (см. [5.4], где даны дополнительные ссылки). Как упоминалось выше, скользящая оценка медианы была предложена Тьюки, который применил ее для сглаживания вре- менных рядов, встречающихся в экономических исследованиях. Тьюки также рассматривал итеративную медианную фильтрацию и указывал, что она сохраняет во временных рядах большие резкие изменения их уровня (т. е. перепады). В [5.5] и ![5.6] применена скользящая медиана при обработке речи для очистки высоких то- нов от помех [5.7]. Разработан метод обработки сигналов для под- черкивания краев, в котором медианный фильтр предназначен для уничтожения ложных колебаний после линейной фильтрации. 157
Позже медианные фильтры были применены несколькими автора- ми в обработке изображений. В 1975 г. Прэтт исследовал эффек- тивность медианной фильтрации изображений с нормальным бе- лым и импульсным шумами, а также влияние различных форм апертуры фильтра. Его результаты были опубликованы в [5.8, разд. 12.6]. Медианные фильтры были использованы для коррек- ции шума сканирующих устройств [5.9]. 5.1. Определение медианных фильтров 5.1.1. Одномерные медианные фильтры Медианой последовательности Х\,...,хп, п — нечетное, является средний по значению член ряда, получающегося при упорядочении последовательности по возрастанию. Для четного п определим ме- диану как среднее арифметическое двух средних членов. В литера- туре можно найти другие определения, но поскольку они мало от- личаются друг от друга и п в большинстве интересующих нас слу- чаев нечетное, мы не будем возвращаться к этому в дальнейшем. Обозначим медиану следующим образом: медиана (хь ..., хп). (5.1) Например: медиана (0, 3, 4, 0, 7)=3. Медианный фильтр последовательности длиной п{х;, } для нечетных п определяется как уг- = медиана х,-Д медиана (х;_„, ...,х{, xi+v), Z, (5.2) п где v=(n—1)/2 и Z обозначает множество всех натуральных чи- сел. Будем использовать также термины скользящая медиана и текущая медиана. Легко видеть, что медианный фильтр сохраняет перепады, тог- да как соответствующая фильтрация путем вычисления скользя- щего среднего zz = (хг_„4- - -J-хг-г ... + xi+v)/n, i<=7, (5.3) превращает перепад в пологий скат шириной п (см. гл. 6). 5.1.2. Двумерные медианные фильтры Будем считать, что цифровые изображения представляются на- бором чисел на квадратной решетке {x,,j}, где (/, j) изменяются по 22 или некоторому подмножеству 7а. Двумерный медианный фильтр с апертурой А для изображения {xjj, (i, /)е К2} определяется как Уг; = медиана Xjj А медиана [x1+r;+.,; (rs)eA], (i,/)е£2. (5.4) А Можно использовать различные формы апертур А фильтра, на- пример, линейные сегменты, квадраты, круги, кресты, квадратные рамки, кольца. Некоторые из них показаны на рис. 5.2. Форма «колец» на рис. 5.2,е была выбрана так, чтобы число точек в каж- 158
Рис. 5.2. Апертуры фильтра: а, б — линейные сегменты, в — крест, г—квадрат, д — квадратная рамка, е — круги и кольца, ж — квадраты и квадратные рамки дом кольце было приблизительно пропорционально площади соот- ветствующего правильного кольца. Приведенные определения медианных фильтров не объясняют способа нахождения выходного сигнала вблизи конечных и погра- ничных точек в конечных последовательностях и изображениях. Один из простых приемов, которые использовались в рассматри- ваемых ниже экспериментах, состоит в том, что нужно находить медиану только тех точек внутри изображения, которые попадают в пределы апертуры. Поэтому для точек, расположенных рядом с границами, медианы будут определены, исходя из меньшего, чем в А, числа точек. 6.1.3. Сохранение перепадов Под изображением перепада понимаем изображение, в котором точки по одну сторону от некоторой линии имеют одинаковое зна- чение а, а все точки по другую сторону от этой линии — значение Ь, Ь^=а. Следующие результаты представляют фундаментальное свойст- во медианных фильтров. Если апертура А симметрична относи- тельно начала координат и содержит его в себе, т. е. если (r,$)e.4^(-r,-s)e А, (0, 0) е А, (5.5), (5.6) то тогда медианный фильтр (5.4) сохраняет любое изображение перепада. Подробное обсуждение эффектов медианной фильтрации других детерминированных сигналов, отличных от простого пере- пада, читатель может найти в гл. 6. Условия (5.5), (5.6) выполня- ются для всех апертур рис. 5.2, кроме квадратной рамки и колец, которые не содержат начала координат. Тем не менее квадратные рамки и кольца будут лишь незначительно изменять перепад. Точ- 159
но так же будут вести себя и фильтры с другой формой аперту- ры, для которых выполняются условия (5.5), (5.6). Эти условия означают, что число точек п в А является четным. 5.2. Подавление шумов с помощью медианной фильтрации Как утверждалось выше, медианные фильтры могут использо- ваться для подавления шумов. Прэтт '[5.8] на качественном уров- не рассмотрел их действие на белый и импульсный шумы. Здесь приведем некоторые соотношения для дисперсии, которые в коли- чественной форме оценивают степень подавления шума. Медианные фильтры нелинейны, и это усложняет математиче- ский анализ их характеристик. Нельзя разграничить влияние этих фильтров на сигнал и шум, что для линейных фильтров делается очень просто. Ограничимся рассмотрением простейшего случая по- стоянного сигнала. 5.2.1. Белый шум Модель белого шума. Значения элементов изображения {х,,} или последовательность чисел {хг} являются независимыми оди- наково распределенными (НОР) случайными величинами со сред- ним значением т x = m + z, (5.7) где E(z) =0 и, следовательно, Е(х) —т. Пусть F(x) и f(x)=F'(x) обозначают функции распределения и плотности вероятностей величин х. Теперь запишем два извест- ных результата из теории вероятностей, касающихся медиан неза- висимых, одинаково распределенных случайных величин (см. [5.3], гл. 2.9). Плотность распределения // = медиана (xj,...,xn) для нечетных л g (У) = п ( п~ 1 J f (у) F {y^-w [ 1 )/2. (5.8) \(п —1)/2/ Распределение у = медиана (xj, ..., хп) для больших п является приблизительно нормальным N(m, ап), где т — теоретическая ме- диана, определяемая из условия F(m) =0,5 и =---------— =Var [медиана (хь ..., хи)]. (5.9) п 4 Р (от) При малых п обычно можно получить лучшее приближение для дисперсии заменой члена i/n в (5.9) членом 1/(и + Ь), где Ъ— 1,/(4 f2 (т) Ох]— 1. Эта модификация получена вследствие выбора b таким, что при п=1 формула (5.9) становится точной. 160
Приведенные результаты справедливы как для одномерной, так я двумерной фильтрации, если п выбирать равным числу точек в апертуре фильтра. Если ,/(х) симметрична относительно т, то (5.8) также будет симметрична относительно т и, таким обра- зом, справедлива следующая простая формула: Е [медиана (хь ..., хп)] =Е(.гг) =т. (5.10) Пример 5.1. Равномерное распределение. Если случайные величины х явля- ются НОР и равномерно распределены на отрезке [0, 1], то можно найти точ- ное значение дисперсии медианы, используя (5.8): 1 Var[медиана (хх,..., х„)[ = ——— = ' -Э- (5.11) IfT “Т“ 1 Л Формула (5.9) после небольшой модификации дает тот же результат. Пример 5.2. Нормальное распределение. Если случайные величины х явля- ются независимыми, одинаково распределенными с нормальным распределени- ем Л1(/п, о), то т=т и дисперсию можно найти только при помощи числен- ного интегрирования, используя (5.8). Значения дисперсии медианы случайных величин N (0, 1) сведены в табл. 5.4 в строках (и, т, k) = (n, п, п). Формула (5.9), модифицированная для малых п, дает: о2 л Var [медиана (xj,..., хп)[ а:—;-------- —, 1,3,5,... (5.12) — 1 И §та формула обеспечивает хорошую точность для всех нечетных п. ; Среднее значение х для п НОР случайных величин имеет дисперсию о2/п. 'авенство (5.12) показывает также, что для нормального белого шума диспер- Ия медианы приблизительно на (л/2—1)=57% больше, чем дисперсия для реднего. Следовательно, скользящее усреднение подавляет нормальный белый |ум несколько лучше, чем медианный фильтр с такой же апертурой. Иначе го- оря, чтобы медианный фильтр давал ту же дисперсию шума, что и скользящее средиение. в его апертуре должно быть на 57% больше точек. Результаты ме- дианной фильтрации и фильтрации скользящим усреднением с апертурой 3X3 показаны на рис. 5.3. Каждое изображение состоит из 45 X 30 элементов, разме- ры каждого элемента 1X1 мм; щ — исходное тестовое изображение; б,, аь С[ были получены изменением шкалы значений а, и добавлением нормального бело- го шума со значениями стандартного отклонения Л/5, Л/3, Н, где h. — наибольшая высота перепада (рис. 5.3 будет рассмотрен также в разд. 5.3). Пример 5.3. Двойное экспоненциальное распределение. Пусть случайные ве- личины х имеют двойное экспоненциальное распределение со средним т л дис- персией о2, т. е. имеют плотность распределения Т/2 / (х) — —(J exp (—у 2 |х — m|/G), х е R. (5.13) Тогда согласно (5.9) асимптотическая дисперсия медианы (хь..., хп) о о2 1 (5.14) что на 59% меньше, чем дисперсия о2/п среднего арифметического х. Таким об- разом, для этого типа тма медиана является лучшей оценкой т, чем среднее 161
Рис. 5.3. Фильтрация изображений с нормальным шу- мом W (О, а): ai—21 — изображения на входе при о=0, Л/5, h/3, h- аг—г2 — изображения, подвергнутые медианной фильт- рации; а3—2з— изображения, подвергнутые фильтрации с помощью скользящего усреднения 162
арифметическое х. .Медиана является наиболее правдоподобной оценкой и, следо- вательно, оптимальной оценкой т по критерию минимума среднеквадратичной погрешности (по крайней мере асимптотически). То, что медиана является здесь наиболее правдоподобной оценкой, с очевидностью вытекает из общего резуль- тата, показывающего, что медиана представляет собой наплучшую по миниму- му абсолютного отклонения оценку центра распределения, т. е. п min V — п| (5.15) а i=l достигается для а=медиана (xj..... .гп). Из полученных результатов вытекает бо- лее общий вывод о том, что медиана лучше, чем арифметическое среднее, слу- жит для подавления шумов с распределениями с тяжелыми хвостами. Предель- ным случаем шума с таким распределением является импульсный шум, который 0удет рассмотрен в подразд. 5.2.3. 6.2.2. Небелый шум Для входных последовательностей (изображений), которые яв- ляются случайными процессами (случайными полями) общего ви- да, т. е. полями с не независимыми значениями отсчетов, нельзя получить простые точные формулы для распределения медиан. Тем не менее существуют предельные теоремы, аналогичные (5.9) (см. [5.4, 5.10], где можно найти также дополнительные ссылки на литературу). Условия, необходимые для предельных теорем, состо- ят в том, что процессы {хД, {х!;} стационарны и перемешаны. Со- гласно условиям перемешивания отсчеты процесса, расположен- ные далеко друг от друга, должны быть практически независимы (подробности см. в [5.4, 5.10]). Для стационарного перемешанно- го нормального процесса с ковариационной функцией Соу(хг,хг+т) = гж(т) = ст2рж(т),т = 0,± 1, ... , (5.16) имеем приближенное выражение для дисперсии медианы Var [медиана (хь ..., хп)]~ S' ( 1 ——) arcsin[Pa.(/)]. (5.17) п-|-л/2—1 /=_(„_!) \ п 1 Для случая двумерной фильтрации получаем аналогичный резуль- тат. В разд. 5.4 эти виды приближений и предельные теоремы бу- дут рассмотрены дополнительно. Интересно сравнить (5.17) с дисперсией арифметического сред- него х= (ZXi)ln п случайных величин: — а2 1 । • । \ Var(x) = — 2 1—— Р»(/)- (5.18) п \ п 1 Сходство (5.17) и (5.18) бросается в глаза. Для нормальных про- цессов с неотрицательными значениями корреляции рх(т)>0,т = 0,± 1,..., (5.19) 163
Таблица 5.1 Относительные значения дисперсии для нормальных авторегрессионных процессов AR(1) а Var (медиана) 0,9 0,5 0,0 —0,5 —0,9 Var (х) 1,10 1,21 1,57 2,59 6,59 получаем при больших п, используя (5.17), (5.18) и тот факт, что р.с(т) ^arcsin p.v(t) ^рх(т)л/2: l=g:Var (медиана)/Var (х) ^л/2. (5.20) (Этот результат справедлив также для двумерной фильтрации.) Таким образом, для нормальных процессов с неотрицательными значениями корреляции дисперсия медианы почти на 57% больше дисперсии арифметического среднего. Для процессов с отрицатель- ными и положительными значениями корреляции значения отно- шений дисперсий (5.20) могут быть намного больше л/2. Это ил- люстрируется в табл. 5.1, где представлены значения отношений дисперсий для нормальных авторегрессионных процессов AR (1) первого порядка с р^(т) -а|х|,т = 0, ± 1, ... (5.21) В работе [5.10] сообщается о результатах, полученных путем моделирования на ЭВМ нормальных процессов AR (1), которые показывают, что значения отношений, приведенные в табл. 5.1, приблизительно верны и для малых п, кроме случая а = --0,9. Для а = —0,9 и л = 9 значение этого отношения оказалось равным 14,9. 5.2.3. Импульсный и точечный шумы Под импульсным шумом понимаем искажение сигнала импуль- сами, т. е. выбросами с очень большими положительными или от- рицательными значениями и малой длительностью. Медианная фильтрация хорошо приспособлена для подавления такого шума {5.5, 5.8] при условии, что размер апертуры фильтра должен быть выбран по крайней мере в два раза больше ширины импульса. В этом случае импульсы шума, которые достаточно удалены друг от друга, будут полностью убраны медианным фильтром. Однако им- пульсы, расположенные близко друг к другу, могут сохраняться. При обработке изображений импульсный шум возникает, на- пример, вследствие ошибок декодирования, которые приводят к по- явлению черных и белых точек на изображении. Поэтому его часто называют точечным шумом1. Выбросы шума особенно заметны на очень темных или очень светлых участках изображений. Для та- 1 В отечественной литератсре применяют также термин импульсный шум. Прим. ред. 164
ких участков можно вывести несколько несложных формул для ве- роятности правильного воспроизведения. Рассмотрим две модели. В первой модели все выбросы шума имеют одинаковое значение, во второй шум принимает значения, выбранные случайно из всего ди- апазона от черного до белого. Импульсный шум. Модель 1. Появление выброса шума в каждой точке (i, /) изображения имеет вероятность р и не зависит ни от наличия шума в других точках изображения, ни от исходного изо- бражения. Искаженная точка приобретает стабильное значение d (т. е. значение черного). Пусть —искаженное изображение. Тогда х _ (d с вероятностью р, (5 22) 11 (Sf , с вероятностью (1—р), где St; — значения неискаженного изображения. Предположим теперь, что точка (/', /') расположена на участке с постоянным значением {s,,} исходного изображения [по крайней мере в окрестности А с центром в (I', /')], т. е. Si’+r< = st.j. --=c=£d,(r,s) А. (5.23) Применим к {.Vi} медианный фильтр с апертурой А //,, = медиана (xi;). (5.24) Тогда значение выходной величины yi'j' будет верным, т. е. — = St’j> =с, в том и только в том случае, если число выбросов шума в пределах апертуры А с центром в (Г, /') меньше половины числа точек в А, т. е. меньше или равно (п—1)/2„ где п — размер апер- туры А. Из того, что число искаженных точек в апертуре имеет биномиальное распределение, вытекает следующий результат: Р[правильного воспроизведения в (f, /')] = Р (Усг = (n-l)/2 . „ \ = S " ) pft(l—р) . (5.25) л=о ' k / Значения 1—Q(/i, p) для различных значений пир приведены в табл. 5.2. Видно, что если вероятность ошибки р не очень велика Таблица 5.2 Вероятность ошибки при фильтрации импульсного шума, 1—Q(n, р) Вероятность ошибки р Размер апертуры п 3 5 9 25 49 0,01 0,00030 0,0000099 0,0000000 0 0 0,05 0,00725 0,00116 0,000033 0,0000000 0 0,1 0,028 0,0086 0,00089 0,0000002 0 0,15 0,0608 0,0266 0,00563 0,000017 0 0,2 0,104 0,058 0,0196 0,00037 0,000013 0,3 0,216 0,163 0,099 0,017 0,00165 0,4 0,352 0,317 0,267 0,154 0,0776 0,5 0,500 0,500 0,500 0,500 0,500 165
Рис. 5.4. Фильтрация изображений с импульсным шумом: а,. 61 — изображения на входе с шумами модели 1 и модели 2 при вероятности ошибки р = 0.2; а2. б2— изображения, подвергнутые медианной фильтрации; аз. бз — изображения, подвергнутые фильтрации с помощью скользящего усреднения (скажем, не более 0,3), то медианная фильтрация с достаточно ма- лой апертурой значительно снизит число ошибок. Фильтр с боль- шой апертурой подавит шум в еще большей степени, но он также исказит и сигнал. Результаты медианной фильтрации импульсного шума иллюстрируются на рис. 5.4а. Импульсный шум. Модель 2. Эта модель отличается от модели 1 только тем, что искаженные точки приобретают случайные, а нс фиксированные, значения z,;. Предполагается, что они являются не- зависимыми случайными величинами с равномерным распределен!! ем на непрерывном интервале [0, d]. Итак, v с вероятностью р, (5 26) 11 (s,-,- с вероятностью (1—р). Для получения простой формулы предположим, что неискажен ное изображение является полностью белым (или полностью чер ным) в окрестностях (/, /'), т- е- в (5.23) с = 0 (или c = d). Это ш. сути наиболее сложный случай для медианного фильтра, так каь все ошибочные значения попадают по одну и ту же сторону от пра- 166
сильного значения. Вероятность правильного воспроизведения сов- падает с Q(h, р) в (5.25), ио кроме того, значения неисправленных ошибок уменьшаются. Математическое ожидание выходных вели- чин и оставшихся выбросов шума определяется формулами: £[медиана (Xij) ] = , Д k—(п—1)/2 / п \ . . . . . =d 2 —t~ и р с1—р) ' <5-2/) *=(n+l)/2 \k ) Е [медиана (x,j<) | ошибочное воспроизведение в точке (Г, /')] = =£[медиана (хг-, г) ]/[ 1—Q (п, р) ]. (5.28) Доказательство. Пусть N у,' — число ошибок в апертуре А с центром в (Е, j'), распределенное по биномиальному закону. Ус- ловное распределение медианы в (/, /) при ЛД;-, равном k, такое же, как и распределение медианы (0, ... , 0, zlt... ,Zk), где число нулей равняется (п—Р), a zb... , Zk— независимые и равномерно распределенные на интервале (0, d) числа. Далее имеем медиана (0, ..., О, Zi, .... zfe) = = |0, если PsC (/г—1)/2, [z(,если k"^ (лг + 1)/2, где г(, д) означает r-ю порядковую статистику zb... , Zk и r = k— — (n—1)/2. Окончательно имеем Е[медиана (хг-^)] = А = 2 Е [медиана (х> |Л7,-? = &] P(Ni>j’ = k) =• k=0 п I п \ = 2 £{zr-(«-i)/2,*]} 7 Ь?(1-р)л-* = *=(«+!) /2 \« / = S }pk^~p^~k- <5-30> fe=(n+l)/2 k+ 1 \k / На последнем шаге мы использовали значение математического ожидания порядковых статистик равномерного распределения (см., например, [5.3, гл. 3]). Случай п=9 и р = 0,2 проиллюстрирован на рис. 5.46. Согласно приведенным формулам доля искаженных точек должна умень- шиться с р = 0,2 до 1—Q(n, р) =0,0196 и математическое ожида- ние ошибки — с E(zij) =0,5 d до [согласно (5.28)] ------d = 0,187 d. (0.31) 0,0196 Результат фильтрации хорошо согласуется с этими оценками. Как видно из рис. 5.4, скользящее усреднение плохо приспособле- но к фильтрации импульсного и точечного шумов. Некоторые фильтры, предназначенные для подавления точечного шума, были 167
предложены в [5.11]. Мы не сравнивали эти фильтры с медиан- ным фильтром1. Одним из шумов, похожих на импульсный, является шум про падания строк, который появляется при пропадании или искажу нии целых строк в процессе сканирования изображений <[5.9]. Ме- дианный фильтр с прямоугольной апертурой пХт (т точек на и строках) будет, как и в случае импульсного шума,, уменьшать чис- ло ошибок. Предположим, что искажение строк происходит неза- висимо для разных строк с вероятностью р и что все элементы ис- каженной строки приобретают одинаковое значение d, a s,. = <. Тогда вероятность правильного воспроизведения будет равна Q(n. р). Заметим, что здесь п означает число строк в прямоугольной апертуре. С точки зрения вычислений простейшей апертурой явля- ется апертура с т=1, но иногда могут оказаться более выгодными большие значения т. 5.3. Перепад плюс шум Мы уже видели, что медианные фильтры сохраняют перепады (в отсутствие шума), тогда как скользящее усреднение смазывает такие перепады. Кроме того, для случая нормального белого шума (на постоянном фоне) скользящее усреднение уменьшает такой шум несколько эффективнее, чем медианные фильтры с тем же размером апертуры. В этом разделе рассмотрим фильтрацию пере- падов при наличии аддитивного белого шума, т. е. фильтрацию по- следовательностей, или изображений, с X----S4-Z, (5.32) где s — детерминированный сигнал, равный 0 по одну сторону от перепада и h — по другую, az — случайные значения белого шума В подразд. 5.3.1 сравнивается действие на такие последовательно- сти (изображения) медианной фильтрации и скользящего усредне- ния. В подразд. 5.3.2 содержится математический вывод раскреде ления порядковых статистик таких последовательностей. Этот вы вод мы включили по той причине, что он является примером рас суждений, которые можно использовать при выводе других резуль татов, касающихся порядковых статистик независимых случайных величин, как, например, (5.8) и результаты в подразд. 5.4.1. 5.3.1. Сравнение медианной фильтрации и скользящего усреднения Предположим, что случайные значения шума z распределены по нормальному закону N (0, а). Для начала рассмотрим одно- мерную фильтрацию и будем считать, что перепад происходит в 1 Эффективные итеративный и рекурсивный алгоритмы фильтрации импульс ного шума описаны также в [7J. Сравнение этих алгоритмов с алгоритмом mi дианной фильтрации при квадратной'апертуре 3x3 показывает, что при верояг ности ошибки до 0,4 алгоритм медианной фильтрации значительно уступает ите- ративному алгоритму, примерно эквивалентен рекурсивному алгоритму по значе ншо среднеквадратической погрешности фильтрации и намного уступает обоим алгоритмам по критерию вероятности ложного исправления.—Прим. ред. 168
Рис. 5.5 Граница плюс шум. Ма- тематические ожидания для сколь- зящей медианы (М), скользящего ере.: него (х) при л = 3, /1 = 5, <т= 1 Рис. 5.6. Граница плюс шум. Мо- менты для скользящей медианы (М) и скользящего среднего (х) при п = 3, h = o, о=1 точке 1 = 1 (рис. 5.5). Таким образом, для 1^0 величина xt есть JV(O, о), а для 1^1 величина Xt есть N(h, о). Плотность вероятно- стей g(x) /г-точечной медианы с k величинами Xi из N(h, ст) и (п—k) величинами X; из Лг(0, ст) может быть получена из (5.37) — (5.39), приведенных в следующем разделе. Хотя формула для g(x) достаточно сложна, путем численного интегрирования мож- но очень просто найти средние значения и стандартные отклоне- ния. Это было сделано для ст=1 и некоторых значений п и k. Ре- зультаты представлены в табл. 5.3. Значения для ст=И= 1 можно по- лучить путем соответствующего изменения масштаба, а для ^(н+1)/2 — зная симметричные значения аргументов. Распределение скользящего среднего, как легко понять, являет- ся X:(hkln, о/ 1 п), где k — число точек в пределах апертуры, имеющих значение s = h. Таблица 5.3 Среднее значение и стандартное отклонение медиан на последовательностях типа граница плюс шум: Zt+h, ..., Zk+h, z/i+t, ..., zn, где г,- — независимые одинаково распределенные величины Л (0, 1) /г ] li h о.о 1 1.0 2,0 3.0 4,0 5,0 3 i 1 £(медиаиа) 0,0901 0,305 0,486 0,549 0,562 0,564 о(медиана) 0,670 0,697 0,760 0,806 0,822 0,826 9 ! 3 £(медиана) 0,000 0,318 0,540 0,626 0,641 0,642 j о(медиана) 0,408 0.424 0,471 0,513 0,527 0,529 5 | 1 £(медиана) 0,000 । 0,179 0,270 0,294 0,297 0,297 I <т (медиана) 0,536 j 0,551 0,580 0,596 0,600 0,600 5 ' 2 £(медиана) 0,000j 0,386 0,676 0,808 0,841 0,846 1 о(медиана) 0,536 i 0,560 0,631 0,705 0,740 0,748 25 ' 5 £(медиана) 0,000 1 0,184 0,286 0,312 0,315 0,315 о(медиана) 0,248 । 0,256 0,271 0,280 0,282 0,282 25 10 £(медиана) 0,000 ! 0,391 0,719 0,900 0,944 0,948 о(медиаиа) 0,248 | 0,260 0,295 0,346 0,371 0,375 169
На рис. 5.5 показана последовательность значений математиче- ского ожидания медиан и скользящего среднего вблизи перепада высотой й = 5 при н = 3. Значения скользящего среднего следуют по наклонной линии, и это свидетельствует о существенном сма- зывании перепада. Поведение математического ожидания значений: медианы также свидетельствует .о некотором смазывании,, хотя и гораздо меньше, чем для скользящего среднего. Чтобы иметь возможность сравнить эффективность фильтров на последовательностях типа перепад плюс шум, нужны меры точ ности передачи перепада. Воспользуемся мерой среднеквадратич- ной ошибки (СКО), усредненной по N точкам вблизи перепада ±^E(yi-Siy, (5.33) где у; — значения на выходе фильтра. Для случая, показанного на рис. 5.5, т. е. для п = 3 и N=2, выражение (5.33) равно £'(z/20) На рис. 5.6 представлены графики значений £(у20)1/2 как функциг перепада h для медианного фильтра и для скользящего усредне- ния. Видно, что при й<2 (й<2а) СКО для скользящего средней немного меньше, чем для медианы, а при /г>3 (/г>3о) СКО ме дианы значительно меньше, чем СКО среднего. Этот результат показывает, что скользящая медиана значительно лучше, чем скользящее среднее, для перепадов большой высоты (/г>3о), а для перепадов меньшей высоты различие между двумя фильтрам! очень незначительно. Очень похожие результаты получены дл; больших апертур, « = 5, и для двумерной фильтрации с апертура ми 3x3 и 5x5. Эти выводы также подтверждаются результатами фильтрации изображений на рис. 5.3. где h фиксировано и о = П й/5, h/З и h. Мера точности, которую мы использовали, может ха рактеризовать только резкость поперек перепада. Она ничего ш говорит о гладкости фильтрованного изображения вдоль перепа да. На рис. 5.3 показано, что скользящее усреднение дает сигналы гладкие вдоль перепада, тогда как при обработке с помощью ме дианных фильтров протяженные перепады оказываются слегка из резанными. Сделаем теперь несколько дополнительных замечаний относи тельно поведения медиан при изменении h. Мы предполагаем, что k — число переменных со средним h — меньше (/г+1)/2. По рис 5.6 и из табл. 5.3 видно, что стандартные отклонения увеличиваю! ся с увеличением h и имеют асимптотически ограниченные значе- ния. Математические ожидания медианы для малых h близки к математическим ожиданиям для соответствующих средних Е(медиана) ~Е(.г) = h (5.34 s п но для больших h они асимптотически ограничены и, таким обра- зом, ведут себя совершенно иначе, чем математические ожидания средних. Объясняется это тем, что при больших h (скажем, й>4) переменные х со средним значением 0 (скажем, здесь Xi, .... xn-k' 170
будут резко отделены от переменных х со средним h (скажем, здесь xn-k+i,..., хп) и тогда медиана (xi, ..., Хп—ь, •••, хп) ~X(n+i)/2, n—k> (5.35) где индекс в правой части означает (л+1)/2-ю порядковую статис- тику последовательности Xi, ..., хп-л. Математические ожидания и дисперсии нормальных порядковых статистик можно найти в [5.12]. Приближенная формула для математического ожидания Хг,„: E[x(r,„) ]«F->(r/(rt+l)), (5.36) где F(х) — функция распределения х. В заключение отметим, что полученные результаты можно, конечно, использовать при анали- зе не только перепадов, но и других объектов. Модель x = s+z может быть пригодна для описания, например, импульсов с адди- тивным шумом. 5.3.2. Распределение порядковых статистик в выборках из двух распределении Пусть Xi,...,хп— независимые случайные величины, причем Xi...Х){ имеют функцию распределения Fi(x) и плотность распре- деления fi (х) = F\ (х), а х/!Т1, ... ,хп имеют функцию распределения F2(x) и плотность распределения f2(x) = F'2 (x). Тогда х(г, п), г-я порядковая статистика из Х|, ... , хл[г= (п 1)/2 дает медиану] имеет плотность распределения g(x)-=gl(x) + g2(x), (5.37) где ёЛ*)- \ k ')( n~~.k \fdx)Fi(x)Fr-i-i(x)X X [1—F1(x)]*-'~1[1—F2(x)]"--*-r+'vi, (5.38) / \ v—, i 1 \ I \ ~~~~ 1 \ . • ,1х i \] I X f2 (x) F{ (x) F'~'~l (x) [ 1 — Fj (x)]*-/ [ 1 - F2 (x)]'‘-*-'+/. (5.39) Суммирование выполняется по всем натуральным числам /, для которых соответствующие биномиальные коэффициенты ( р 1 удо- \ я / влетворяют условию p^q^Q. Доказательство. Плотность распределения g(x)x{r,ni может быть найдена по формуле £(х)=~- lim — P[xt^X(r П) <x4-dx] . (5.40) <Ьс->о+ dx Метод доказательства заключается в том, что события в (5.40) де- лятся на подмножества, вероятности которых можно определить. Число различных подмножеств подсчитывается методами комби- 171
наторики. Мы также используем тот факт, что в бесконечно малый- интервал [х, x + dx] может попасть не более чем одна переменная X/. Применены следующие подмножества: А)—в интервал [х, x + dx] попадает один член из последова- тельности Xi,..., ха; Л2 — в интервал [х, x+dx] попадает один член из последова- тельности ха+ь ..., хп; Bj — точно j членов из последовательности xf,... ,х,г попадают в интервал (—оо, х), / = 0,..., k. По закону полной вероятности — Р [х Х(Г ,п) <7 х dx|:— Л V ' — — Р 1{х x(r,n} -V + dx} П В•] + ; ах + У — Р |{х < х(г,„) х-dx} П А2 П (5.41) Рассмотрим событие в первой сумме. Оно происходит тогда и только тогда, когда одна из величин х>, ... , X/, попадает в интервал [х, x + dx]; j величин из оставшихся в xh попадают в интер- вал (—оо, х); (г—j—1) величин из xa-i, ... , хп попадают в интер- вал (—оо, х) п вес оставшиеся величины — в интервал (x + dx. + оо). Вероятность этого события будет равна kf^xjdx Р . Рру (х)' { п . k \ / J + — ! — k ? X [1 — Fj (х + dх)]‘-'-1 [ 1—F„(x~ dx)].n~-k-r+i+i . (5.42/ Подставляя (5.42) в (5.41) и устремляя dx к 0 справа, получим- g’i(x). С помощью аналогичных рассуждений получим £2(х) из второй суммы в (5.41). В этом случае один элемент последова дельности X/,+ i, х„ попадает в интервал [х, x+dx]. 5.4. Другие свойства медианных фильтров В этом разделе рассматриваются ковариационные и спектраль- ные свойства медианных фильтров. Полученные результаты пока- зывают, что статистические характеристики второго порядка меди- ан очень похожи на соответствующие характеристики скользящих средних. Последняя часть раздела содержит некоторые результа- ты, касающиеся поведения выборочных функций на выходе меди- анных фильтров. 5.4.1. Ковариационные функции при белом шуме на входе Ковариационные функции реализаций белого шума, отфильтро- ванных с помощью медианных фильтров, были рассчитаны в- [5.10]. Сначала были выведены формулы для распределения пар 172
порядковых статистик частично перекрывающихся выборок, после чего путем численного интегрирования по этим формулам были найдены ковариации. Формулы распределения были получены с помощью развития идей, использованных в подразд. 5.3.2. По- скольку эти формулы достаточно сложны, они здесь не воспроизво- дятся, а даются результирующие ковариационные функции для случая нормального белого шума на входе медианного фильтра. Пусть {xj—независимые случайные величины N(0, 1) и C(n, т, =Cov[медиана (xi, ..., хп), медиана (Хп-л+ь ..., Хп-т+л)], (5.43) т. е. С(п, т, k) —ковариация медиан выборок длиной п и т с интервалом перекрытия k. Численные значения С(л, т, k) пред- ставлены в табл. 5.4 наряду с вероятностями Р(п, т, k) равенства значений двух медиан в (5.43). Для перекрывающихся выборок, т. е. при k = Q, мы, конечно, имеем C(n, т, k)—Q. Заметим также, что С (п, п, /i)=Var (медиана). Ковариация нормальных случай- ных величин N’(тх, о) равна о2С(л, т, k). Автоковариационная функция для выходной последовательности «-точечного медианно- го фильтра, у,-= медиана (хг), при нормальном белом шуме ,V(m.va) на входе равна Гу (т) - Cov У;) = о2 С [п, «, («— | т|)+], (5.44) где (а) :~ = тах(а, 0). Ковариационная функция гу для п = 3, о=1 и ковариационная функция rz трехточечного скользящего среднего показаны на рис. 5.7. Для произвольного п и для белого шума на входе имеем гг(т) = а2( 1-W. (5.45) \ п / На рис. 5.7 видно, что гу и rz похожи по форме, или, что то же са- мое, нормализованные функции корреляции подобны друг другу, но гц имеет большие значения, т. е. гу (0) >г2 (0). Ковариационные функции для двумерных медианных фильтров можно выразить также через С(л, т, k). Для квадратной аперту- ры пХп Ч/(т1> Ч>) о2 С [п2, п2, (п — 1Т] |)-+- (п— |т»|)~]. (5.46) Рис. 5.7. Ковариационные функ- ции для 3-точечной скользящей медианы (жирные линии) и 3-то- чечного скользящего среднего (пунктирные линии) при нормаль- ном белом шуме N (0, 1) Рис. 5.8. Ковариационная функ- ция для двумерного медианного фильтра с квадратной апертурой 3X3 при нормальном белом шуме Л’(0, 1) 17?
Таблица 5 Ковариации С(п, т, к) и вероятности равенства Р(п, т, к) значений двух медиан Л’(0, 1)-процесса для выборок длиной п и т с размером перекрытия h[C(n, п, n) = Var (медиана)] п т к С (л, т.к) Р(и,т, к) и т к С(п. т, к) Р т. к) 1 1 1 1,(Ш) 1,0000 25 25 5 0,0105 0,0253 3 1 1 0,3333 0,3333 25 25 10 0,0214 0,0581 25 25 15 0,0329 0,1061 3 3 1 0,1177 0,1333 25 25 20 0,0453 0,1972 3 3 2 0,2480 0,3333 25 25 23 0,0538 0,3452 3 3 3 0,4487 1,0000 25 25 24 0,0572 0,4800 5 1 1 0,2000 0,2000 25 25 25 0,0617 1,0000 49 49 7 0,0040 0j0125 5 з ) 0,0721 0,0857 49 49 14 0,0081 0,0272 5 3 2 0,1494 0,2000 49 49 21 0,0123 0,0456 5 3 3 0,2398 0,4000 49 49 28 0,0166 0,0701 5 5 1 0,0445 0,0571 49 49 35 0,0209 0,1069 5 5 -> 0,0914 0,1286 49 49 42 0,0258 0,1797 5 5 3 0,1422 0,2286 49 49 47 0,0296 0,3597 5 5 4 0,2003 0,4000 49 49 48 0.0305 0,4898 5 5 5 0,2868 1,0000 49 49 49 0,0318 1,0000 7 1 1 0,1428 0,1429 81 81 9 0,0018 0,0074 81 81 18 0,0039 0,0158 7 з I 0,0520 0,0635 81 81 0,0059 0,0256 7 3 2 0,1069 0,1429 81 81 ' 36 0,0079 0,0373 7 3 3 0,1672 0,2571 81 81 45 0,0099 о'о521 7 5 1 0,0323 0,0433 81 81 54 0,0120 0,0721 7 5 2 0,0660 0,0952 81 81 63 0,0142 0,1028 7 5 3 0,1016 0,1619 81 81 72 0,0165 0,1649 7 5 4 0,1402 0,2571 81 81 79 0,0185 0,3658 7 5 5 0,1848 0,4286 81 81 80 0,0188 0,4938 7 7 I 0,0235 0,0333 81 81 81 0,0193 1,0000 7 7 2 0,0478 0,0722 1 1 1 1,0000 1,0000 7 .7 3 0,0732 ОД 195 9 1 1 0,1111 0,1111 7 7 4 0,1000 0,1810 9 9 9 0.1661 1,0000 7, 7 5 0,1290 0,2698 25 1 1 0,0400 0,0400 7 7 6 0,1621 0,4286 25 9 9 0,0519 0,1199 7 7 7 0,2104 1,000 25 25 25 0,0617 1,0000 49 1 1 0,0206 0,0204 9 1 1 0,11 И 0,1111 49 9 9 0,0261 0,0550 9 3 1 0,0407 0,0505 49 25 25 0.0286 0,1157 9 3 2 0,0832 0,1111 49 49 49 0,0318 1,0000 9 3 3 0,1286 0,1905 81 1 1 0,0123 0,0123 9 S 1 0,0253 О.О35и 81 9 9 0.0157 0,0320 9 0,0516 0,0'v, 81 25 25 0.0171 0,0594 9 S 3 0.079! 0,1255 8! 49 49 0,0180 0,1091 9 5 4 0,1081 0 1905 8! 81 81 0,0193 1,0000 9 Л 5 0.139* 0.2857 121 1 1 0,0083 0,0083. 121 9 9 0,0105 0,0210 9 i 0,0:86 О.О2”2 121 25 75 0.0114 0,0372 9 7 2 0.0376 0,0583 121 49 49 0,0119 0,0598 9 з 0,0573 0,0949 121 81 81 0,0123 0,1027 9 7 4 0,07 78 0,1400 121 121 121 0,0129 цоооо 9 7 5 0,0995 0 1991 9 7 6 6,1230 0,285’’ 2 0,5000 1,0000 9 7 7 0,1499 о'444-l 4 4 4 0,2982 1,0000 6 6 6 0,2147 1,0000 9 9 ! 0,0146 0,0224 8 8 8 0,1682 1,0000 9 9 0,0296 0,0476 12 12 12 0,1175 1,0000 9 9 3 0,0449 0,0766 16 16 16 0,0904 1,0000 9 9 4 0,0608 0,1110 20 20 20 0,0734 1,0000 9 9 5 0,0774 0,1536 24 24 24 0,0619 1,0000 9 9 6 0,0949 0,2100 28 28 28 0,0535 1,0000 9 9 7 0,1138 0,2929 V 32 V 0,0471 1,0000 9 9 8 0,1352 0,4444 36 36 36 0,0420 1,0000 9 9 9 0,1661 1,0000 40 40 40 0.0380 1,0000
Функция гу в первом квадранте для апертуры 3X3 элемента по- казана на рис. 5.8. Значения функции в других квадрантах можно> получить с учетом симметрии. Сходство функций корреляции скользящей медианы и скользя- щего среднего до некоторой степени объясняется относительно вы- сокой корреляцией между медианой и средним. Дополнительные объяснения даны в следующем подразделе. Если {х,} — незави- симые случайные величины с распределением N (т, о), то 1 п Cov медиана(хь ..., хп), — У хг (5.48) — ет2 = Var(x) = — (5.47) п. (см. [5.3, с. 31]). Используя (5.12), для больших п получаем ко- эффициент корреляции р (медиана, х) ~ | 2/л = 0,8. 5.4.2. Ковариационные функции при небелом шуме на входе Дать общие точные формулы для автоковариационной функ- ции отфильтрованного медианным фильтром небелого шума не представляется возможным. Мы приведем здесь некоторые при- ближенные формулы, которые были получены в [5.10] при рас- смотрении предельных результатов, когда размер апертуры стре- мится к бесконечности. Эти формулы удивительно хорошо работа- ют и для апертуры с малыми размерами. Подробный вывод чи- татель может найти в [5.10]. Допустим, что {х,}—• стапионарная перемешанная последова- тельность с маргинальной функцией распределения F(х) и плот- ностью распределения /(х). Имеем Р[медиана (х;_0, ... ,х( V —V (5.49) «Обращением» (5.49) можно получить следующую прибли- женную формулу представления (представления Бахадура) для больших п: (5.50) tji = медиана (х^, ... ,xit..., хг+в) л - 1 Л - яенгД- - у sign(xf+/—пг), 2/ (т) п jC~Lv где с’= (/?—1)/2 и F(m)=0,5. Таким образом, скользящая медиана ведет себя как скользящее среднее знаковой функции элементов последовательности (результата их жесткого ограничения). Те- перь, вычислив функцию ковариации скользящего среднего в пра- вой части (5.50), можно получить приближенную формулу функ- ции ковариации для последовательности, подвергнутой медианной фильтрации: Мт)- „ /. пр(т) (5.51) 175
где с;; = Р(л'о^т, Хл^/п)—1/4. Для нормального шума с ковариа- ционной функцией /\(т) = о2р (т) значения о, могут быть подсчи- таны точно. Пользуясь этим и произведя небольшую модифика- цию, упомянутую в подразд. 5.2.1, получаем п2 1 / |/|\ ГуЮ «---------—- У I 1 — — ) arcsin [р (/ч-т)]. (5.52) п+л.,2—1 \ «/ В [5.10] мы проверили точность приближения (5.52) для нор- мального белого шума и нормальных процессов AR(1). Для вход- ных процессов с нулевыми положительными (или не очень боль- шими отрицательными корреляциями) точность будет хорошей да- же при очень малых значениях п. С другой стороны, для процесса с функцией корреляции р(т) = (—0,9) 4 погрешность велика. Скользящая медиана почти не сглаживает процессы, ведущие себя на больших интервалах, как функции вида х;л;(—l)'z/- В са- мом деле, форма входной последовательности х,= (— Г)'(/, Z , будет оставлена медианным фильтром без изменений, хотя для некоторых значений п она сдвинется на один шаг (см. гл. 6). В противоположность этому скользящее усреднение оказывает боль- шое сглаживающее действие на подобный процесс, так как регу- лярные флуктуации значений х полностью уничтожаются. В целом можно ожидать, что приближенные формулы ковариационных функций скользящих медиан будут полезны только для последо- вательностей, на которые медианные фильтры действуют так же, как и скользящее усреднение. Так, в случае с сильно осциллирую- щими последовательностями и последовательностями перепадов большой пользы от них ждать не следует. Теперь можно объяс- нить сходство между корреляционными свойствами медианных фильтров и скользящего усреднения. Для больших п (5.51) мож- но аппроксимировать формулой г (т) « const [ 1 — |т|/л]~, (5.53) которая асимптотически верна для всех скользящих средних, хо- тя и с разными константами. Таким образом, они имеют одинако- вую нормализованную корреляционную функцию, но могут иметь разные асимптотические значения дисперсий. В подразд. 5.2.2 упоминалось, что медианы по большим апер- турам имеют приблизительно нормальное распределение. Это мож- но доказать, используя представления Бахадура и применяя цент- ральную предельную теорему7 для стационарных перемешанных процессов в правой части (5.50). Описанные идеи можно также применить к двумерной медианной фильтрации. В этом случае мы получаем следующее представление Бахадура: у, , = медиана (хг:) ~- 1 — У sign(x^,..;1,s -m), (5.о4 2/(m)n 176
где п — размер апертуры А. Для нормального шума {х,Д соот- ветствующее приближение ковариационной функции будет иметь вид X У У arcsin[p(Tx4-r—/-',t2 + s—s')]- (5.55) (r,s)=4 (r' ,s')s4 Для некоторых апертур (5.55) можно еще упростить. 5.4.3. Отклик на косинусоидальные функции 1 * * * Для описания фильтров часто используют их импульсную ре- акцию, отклик на ступенчатую функцию и частотные характерис- тики. Так как медианный фильтр стирает импульсы и сохраняет перепады, импульсная реакция равна 0, а отклик на ступенчатую функцию равен 1. В данном подразделе мы найдем энергетический спектр результата фильтрации косинусоидальных колебаний меди- анного фильтра при л = 3 и и = 5. Сначала рассмотрим фильтра- цию в непрерывном времени. Пусть для x(t) = cos(co0 I), t^R, (5.56) у (J.) — медиана [x (/— 1), x (/),%(/-(- 1)], t e /?. (5.57) Легко увидеть (см. рис. 5.9а), что ( cos [соо (/— 1)], 0 t 1/2 ; //(/) = | cos((o0/), 1/2^/<772—1/2 ; (5.58) i cos[соо(£-Т-1)], ?72—1/2 Г/2, где Т = 2.т/ю0. Так как у(1) —четная периодическая функция с пе- риодом Т, выражение (5.58) определяет y(t) для всех I. Диспер- сию //(/) можно найти прямым интегрированием (5-59а) 1 о 1 + — (sin 2соо — 2sincoo)], О^соо^л. (5.596) 2 [ л Можно разложить р(/) в ряд Фурье с коэффициентами ск -— f exp (i tk coo) у (/) dt, k = 0, + 1, ± 2, ... (5.60) r J Простой подсчет дает ct - -- — I 1 —— — coso)0) , 0 co0 л. (5.61) 2 ( л л / 1 В оригинале дан заголовок «Частотная характеристика». Однако термин ^частотная характеристика» используется для описания линейных фильтров, тог- ia как медианный фильтр нелинеен. Предлагаемый нами заголовок более точно отражает смысл характеристики, рассмотренной в этом подразделе. — Прим, ped. 177
b) Рис. 5.9. Медианная фильтрация косинусоиды при п = 3- а — непрерывное время, x(t) = cos(«0 0; б — дискретное время, .<(/)= cos + 0), «о = 9/8, период Г = 2я/«о = 5,6, y(t) =медиана [х(/— 1), x(t), x(t— 1)] Заметим, что 2с2! —спектральная плотность на частотах ±с>)о, а о2,,— полная энергия спектра. На рис. 5.10а показаны о2,, и 2с2] как функции соо для 0<7сооС7л, а также зависимости о2у для соот- ветствующего 3-точечного скользящего среднего (для линейных фильтров 2c2i = a2u). Видно, что для низкочастотной косинусоидальной функции на входе (о)о^2л/3 или Т^п) скользящая медиана и скользящее среднее имеют сходные характеристики, тогда как при wq>2.t/3 для медианы о2,, и 2c2i увеличиваются, а при ®п = л они достигают того же значения, что и при со0 = О. Это объясняется тем, что 3-то- чечный медианный фильтр сохраняет форму последовательности х,= (—1)!х, но сдвигает ее на один шаг. В дискретном времени выбор нуля в качестве фазового сдвига в (5.56) достаточно произволен. Если же сдвиг фазы 0 считать случайным и имеющим равномерное распределение на интервале [0, 2л], получаем стационарный процесс х (t) = cos (соо t + 0), t = 0, ± 1, ± 2, .. (5.62) н выход медианного фильтра (см. рис. 5.96) будет иметь те же ковариационные свойства, что и в непрерывном времени (5.57). Энергетический спектр последовательности на входе медианного фильтра получается из (5.60) путем сложения спектральных плот- ностей c2k для /гео на интервале [—л, л]. Для значений соо, которые укладываются в л целое число раз, это может привести к пере- крытию спектральных плотностей, но независимо от этого можно рассматривать 2c2i как спектральную плотность на частоте ±а>о. Мы провели аналогичный анализ для медианных фильтров при п=5. Результаты представлены на рис. 5.10,6. Вывод формул был достаточно громоздким. Результаты согласуются с эксперимента- 178
Рис. 5.11. Сечение эмпирической «пере- даточной функции» для изображения 5X5, подвергнутого медианной фильтра- ции (воспроизведено из {5.14, рис. 3.6] с любезного разрешения автора) Рис. 5.10. Фильтрация косинусоиды. Дисперсия о2(М), спектральная плот- ность 2c2i на частоте Ыо для косинусо- иды, подвергнутой медианной фильтрации, и дисперсия о2(х) для косинусоиды, подвергнутой фильтрации с помощью скользящего усреднения ми на моделях, проведенными в |[5.13]. При (о0^2л/5, т. е. Т^. — спектральные характеристики скользящих медиан и сколь- зящих средних одинаковы. В случае произвольного п это будет верно при Т^п. Для больших значений п результаты могут быть получены численным интегрированием (5.59а) и (5.60), в которых у{1) определяется (5.57). Двумерная медианная фильтрация с квадратными апертурами 3x3 и 5x5 косинусоидального сигнала вдоль оси абсцисс точеч- ного растра дает такие же значения дисперсии и спектральные компоненты, как показано выше. Медианные фильтры нелинейны, поэтому описанные частотные отклики для одиночных косинусоидальных функций не соответст- вуют передаточным характеристикам для произвольных сигналов, являющихся суммой косинусоидальных функций. Хейгстер [5.14] подсчитал эмпирические частотные характеристики как отношение преобразований Фурье выходных и входных изображений. Пример для медианного фильтра с апертурой 5x5 приведен на рис. 5.11. На нем показано сечение частотной характеристики, являющейся функцией двух переменных, вдоль одной из координатных осей. Заметим, что для частот Ю1^2л/5 кривая является очень гладкой и ее можно интерпретировать как частотную характеристику, тог- да как для <О1^2л/5 кривая становится резко нерегулярной из-за интерференции различных частот. Разумеется, такие частотные ха- рактеристики зависят от выбираемых входных изображений. Ре- зультаты Хейгстера подтверждают отмеченное выше сходство час- тотных характеристик скользящих медиан и скользящих средних для частот о)^2л/и, или Т'^п. 179
5.4.4. Свойства выборочных функций Мы уже обсуждали действие медианной фильтрации на перепа- ды и сильно осциллирующие последовательности. За исключением таких последовательностей, общая форма последовательностей, подвергнутых медианной фильтрации, близка к форме последова- тельностей, подвергнутых фильтрации с помощью скользящего среднего. Этот вывод следует из Представления Бахадура (5.50). Хотя общий вид последовательностей скользящей медианы и скользящего среднего в целом одинаков, в деталях имеются раз- личия. Несколько авторов отмечали, что последовательности, под- вергнутые медианной фильтрации, включают в себя много элемен- тов с одинаковыми значениями. Простую оценку вероятности ра- венства следующих друг за другом величин дает такой резуль- тат. Пусть последовательность на входе {.г,}—стационарный пе- ремешанный случайный процесс. Тогда liin Р[медиана (лу) = медиана (xy+i) ] =0,5. (5.63) П->сс п Таким образом, примерно 50% всех членов в последователь- ности, подвергнутой медианной фильтрации, равны соседним спра- ва при больших п. (Заметим, что это не то же самое, что равен- ство любому из двух соседних элементов слева и справа.) Доказательство. При движении фильтра от I к г+1 в апертуре фильтра X;-- заменяется на .vy-+i^r. Если эти две случайные величи- ны лежат по одну сторону от г/=медиана (Хг), то медиана (х;+,) = = медиана (ху). Из условия перемешивания вытекает, что лу-и и xi+)+l, асимптотически независимы. Наряду с соотношением меди- ана (х,) хт это дает Р[медиана (х,) = медиана (х,+1) ] ~ P(x;_D<m, x,-+1-ld< m) + + Р (хг_г >m,x;+1+t,> т) = 0,5-0,5 + 0,5-0,5 = 0,5, (5.64) что доказывает (5.63). Для входного сигнала в виде белого шума вероятность в (5.63) может быть подсчитана точно: она равняется 0,5(1 — 1/л) [5.10]. Для двумерной фильтрации такой простой результат, как (5.63), отсутствует, но для белого шума на входе и квадратных апертур при подсчете вероятностей равенства значений Р[медиана (х,у) = медиана (ху, j+)) ] = Р(п2, п-,п2—п) (5.65) можно использовать табл. 5.4, что для апертуры 3x3 дает 0,2100. а для апертуры 9X9 — 0,1649. Другой особенностью последовательностей, подвергнутых меди- анной фильтрации, является наличие небольших случайных пере- падов, что отличает их от последовательностей, подвергнутых фильтрации скользящим усреднением, которые характеризуются очень медленными изменениями. Для удаления таких случайных перепадов Рабинер [5.5] применял после медианной фильтрации 3-точечный линейный фильтр. 180
5.5. Некоторые другие фильтры, сохраняющие перепады Рассмотрим фильтры, которые имеют такие же основные свой- ства. как и медианные: свойства сохранения перепадов и подавле- ния шума. Все фильтры, за исключением тех, которым посвящена последняя часть раздела, являются вариантами медианных фильт- ров. Описанные выше медианные фильтры здесь будут называться простыми медианными фильтрами. Формулы дисперсии для выхо- да фильтров даны для белого шума на входе. 5.5.1. Линейная комбинация медиан Пусть Ак —различные апертуры. Тогда фильтр, полученный с помощью линейной комбинации медиан [5.15, 5.16], определяется следующим образом: к Уц = 2 ah медиана (xi;), (5.66) а-i Ак где ак — вещественные коэффициенты. Апертуры могут быть, на- пример, квадратами со стороной 1, 3, ... , 2k—1 или окружностями с диаметром 1, 3, ... ,2k—1. Можно, разумеется, также выбрать на- боры апертур, которые не включают начало координат, например, квадратные рамки или кольца (см. рис. 5.2). Если все апертуры А;, симметричны относительно центра коор- динат и содержат его по условиям (5.5), (5.6), тогда форма изо- бражения перепада {х°,-,} сохранится, а высота перепада изменит- ся в S ah раз: (5.67) \ А-= 1 / Это следует из того, что каждая медиана в комбинации сохраня- ет перепад. Заметим, что если Sa& = 0, то t/?, = 0. Для нормального белого шума {х,,} на входе можно вычис- лить дисперсию у,;, используя результаты подразд. 5.4.1: к к Var ((/,;):= 2 S akamc(nh,nm,nkm), (5.68) А’_-] 1 где С(пл, nm, обозначает то же, что и в подразд. 5.4.1, а п.1(. пт, «йт —число точек в апертурах Аи, Ат и AhMm соответст- венно. В табл. 5.4 приведены необходимые значения С(пь, пт, п/1т) для случаев, когда апертуры имеют форму квадратов, колец и квадратных рамок. В двух последних случаях апертуры не пере- крываются и для них формула дисперсии упрощается: к Var(yo)= 2 (5.69) fe=i Другим способом выяснить поведение линейной комбинации ме- дианных фильтров является использование сходства многих свойств простых медианных фильтров и скользящего усреднения.. 181
Если заменить каждую медиану в (5.66) средним арифметическим тех же величин х, получим линейный фильтр к zi} = У ah среднее (х,;). (5.70) А=1 Легко подсчитать моменты второго порядка для этого фильтра. Они дают по крайней мере некоторую информацию о свойствах со- ответствующего медианного фильтра. Можно также вернуться на- зад, начать с линейного фильтра с требуемыми свойствами и по- строить соответствующую линейную комбинацию медианных филь- тров. Это особенно просто, если апертуры взаимно не перекрыва- ются (как например, квадратные рамки или кольца). 5.5.2. Взвешенно-медианные фильтры В простых медианных фильтрах все величины х в пределах апертуры влияют на результат фильтрации. Но иногда желательно придать больший вес центральным точкам. Эта возможность ре- ализована в фильтре следующего вида. Для простоты рассмотрим только одномерные фильтры. Основная идея состоит в изменении числа элементов в каждом наборе (Xi-v, Xi,..., х,+,) путем повторения kr раз элементов xl+r и нахождения медианы по такой растянутой последовательности чисел. Назовем полученный фильтр взвешенно-медианным. Пояс- ним это с помощью простого примера. Для п = 3, к^=к} = 2, k0 — 3 имеем yi = взвешенная медиана (xj-i, х,, xl+i) = (5.71) — медиана (x;_t, х^, х,, xitxh х,-^, хг .uj. Если веса симметричны, k-r = kr и если нечетно, то взвешен- но-медианный фильтр сохраняет перепады. Если входной сигнал {хг} является белым шумом с плотностью вероятностей f (х), то взвешенная медиана с весами {/г,} для боль- ших п распределена приблизительно по нормальному закону <т„). где in — теоретическая медиана и S fe; 1 (У ^г)' 4 /2 (//г) (5.72) Так как этот результат нигде больше нс приводился, дадим крат- кое указание для его доказательства. Используя обобщенное пред- ставление Бахадура [см. (5.50) ], получаем: г/; = взвешенная медиана (х() 1 О + Д VI s fersign(x;+r—ш). 2/ (гп) У (5.73) 182
По центральной предельной теореме выражение в правой части имеет приблизительно нормальное распределение при выполнении условия Линдберга, которое для весов последовательности ^r = fer(n> имеет вид: [£(п)]2 max---—-----»-0 при и->оо. (5.74) г SH’]2 Это условие по существу требует, чтобы ни один из весов kr не был значительно больше остальных. 5.5.3. Итерационные медианные фильтры Поскольку при медианной фильтрации сохраняются перепады, то они сохраняются и при итеративном применении медианных фильтров [5.1, 5.8]. Тьюки предложил замечательную методику сглаживания, заключающуюся в том, чтобы повторять медианную фильтрацию до тех пор, пока не прекратятся изменения, т. е. пока не получится последовательность, инвариантная к медианной фильтрации (стабильная точка, ср. гл. 6). Заметим, что такая ин- вариантная последовательность не обязательно должна состоять из одинаковых элементов (в отличие от последовательностей, полу- чаемых при итерации скользящего усреднения стационарных по- следовательностей {.г,}, которые в конце концов становятся после- довательностями с постоянными значениями). Статистические свойства итерационных медианных фильтров проанализировать трудно. Можно поделиться здесь некоторым опытом, полученным при моделировании одномерных процессов AR(1). При неотрицательно коррелированных AR(1)-последова- тельностях с параметром а^О для получения инвариантной после- довательности было нужно только несколько итераций и после первой медианной фильтрации наблюдались лишь небольшие из- менения. Поэтому представляется вероятным, что формулы диспер- сии для простых медиан приближенно справедливы также и для итерационных медианных фильтров при обработке процессов с не- отрицательными ковариационными функциями. Для процессов AR(1) с чередующимися положительными и отрицательными кор- реляциями, «<0, для получения инвариантной последовательно- сти потребовалось большое число итераций, и во время процесса фильтрации происходили большие изменения. Результирующие по- следовательности были гораздо более гладкими и ближе к сред- нему уровню, чем последовательности после одного шага фильтра- ции. При использовании итерационных медианных фильтров можно, конечно, менять апертуры от шага к шагу итерации. Прэтт [5.8] и Нарендра [5.17] исследовали метод двумерной фильтрации, в ко- тором сначала к каждой строке изображения применяется одно- мерный медианный фильтр, а затем к каждому столбцу обработан- 183
•ного изображения также применяется одномерный медианный фильтр, т. е. сначала г,;=медиана(хг-,7-_с, ••• , г,-,/. , х',-., (5.75. .после чего //,; = медиана(гг_0>/>>... ,ziJt... ,zi+v,}). (5.76) Такой фильтр называется разделимым медианным фильтром. Его статистические свойства можно проанализировать теоретически, ес- ли {Xij} —белый шум с плотностью вероятностей f(x) (см. [5.17]). Главное заключается в том, что переменные г в (5.76) независи- мы, так как они определяются переменными х в различных стро- ках. Нарендра нашел точный вид плотности вероятностей fz пере- менных z с помощью (5.8) и подставил fz в приближенную форму- лу дисперсии (5.9) для уц. Мы приведем несколько более простую формулу, полученную при использовании того факта, что согласно (5.9) fz есть приблизительно нормальная плотность Лг(т, стп). Под- ставив эту величину в (5.12), получим я + л, 2—1 2 (5.77) Для нормальных N(ш, о) величин (х,,} с помощью (5.77) и не- большой модификации, описанной в подразд. 5.2.1, получим VaC ((/;;) а2 (п + л/2— I)2 (5.78) При больших и это дает дисперсию выходного сигнала, равную 2,47 (о/n)2, тогда как дисперсия для простой медианы по аперту- ре пХп равна 1,57 (о/п)-, а дисперсия скользящего среднего по апертуре пХп равна (ст/лг)2. Дисперсия последовательности на вы- ходе разделимого медианного фильтра примерно на 57% больше, чем дисперсия медианы по апертуре пХп, и примерно на 147%, превышает дисперсию скользящего среднего. '5,5.4. Сглаживание остатка Предположим, что переменная .г удовлетворяй! модели типа «сигнал плюс шум»: xi^si~-ni, (5.79) где сигнал {з,} изменяется медленно по сравнению с шумом {«,}. .Медианная фильтрация дает оценку з,: у, = медиана (л\) ~з,. (5.80) Таким образом, остаток n=xt—медиана(лу) ~н, (5.81) 484
является оценкой шума. Дальнейшая медианная фильтрация ос- татка может еще больше уменьшить шум z,= медиана(«;.) ~0. (5.82) Можно надеяться, что суммирование Уг и z, даст хорошую оцен- ку So s, = z/i +г, = медиана (х,) + медиана [х,—медиана (х,-) ]. (5.83)! Такая методика сглаживания остатка (или двойного сглаживания) была предложена и изучена в [5.5, 5.13 и др.]. Легко понять, что такая методика сохраняет перепады. Некоторые другие методы комбинированного сглаживания можно найти в [5.18]. 5.5.5. Адаптивные фильтры, сохраняющие перепады Фильтры, описанные выше, являются сглаживающими фильтра- ми общего назначения. Для ограниченных классов изображений могут быть разработаны специальные фильтры. Один важный класс изображений встречается в дистанционном зондировании при классификации точек изображения на ограниченное число классов. Изображения могут быть описаны как состоящие из ком- пактных участков с постоянным значением сигнала. Другими сло- вами, можно считать, что идеальное изображение состоит из участ- ков с постоянным значением сигнала, но наблюдаемые изображе- ния искажены добавлением шума. Для этого типа изображений было предложено несколько алгоритмов сглаживания (см., напри- мер, [5.19, 5.20], где можно найти дополнительные ссылки). В' предложенных алгоритмах были использованы следующие основ- ные принципы. Апертура имеет центр в точке (<, /). Если в пределах апертуры наблюдается малое различие между значениями, то (г, /) считает- ся внутренней точкой и ее значение заменяется средним значением но апертуре. Если же, наоборот, различие между значениями внут- ри апертуры велико, то (г, j) считается пограничной точкой и ей приписывается среднее значение по точкам, лежащим с той же стороны от границы, что и (t, /). В качестве меры различия можно использовать локальные дис- персии, значения Лапласиана или градиента. С увеличением раз- меров апертуры объем вычислений резко возрастает, поэтому было предложено итерировать эти алгоритмы, вместо того чтобы ис- пользовать большие апертуры*. Такие алгоритмы не только сохра- няют резкие перепады, но и обостряют смазанные. Например, на- клонные плоскости превращаются в ступеньки. Таким образом, ал- горитмы не сохраняют наклонные перепады на самом деле. Неко- торые из алгоритмов предназначены для сохранения не только перепадов, но и острых углов граничных участков. Более деталь- ное изучение материала, изложенного в этой части, читатель мо- жет найти в [5.19, 5.20]. 1 Имеется в виду последовательное применение алгоритмов с малой аперту- рой. - - Прим. ред. 185.
5.6. Использование медиан и других порядковых статистик в обработке изображений В предыдущих разделах мы исследовали способность медиан- ных фильтров осуществлять сглаживание. В этом разделе приве- дем некоторые примеры того, как медианные фильтры можно ком- бинировать с другими способами обработки изображений. Приме- ры взяты из задач обнаружения границ, выделения объектов и классификации. Заключительная часть содержит краткий перечень общих порядковых статистик и их использования в обработке изо- бражений. 5.6.1. Обнаружение границ Свойство медианных фильтров сохранять перепад делает воз- можным их применение в качестве предварительных фильтров при обнаружении границ, т. е. для сглаживания изображений перед применением обнаружителя границ. Многие обнаружители границ принадлежат к типу 1, если |gi| >Д или |g-2| >Д, О в противном случае, (5.84) где g'i, g2 — градиенты в точке (г, /), а Д— пороговое значение. После того как было выполнено предварительное сглаживание, полезно использовать градиенты, являющиеся симметричными функциями, найденными по окрестности, большей единицы. Напри- мер, §1 ~ yi+u.j §2 У(,]+и Уг,]—1П (5.85) где 1/2^«^и/2, а п — размер боковой стороны сглаживающей апертуры. Заметим, что использование медианных фильтров и ме- дианных обнаружителей границ равнозначно использованию блоч- ного обнаружителя границ, в котором градиенты находятся по ме- дианам в блоках: gi = медиана (Xjj) —медиана (xi;), (5.86) §2 = медиана (х^) —медиана (x,j). в, в2 Квадратные блоки с размерами 3x3 показаны на рис. 5.12. Размер окрестности, по которой находится градиент, равен 2 (ц= = 1). Скользящие медианы могут быть также использованы для повторной фильтрации после усиления границ [5.7]. Резкая гра- ница, смазанная низкочастотным линейным фильтром, может быть обострена посредством либо инверсной фильтрации, либо ее моди- фикации. Так как импульсные характеристики линейных фильтров инверсного типа часто имеют большие боковые лепестки, то они 186
A, Аг Рис. 5.12. Обнаружение границ. Пред- варительная фильтрация медианным фильтром (с апертурой 3X3) соот- ветствует обнаружителю границ блоч- ного типа. Центральная точка помече- на крестиком Рис. 5.13. Восстановление ступенчато- го перепада с помощью линейного фильтра (а), пяти итераций линейного и медианного фильтров (б); точки по- казывают данные на входе, выходные точки соединены между собой линиями. (Воспроизведено из [5.7, рис. 2.6] с любезного разрешения Американского оптического общества © и Б. Р. Фридена) обычно приводят к ложным колебаниям на границах (повторам} (ср. с рис. 5.13,а). Фриден [5.7] использовал медианный фильтр для уничтожения таких ложных колебаний (на рис. 5.13,6 линей- ное восстановление и медианная фильтрация были повторены пять раз). Используемый размер апертуры /1=11 был равен периоду колебаний. Заметим, что граница на рис. 5.13,6 не только имеет меньше ложных колебаний, но также острее, чем граница на рис. 5.13,а. 5.6.2. Выделение объектов Выделение объектов на изображении — это одна из характер- ных задач обработки изображений. Будем считать, что объекты разбросаны на плавно изменяющемся фоне и что они достаточно^ хорошо разделены, как например, на аэрофотоснимке камней, раз- бросанных на холмах. Можно предложить следующий метод выде- ления объектов: сначала изображение сглаживается, с тем чтобы получить оценку переменного фона, после чего эта оценка вычита- ется из исходного изображения. В идеальном случае после этой обработки объекты остаются на постоянном фоне (с нулевым уровнем) и их можно обнаружить путем сравнения с порогом. В качестве оператора сглаживания можно использовать, например, скользящую медиану или скользящее среднее, т. е. у 7; = х t i—м е ди а н а (х ,•;1 (5.87) А или 21 j=Xij—среднее (хц). (5.88) А 187
о о о о 0 0 0 0 0 0 9 9 О 0 9 9^ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 9 0 3 а) 1. 1 1 2 3 4 5 1 1 1 2 з 5 5 1 1 1 2 4 5 6 1 1 1 4 5 6 1 1 1 ~> з < 5 1 I 1 2 3 4 5 1 1 1 3 4 5 1 1 1 2 ш 4 5 1 1 1 2 3 4 5 в/ 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 ь 8 -1 0 0 0 0 8 8 -1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 д) Рис. 5.14. I I 1 I 1 । I ро иГ । 1 1 1 । । 1 । । i । । 1 i iiiti 1 1 [~io] I I 11111 О 0 0 0 0 0 О 0-1-2 -2 -1 О 0-2 5 5-2 О 0-2 [5 5|-2 О 0-1-2-2-1 О 0 0 0 0 0 О о -1 - I - I О О 0-1 р~]_ | О О 0 -1 -1 -1 О ^деление объектов: 1 1 2 3 4 п 1 1 2 3 4 5 6 1 1 2 Г?2 Р 5 6 1 1 2 j 12|3| 5 6 I 1 2 3 4 5 6 1 1 2 3 4 5 6 I 12 3 4 5 6 1 1 2 [?2~] 4 5 6 1 1 2 3 4 5 6 Б) 1 1 2 3 4 5 113 5 6 6 6 I 14 7X76 1 I 4 J Х 7 6 1 13 5 6 6 6 1 1 2 3 4 5 6 1 1 3 4 5 5 6 I 1 3 [~4~| 5 5 1 1 3 4 5 5 6 г; 0 0 0 0 0 0 0 О 0-1-2 —2 -1 О О 0 -2 5 5 -2 О О 0-2 [5 5|-2 О О 0-1 -2 -2 -I О 0 0 0 0 0 0 0 О 0 - 1 - I - 1 О О О 0-1 р~]-| О О О 0 -1 - I -1 О о е) а — исходные объекты; б — изображение на входе фильтра, состоящее из объек- тов на постоянном фоне; в — медианная фильтрация входного изображения с апертурой 3X3; г — фильтрация с помощью скользящего среднего по окрестно- сти 3X3; д — разность в и входного изображения; е — разность г и входного изображения П 9 i j 9 9 И Апертуры могут иметь вид квадратов или крестов. Если разме- ры апертуры, по крайней мере, вдвое больше размеров объектов, то скользящая медиана стирает объекты и, следовательно, вычи- 188
тание в (5.87) дает полное их выделение. Это верно только для частей изображения с постоянным фоном. В других частях возни- кают некоторые искажения объектов. Однако фильтр, основанный на скользящем среднем (5.88), дает значительно больше искаже- ний во всех точках (рис. 5.14). Наконец, заметим, что (5.87) — это линейная комбинация с медианным фильтром при 2йа=1 — —1=0, и, таким образом, обработка по (5.87) не затрагивает гра- ниц объектов. 5.6.3. Классификация Многоспектральная классификация изображений при дистан- ционном зондировании обычно проводится как поэлементная клас- сификация, т. е. при классификации точки используются значения спектров только в этой точке. Однако для зашумленных изобра- жений нужен тот или иной вид сглаживания, в связи с чем было предложено несколько методов. Наиболее легко и часто применяемый метод — это сглаживание результата поэлементной классификации посредством решения по локальному большинству. Другой простой метод состоит в пред- варительном сглаживании каждой спектральной компоненты с по- мощью скользящих средних или скользящих медиан. Все методы имеют тот недостаток, что элемент изображения, который одно- значно классифицируется по своим спектральным значениям, пос- ле операции сглаживания может быть отнесен к другому классу вследствие влияния соседних элементов. Комбинируя спектраль- ные значения в каждой точке с медианой соседних точек и ис- пользуя эти комбинированные значения для классификации, полу- чим алгоритм, лишенный упомянутого недостатка. Пусть xkij (fe=l,..., К) обозначают спектральные величины в точке («/) и пусть = медиана [х(^>] (5.89) А Тогда при классификации по обычным правилам для многомерных нормальных распределений можно использовать расширенный век- тор признаков: (4/М/’. Й=1,...,К). Использование медианных фильтров для сглаживания обосно- вывается их свойством сохранять перепады, что в данном случае приводит к сохранению границ классов. 3.6.4. Порядковые статистики общего вида Для п чисел *1,... ,хп г-я порядковая статистика х(г,П) опреде- ляется как r-е по значению число из данных п. В частности, x(i,^) = = т1пхг, x(n,n) = max х/, a X[(n+i)/2,n] = медиана (хг). Фильтрация co скользящими порядковыми статистиками осуществляется анало- 189
гично медианной фильтрации: апертура скользит по изображению и подсчитывается r-я порядковая статистика значений внутри апер- туры. Такие фильтры также называются процентильными фильт- рами. Скользящие порядковые статистики могут быть использованы для сжатия, сужения и растяжения (расширения) объектов в изо- бражении (эрозия и расширение)» Они применялись, например, к клеточным изображениям [5.14]. Для сжатия используется г< <(п + 1)/2, например, г=1. а для расширения — r>(n+l)/2, на- пример, г = п. Для г= (п+ 1)/2, т. е. для медиан, средний уровень изображения не меняется. Сжатие и расширение часто осуществ- ляются путем сравнения исходного изображения с порогом и по- следующего применения скользящих решающих правил типа г- из п. Заметим, что фильтрация с помощью скользящих порядковых статистик при последующем сравнении с порогом дает точно та- кие же результаты. Промежуточное изображение может содержать значимую полезную информацию. На рис. 5.15 показана фильт- рация с апертурой 3X3 и (г, п) = (2,9). Статистическая литература по порядковым статистикам огром- на. Большинство представленных выше результатов по медианам имеют аналоги для порядковых статистик общего вида [5.3, 5.10]. Для входного сигнала с белым шумом могут быть получены как точное, так и асимптотическое распределения, тогда как для небе- лого шума имеются только асимптотические. Однако предельное поведение экстремальных порядковых статистик [для r/n->0 или 1, например, х(1,П) и Х(П,п)] различно по своей природе. В частно- сти, предельные распределения не являются нормальными. 1 0 1 1 0 0 1 0 0 0 о 0 0 6 б 9 3 5 0 00000- .00000 0 00050 -00010 0 6 ь 5 6 о 0 0 0 0 0- 0 0 0 0 0 1 3 9 4 5 4 5 0 0 0 1 1 14000- -01000 0 -01000- -0 00 0 0 0 1) 1 1 0 1 0 ... а) 5} в) 0 0 00000 Рис. 5.15. Утоныпение объ- oooiiio • о о о о о ектов: oooioio • о о о 1 о а — изображение на входе; 6 — результат фильтрации о 1 1 1 1 1 0 о о 0 о о х<2.9>: в — результат сравне- ния б с порогом, равным 4; о о 1 1 о о о oiooo г—результат сравнения ис- „ „ ходкого изображения с по- о 1 1 1 о о о -о рогом, равным 4; <3—ре- 0 0 0 0 0 Q 0 зультат фильтрации 2-из-9 -> > изображения г 2/ ° > 190
Для скользящих порядковых статистик — стационарных, удов- летворяющих условию перемешивания процессов {хг} при г/п, до- статочно отличающихся от 0 и 1, — среднее выходного сигнала приблизительно равно ^.-процентилю маргинальной функции рас- пределения F(x) величин Xi, где Х=г(и+1), т. е. Дк(г.п)]«хА = Г-1(Х), (5.90) а автоковариационная функция асимптотически равна г (т) « const ( 1 — — ' , (5.91) \ « / т. е. сходна с (5.53) для медиан. С помощью (5.90) можно оце- нить, насколько изменится средний уровень последовательности или изображения. Формула (5.91) показывает, что скользящие по- рядковые статистики дают сглаживающий эффект, если значение rjn не слишком близко к 0 или 1. Хейгстер [5.14] исследовал эмпирические передаточные функ- ции (ср. подразд. 5.4.3) для скользящих порядковых статистик. Если значение г/п не слишком близко к 0 или 1, эти функции по- хожи на передаточные функции медианных и частотные характе- ристики низкочастотных линейных фильтров, но для г/п, близких к 0 или 1, они не являются гладкими даже на низких частотах. Признательность. Автор хотел бы поблагодарить проф. Б. Розе и д-ра Т. Ор- хауга за полезные обсуждения в процессе этой работы, а также Гуниллу Джон- сон за подготовку иллюстраций. ГЛАВА 6 МЕДИАННАЯ ФИЛЬТРАЦИЯ: ДЕТЕРМИНИРОВАННЫЕ СВОЙСТВА (Ш.-Г. Тян)1 В данной главе на основе детерминированного подхода изла- гаются некоторые новые результаты, касающиеся свойств медиан- ных фильтров. Наша цель — найти для каждого медианного фильтра специальный класс последовательностей, которые не из- меняются под действием этого фильтра. Такие последовательности называются стабильными точками фильтра. Необходимость реше- ния поставленной задачи может вначале показаться непонятной, поэтому следует сказать несколько слов об истории развития ме- дианной фильтрации. Медианная фильтрация в том виде, в каком она была введена в [6.1], используется главным образом вследст- вие ее вычислительной простоты и нечувствительности к помехам, 1 М/А-СОМ Labs, 11717 Exploration Lane Germantown, MD 20767, USA. 191
имеющим распределение с тяжелыми хвостами. Затем обратили внимание на другое свойство медианных фильтров, а именно, на то, что действуя как сглаживающие фильтры, они в то же время могут сохранять крутые перепады, или контуры в сигналах. Эта способность сохранять края делает медианные фильтры удобными сглаживающими фильтрами, если в сигнале часто встречаются крутые перепады и их нельзя сматывать при сглаживании. То, что такие фильтры сохраняют перепады, равносильно утверждению, что перепады инвариантны к медианной фильтрации. Это — одна из причин, которая заставляет заниматься изучением стабильных точек медианных фильтров. Если стабильная точка имеет не удов- летворяющие нас характеристики, то для того чтобы она не появ- лялась на выходе медианного фильтра, может оказаться необхо- димым так модифицировать фильтр, что данная частная последо- вательность не будет стабильной точкой или что эти нежелатель- ные свойства будут подавляться. Может также случиться, как в рассмотренных ниже примерах, что произвольный входной сигнал при повторной многократной медианной фильтрации будет сходить- ся к одной из стабильных точек фильтра. Следовательно, изучая стабильные точки, можно достичь хотя бы на качественном, если не количественном, уровне понимания работы медианного фильтра на входных последовательностях общего вида. Характеристики стабильных точек одномерных медианных фильтров рассматриваются в разд. 6.1. Здесь показано, что эти точки можно разделить на две категории. Стабильные точки пер- вой категории можно рассматривать как некоторые обобщенные монотонные последовательности. Ко второй категории относятся точки более специального вида. Затем результаты, полученные в одномерном случае, переносятся на двумерный, однако эта часть теории еще в значительной степени нс завершена. В заключение обсуждается интересный алгоритм Хуанга и других [6.4] двумер- ной медианной фильтрации. 6.1. Стабильные точки одномерных медианных фильтров Обозначим одномерный медианный фильтр с шириной аперту- ры (2&+1) через МФ2н1. т. е. определим соотношение вход-вы- ход как {«/„} =МФ2л+1 {*п}, где у„ = медиана(.гп-Л, ..., .т„, ..., для всех п. (6.1) Предполагается, что последовательности продолжаются бес- конечно в обе стороны. Имеется относительно немного хорошо известных свойств медиан, которые могут быть непосредственно полезны нам. Начнем с рассмотрения двух из них. Свойство 1. Если ...^Хо^ ... ^xft, то медиана (х.-/<, ..., х0, ..., лд)=х0. Свойство 2. Если g(x) монотонна, то мсдиана[^(л|), ..., g(лс2ы-1)] =g[медиана(хь ..., x2h+i)]. 192
Для медианного фильтра, определенного по формуле (6.1), из свойства 1 .можно сделать вывод, что монотонная последователь- ность {%«}, т. е. последовательность с хп^хт (или хп^хт) для всех «<т, инвариантна к медианной фильтрации с произвольной Шириной апертуры. Например, ступенчатая функция является мо- нотонной последовательностью, поэтому она инварианта к меди- анной фильтрации. Если считать перепад в идеальном случае сту- пенчатой функцией, то очень просто объяснить, почему после ме- дианной фильтрации перепады сохраняются. Монотонные после- довательности являются всего лишь простейшими стабильными точками медианных фильтров. Их обобщение дает более важный класс стабильных точек, который будет обсуждаться в этом раз- деле. Из свойства 2 вытекает, что, поскольку рассматриваются только медианы, масштаб значений последовательностей не игра- ет роли. В самом деле, исходную последовательность данных {хп) можно свести к бинарной последовательности, без потери, какой-либо информации о медианах, путем введения последова- тельности {gn(Xn)}, такой, что для всех —оо<а<оо, где ga Х>а' (6-2) (О, х<а. Очевидно, что {хп} является стабильной точкой медианного фильтра МФ2),+1 тогда и только тогда, когда {ga (х„)} является его стабильной точкой для всех а. Это свойство позволяет зна- чительно упростить входную последовательность данных и будет особенно полезно при рассмотрении двумерных последовательно- стей. Как указывалось выше, монотонные последовательности—это стабильные точки медианных фильтров с произвольной шириной окна. Однако требование абсолютной монотонности является не- обязательным. Поскольку медианный фильтр имеет фиксирован- ные и конечные размеры апертуры, интуитивно ясно, что моно- тонность должна сохраняться только в пределах каждого сег- мента, совпадающего по размерам с апертурой. На самом деле это требование можно ослабить еще сильнее. Определение. Последовательность {хп} является локально-мо- нотонной на отрезке m [ЛОМО (т)], если (хп, ..., xn+m-i монотон- на для каждого п. Очевидно, что ЛОМО (т) является также ЛОМО (р), если р<т. Допустим, что {х„} есть ЛОМО (т). Тогда последователь- ности (х„, ..., xn+m_i) и (xn+i, ..., Xn+m) монотонны. Если хп< <Хп+т-\ И Х„+1>Хп+„г, ТО ИМввМ Xj<Xj и Xj^Xj ДЛЯ всех п+1^ sgusgZra + zn—1, откуда вытекает, что хп+1= ... =хп+т_1. Следова- тельно, локально-монотонные последовательности могут быть иначе определены при помощи леммы. Лемма 6.1. Если имеется какое-нибудь изменение в общем на- правлении, то ЛОМО (т) -последовательность должна оставаться постоянной хотя бы для (т—1) членов. Используя функцию уровня ga(x), определенную ранее, мож- но легко показать, что последовательность является ЛОМО (т), 193
если при всех а выходной сигнал остается равным 1 или 0 хотя бы для (т—1) членов. Получаем теорему, касающуюся локально-монотонных после- довательностей и медианной фильтрапии. Теорема 6.1. ЛОМО (т)-последовательность инвариантна к МФ2/,+| для всех k, —2. Доказательство. Рассмотрим сегмент (хп-к, ..., xn+k), k=m—2, который либо монотонен, либо* внутри него общее направление меняется, оставаясь постоянным на субсегментах т—1=&+1 (см. лемму 6.1). В первом случае медиана элементов этого сегмента, очевидно, равна хп, во втором субсегмент, имея длину не менее (&+1), должен содержать х. Следовательно, найдется по край- ней мере (/г+1) элементов в сегменте, равных хп, и, таким обра- зом, медиана также должна быть равна хп. Хотя последовательности ЛОМО (k+2) инвариантны к МФ2/:+1, обычно они не исчерпывают собой набор стабильных точек МФ2Л+1. Было установлено, что эти стабильные точки относятся к Двум совершенно разным категориям. Последовательности ЛО- МО +2), рассмотренные выше, образуют первую категорию. Тео- ремы 6.2 и 6.3 характеризуют эти две категории и показывают различия между ними. Доказательства теорем приведены в при- ложении 6.А. Теорема 6.2. Если {хп} является стабильной точкой МФгь-н и имеется монотонный сегмент (хр, хР+\,..., хР+/.) длиной (k+\), тогда {хп} является ЛОМО(k + 2). Эта теорема говорит о том, что если стабильная точка МФ2/<+1 является достаточно гладкой [т. е. монотонной для сегмента дли- ной (&+1)], то она является гладкой по всей длине [т. е. являет- ся ЛОМО (6+2)]. Определение. Последовательность нигде не является гладкой [назовем такую последовательность НЕЛОМО(6)], если она не содержит монотонного сегмента длиной k. Теорема 6.3. Если {хп} является стабильной точкой МФ2Н1 п если она является НЕЛОМО(6+1), то {хп}—бинарная последо- вательность, т. е. хп может принимать только два значения. Теорема 6.3 представляется несколько неожиданной в теории медианных фильтров, и следствия из нее будут обсуждаться позд- нее. Для каждого медианного фильтра МФм+i будем относить стабильные точки, описываемые теоремой 6.2, к точкам первого типа и точки, описываемые теоремой 6.3, — ко второму типу. Поскольку любой сегмент, состоящий из двух отсчетов, являет- ся монотонным, то по теореме 6.2 любая стабильная точка МФз является ЛОМО(З). Для МФз не имеется стабильных точек второ- го типа. Однако для медианных фильтров с размером апертуры больше 3 стабильные точки второго типа существуют. Ниже опи- сан метод получения некоторых из них. Рассмотрим периодическое продолжение последовательности а0, а1; а2,..., ак; —а0, — аъ ... , — ак, (6.3) 194
где «;=1 или —1. Очевидно, что эта последовательность является Стабильной точкой МФгл+ь Если (ао,..., йк) монотонна, то эта юследовательность есть ЛОМО(/г + 2) и, следовательно, она при- аадлежит к стабильным точкам первого типа. Если (щ, не йонотонна, то легко увидеть, что эта последовательность есть НЕЛОМО(£+1) и, следовательно, она принадлежит к стабильным', дочкам второго типа. Этот метод позволяет получить стабильные точки для МФ5 и МФ7, но для МФд он не справедлив. Например, периодическое чередование 1, 1, —1, —1 является стабильной точ- кой второго типа для МФд, но ее период равен 4, а не 10, как требуется в (6.3). Остается невыясненным, все ли стабильные точ- ки второго типа периодические. Так как стабильные точки второ- го типа для МФ2Н1 двузначны и имеют тенденцию колебаться быстрее [будучи НЕЛОМО (/? + 1) ], чем стабильные точки первого типа [ЛОМО (/г + 2) ], их можно считать нежелательными с точки зрения сглаживания последовательностей. Действительно, если от- резок последовательности данных является бинарной и быстро ко- леблющейся последовательностью, нахождение медианы в конеч- ном счете мало что дает. Поэтому интересно рассмотреть те обоб- щенные медианные фильтры, которые являются сглаживающими, построенными на простых медианах, но, если это нужно, ведут се- бя при наличии стабильных точек второго типа или бинарных быстро колеблющихся последовательностей как линейные фильт- ры. Прежде чем мы остановимся на получении таких обобщенных медианных фильтров, приведем теорему, обратную теореме 6.1. Теорема 6.4. Если последовательность {хп} инвариантна к МФ>„2.] для всех /7=1, 2, ..., k, то она является ЛОМО (/г + 2). Доказательство. По теореме 6.2 и с учетом того факта, что лю- бая последовательность является ЛОМО(2), стабильная точка для МФз, т. е. для /е= 1, должна быть ЛОМО(З). Предположим, что теорема верна для k—1. Тогда последовательность {хп}, которая инвариантна к МФ2р+1 для всех /7=1, 2,... , k, должна быть Л.О- МО(k + 1), следовательно, каждый сегмент длиной (&+1) моното- нен. Согласно теореме 6.2 последовательность {хп} является ЛО- МО(й + 2). В [6.2] отмечено в частном случае, каковы возможные соот- ношения между k и т в теореме 6.1. В работе [6.5] также описано соотношение между k и т и, кроме того, показано, что МФ2/(+1 стремится создать плоские верхушки (или впадины) дли- ной (/г+1), что очень характерно для последовательностей ЛО- МО(£ + 2) (см. лемму 6.1). До сих пор мы рассматривали только двусторонние бесконеч- ные последовательности; для последовательностей с конечной дли- ной в [6.6, 6.7] были использованы несколько определений конце- вых точек. Например, для МФгь-н мы можем уменьшать размер апертуры на 2 для каждого шага по направлению к концу после- довательности, как только центр апертуры окажется только на k отсчетов от ее конца [6.7]. При таком определении теоремы 6.1 и 6.2 остаются справедливыми, однако, теорема 6.3 нуждается в не- 195
значительном изменении для концевых точек. Но так как это ни- чего не дает для понимания проблемы, мы не будем на нем оста- навливаться. Была замечена очень тесная связь между медианными фильт- рами и их стабильными точками. Начнем с рассмотрения этой связи для стабильных точек первого типа. Локально-монотонные последовательности обладают некоторым типом гладкости, выра- жающейся в монотонности. Возьмем в качестве примера последо- вательности ЛОМО(/и); в пределах сегмента из последовательных т отсчетов не допускается никаких изменений, или, что то же са- мое, для любого изменения сигнала он должен оставаться посто- янным в течение следующих (т—1) отсчетов, а между плоскими участками сигнал является монотонным. Это исключает возмож- ность появления изолированных пиков или выбросов с длитель- ностью, меньшей или равной (т—2). Согласно работе [6.7] они не имеют должной поддержки и медианные фильтры с размером апертуры, большим или равным (2m—3), способны устранять их. С другой стороны, разрывы в виде перепадов допускаются неза- висимо от перепада, поскольку сигнал локально-монотонен, и сле- дующий перепад, который, по предположению, будет иметь про- тивоположное направление, не может встретиться в пределах (/и— — 1) отсчетов. Точно так же медианные фильтры с размером апертуры, меньшим или равным (2m—3), способны сохранить их. Конечно, не все свойства ЛОМО-последовательностей полезны. На- пример, плоские участки, которые неизбежны для любого измене- ния в ЛОМО-последовательностях, могут оказаться нежелательны- ми, а медианная фильтрация имеет тенденцию создавать боль- шое их число '[6.6, 6.8]. Так как требуется только локальная монотонность, сигналы такого рода локально не должны быть полиномами малого порядка. Это непосредственно подтверждает- ся медианной фильтрацией зашумленного пилообразного сигнала. Выходной сигнал фильтра будет больше напоминать лестницу с регулярно расположенными ступеньками, чем пилообразную кри- вую. Интуитивно понятно, что медианной фильтрацией можно вос- становить только монотонность, но не линейность или другие свой- ства полинома низкого порядка, присущие сигналу [6.7, 6.9]. В этом случае можно рекомендовать после медианной фильтрации использовать симметричные линейные сглаживающие фильтры с малой апертурой. Малые апертуры выбираются во избежание ис- кажений на перепадах. Что касается плоских участков, образован- ных при медианной фильтрации, то искаженный сигнал может быть частично восстановлен с помощью специальной процедуры огрубления [6.6—6.8]. Мы обсудили преимущества и недостатки медианной фильтра- ции, исходя из характеристик локально-монотонных последова- тельностей, которые являются также стабильными точками пер- вого типа. Теперь рассмотрим стабильные точки второго типа. Представляется, что стабильные точки второго типа — это после- довательности фиксированной формы, которые редко встречаются 196
в отрезках реальных сигналов. Однако возможно, что части после- довательности данных быстро флуктуируют, принимая два значе- ния. Если требуется восстановить взвешенное среднее каждой час- ти, то медианные фильтры вряд ли будут пригодны. Здесь опять после медианной фильтрации можно использовать симметричные линейные сглаживающие фильтры с малой апертурой. Однако нас больше интересуют нелинейные сглаживающие фильтры, которые строятся на простых медианных фильтрах и не имеют таких ста- бильных точек второго типа. Основная причина интереса к нели- нейным сглаживающим фильтрам состоит в том, что они сохраня- ют перепады. Этому посвящен разд. 6.2. 6.2. Некоторые обобщенные медианные фильтры Существует другой класс последовательностей, связанных с ме- дианными фильтрами, которые нам следует изучить. Эти после- довательности можно назвать рекуррентными точками (последова- тельностями). В общем, для нелинейного сглаживающего фильтра Т последовательность рекуррентна, если она является стабильной точкой Тт при некотором т^2, но нс для Т. Здесь Тт означает /n-кратное применение Т. Например, знакопеременная (осцилли- рующая) последовательность 1, —1, 1, —1,... не является стабиль- ной точкой МФ3, тем не менее это — стабильная точка МФ23. В целом нам известно очень немного о рекуррентных последователь- ностях медианных фильтров. Несколько найденных нами приме- ров дают возможность предположить, что они должны быть би- нарными, флуктуирующими и иметь фиксированную форму. Од- нако у нас нет математического доказательства правильности этих наблюдений. Если существование стабильных точек второго типа делает медианные фильтры бесполезными в качестве сглаживаю- щих, то следует искать альтернативные пути, свободные от этих точек. Точно так же хотелось бы избежать и рекуррентных точек. В этом направлении получено не очень много результатов и неко- торые из них, касающиеся МФ3, даны ниже без доказательства. Детали можно найти в приложении 6.Б. п Теорема 6.5. Пусть а0=#=1, ан^О и 2 аь=1. Тогда стабильны- й=0 ми точками сглаживающего фильтра 7’ = (6.4). являются только ЛОМО(3)-последовательности при а^у^О для не- которых нечетных k. Если Яй = 0 для всех нечетных k, то стабиль- ными точками Т будут и последовательности ЛОМО(З), и знако- переменные последовательности. Для т^2 стабильной точкой Тт также должна быть ЛОМО(З) или знакопеременные последова- тельности. Последние не могут быть инвариантны к Тт, если толь- ко не справедливо, что: а) ай = 0 для всех четных k и т или 2) Яй = 0 для всех нечетных k. 197
С учетом приведенной теоремы сделать, чтобы знакоперемен- ная последовательность не была ни стабильной, ни рекуррентной точкой, можно только, если рассматривать сглаживающий фильтр Т в (6.4) для, по крайней мере, четных k и нечетных /, причем ап и ctj должны быть положительны. Например, вместо простого МФ3 можно использовать 7’1 = р/+(1—ЮМФ3, где 0<р<1, I — тож- дественный оператор, или Т2=М.Ф3+(1—р)МФ23=МФ3* Л. В са- мом деле, оба они свободны от стабильных точек второго типа и рекуррентных точек. Далее можно показать, что верны следующие теоремы. Теорема 6.6. Для Т = р/+ (1—р)МФ3, 0<р<1, последователь- ность Тт{хп} сходится поточечно к ЛОМО (3)-последовательностям при Ш->оо. Знакопеременные последовательности являются рекуррентны- ми точками МФ3 и стабильными точками второго типа для МФ5, однако с помощью линейной комбинации МФ3 и МФ3 можно от них избавиться. Теорема 6.7. Пусть 7’ = рМФ3+(1—Р)МФ3, 0<р<1. Тогда {хп} является стабильной точкой Т, если и только если она есть ЛОМО (4). Нетрудно показать, что стабильными точками сглаживающих фильтров, построенных посредством повторения выпуклых ком- бинаций или соединения [т. е. рГ] + (1—0)\Т2 или Т\*Т2] медиан- ных фильтров с апертурой, меньшей или равной (2& + 1), являются последовательности ЛОМО(/г + 2). Но установить, имеют ли они другие стабильные точки, в особенности второго типа, достаточ- но сложно. Для более полного понимания детерминированных свойств ме- дианных фильтров или их обобщений, очевидно, необходимо пой- 1и дальше простой теории стабильных точек. В [6.5] при изуче- нии устойчивости медианных и связанных с ними нелинейных фильтров применялся иной подход к изучению сглаживающих свойств этих фильтров. Исследованные сигналы имели вид чистой синусоиды. Сначала брались отсчеты чистой синусоиды с нулевой фазой. Затем после выполнения медианной или другой нелинейной фильтрации вычислялись: мощность или амплитуда основной гар- моники (которая имела частоту входного сигнала), а также не- скольких первых гармоник (или их смеси). Тем самым можно определить мощность, пропускаемую фильтром на частоте вход- ного сигнала, а также мощность, перешедшую к каждой из ее гар- моник. Подобно передаточной функции по мощности линейной сис- темы, для рассматриваемого нелинейного фильтра можно также построить график, отражающий часть мощности, переданной на входной частоте при чистой синусоиде с нулевой фазой на входе. Хотя принцип суперпозиции к нелинейным фильтрам не приме- ним, определение переданной мощности и мощности, перешедшей в гармоники, все-таки дает важную информацию о поведении и свойствах каждого нелинейного фильтра. Например, численные результаты в [6.5] показывают, что передаточные функции меди- 198
анных фильтров с апертурой, размеры которой — нечетные числа, имеют довольно большие боковые лепестки. Так, при частоте дис- кретизации 128 отсчет/с для МФ5 возникают большие боковые ле- пестки на частотах 32 и 64 Гц. Интересно, что это явление тесно связано с стабильными и рекуррентными точками МФ5. Рассмот- рим это подробнее. Пусть выходной сигнал хп — дискретная синусоида с частотой f и фазой ф. Частота дискретизации равна 128 отсчет/с. Имеем . f 2nfn , \ При / = 32 Гц _ 1(—l)n/2siwp, п — четное, п 1(—l)(n-1)/2 cos ф, п—нечетное. Без потери общности предположим, что [ф|^л/4. Выходной сигнал уп МФ5 ( — Г 2 sin ф sin (л п/2 + л/4), 0 ф л/4, Уп \ ____ [\ 2sin фsin (л п/2—л/4),—л/4 ф^ 0. Таким образом, амплитуда, переданная на частоте f=32 Гц, рав- на I | 2 sin ф| при |ф| ^л/4. Введя случайную фазу с равномер- ным распределением, получим, что средняя переданная мощность равна 4 л/4 — f 2 (sin ф)2 Л ф = 0,363, л 0J что дает значительный (—4,4 дБ) боковой лепесток в передаточ- ной функции по мощности. Внимательное рассмотрение выходного сигнала {z/n} показыва- ет, что это рекуррентная последовательность ..., а, а,—а,—а,... .... МФ5, или стабильная точка МФ25. Действительно, входной сигнал {л'п} сам по себе является рекуррентной последователь- ностью при условии, что ф=±л/4. Поэтому совершенно ясно, по- чему на этой частоте будет возникать большой боковой лепесток. Аналогично, при f=64 Гц входной сигнал xn = sin(лп + ф) = = (—l)”sin ф, т. е. он является знакопеременной последователь- ностью и потому будет стабильной точкой второго типа для МФ5. Ясно, что {z/n} = {%п} и передаточная функция имеет на этой час- тоте пик, равный 1. Для устранения нежелательных боковых лепестков было пред- ложено использовать МФ4 после МФ2, т. е. МФ4*МФ2. Здесь вы- ходной сигнал медианного фильтра с апертурой, размеры которой являются четными числами, определяется выражениями: {l/n+i/г} = МФ2Й {хп}, уп+1/2 = медиана (xn_ft+1, ..., хп+1), 199
где медиана четного числа отсчетов есть среднее двух центральных отсчетов. Следовательно, выходной сигнал уп МФ4 *МФ2 равен 1 — медиана (х„_(, х„, х„.н, x„+2)+ . 1 , . + — медиана (х„. х„ х„, хп+1), что также покрывает пять соседних отсчетов. В [6.5] показано, что передаточная функция по мощности такого составного фильт- ра имеет лепесток, равный —13,3 дБ вблизи [=43 Гц. С точки зрения сглаживания он работает гораздо лучше, чем простой фильтр МФ4, Однако при этом ступенчатые функции уже не со- храняются. Фактически МФ4 в значительной мере лишен свойства медианных фильтров сохранять перепады; как предложено в [6.5], МФ4 следует рассматривать, скорее, как на 25% сглаживающий усреднением фильтр, а не как представитель обобщенных медиан- ных фильтров. Кроме того, МФ2 — это фильтр, усредняющий каж- дые два соседних отсчета. С другой стороны, в соответствии с нашей теорией стабильных точек, можно рассматривать среднее от МФз и МФ5, т. е. 0,5МФ3 + + 0,5МФ5. Для синусоиды с частотой [=32 Гц можно легко проверить, что МФз {х„} =—МФ5{хп} для произвольного ф, т. е. при [ = 32 Гц передаточная функция этого фильтра проходит через нуль. Анало- гично, при [ = 64 Гц входной сигнал, который является знакопере- менной последовательностью, есть стабильная точка МФ5 и ре- куррентная точка МФ3; находя среднее между ними, мы опять- таки получаем нуль. Так как фильтр 0,5МФз + 0,5МФз не имеет других стабильных точек, кроме последовательности ЛОМО (4). для нас неважно, что он имеет некоторую рекуррентную точку, по- этому можно предположить, что боковые лепестки его передаточ- ной функции будут гораздо меньше, чем у МФ3 и МФ5. Действи- тельно, наш численный эксперимент это подтверждает. Он пока- зывает, что максимальное значение бокового лепестка составляет 13 дБ при [=51 Гц, а следующее наибольшее значение равно —23,3 дБ при [=37 Гц. 6.3. Стабильные точки двумерных медианных фильтров Чтобы распространить приведенные результаты, полученные для стабильных точек одномерных медианных фильтров, на их двумерные аналоги, представляющие большой практический инте- рес в обработке изображений, естественно, следует попытаться отыскать те характеристики, которые отличают один тип стабиль- ных точек от другого. Такая задача гораздо сложнее, чем та, ко- торая решалась выше. Для понимания этого достаточно сравнить используемые апертуры фильтров. В одномерном случае, при сме- щении апертуры на один шаг, вводится только один новый отсчет 200
и пропадает один старый. Следовательно, многообразие структур стабильных точек одномерных медианных фильтров сильно огра- ничено. Хотя мы не знаем всех свойств стабильных точек второго липа и не знаем, как их получить и еще меньше нам известно о рекуррентных точках обобщенных медианных фильтров, мы вы- сказали весьма полезные соображения относительно их общих ха- рактеристик. Кроме того, когда апертура двумерного медианного фильтра) которая не вырождается в линейный сегмент) сдвигается на один шаг, то вводится или пропадает более одного отсчета. Ин- туитивно ясно, что это расширяет наши возможности и стабиль- ные точки двумерных медианных фильтров будут значительно сложнее или менее структурированы, чем их одномерные аналоги. Примеры стабильных точек показывают, что они могут сильно на- поминать стабильные точки второго типа в одной области, остава- ясь локально-монотонными в другой; для одномерного случая это неверно. Мы еще вернемся к этому. В гл. 5 показано, что изображения с перепадами сохраняются после двумерной медианной фильтрации, если апертура симмет- рична и имеет центр. Благодаря своей практической важности ра- нее рассматривались только апертуры этого типа, и именно такие апертуры будут подразумеваться в этой главе. Изображение пере- пада напоминает ступенчатую функцию в одномерном случае; в обоих случаях это простейшие монотонные функции. Как указано в начале разд. 6.1, локальной монотонности достаточно, чтобы сде- лать последовательность стабильной точкой. По аналогии можно ожидать, что изображение будет инвариантно медианной фильт- рации с апертурой А до тех пор, пока оно остается монотонным в пределах апертуры, когда ее центр передвигается от одного эле- мента изображения к другому. Необходимо точное определение монотонности, которое будет дано позднее. Следуя гипотезе, изложенной в [6.10], мы сначала разложим двумерную апертуру на строки и предположим, что то, что требуется от всей апертуры, истинно также для каждой строки. Будем считать, что апертура содержит начало координат (0,0) и симметрична относительно не- го. Лемма 6.2. Пусть А — апертура и L — произвольная линия в /?*. Если медиана <=/,() Д) = х0. о (6.5) для всех L, проходящих через начало координат, то медиана (|, /)еД) =хо.о. Доказательство. Из предположения, что А включает начало координат (0,0) и симметрична относительно него, имеем, что АПД должна содержать нечетное число точек и, чтобы выполня- лось (6.5), половина отсчетов, не считая х0,р, должна быть больше или равна хо.о. а другая половина — меньше или равна хо,о- Так как все линии, проходящие через начало координат, не пересекаются нигде, кроме начала координат, то, исключая точку (0,0), полови- 201
на отсчетов в А должна быть больше или равна х0,о, а другая — меньше или равна хо,о- Будем говорить, что для апертуры А изображение {-£,,,} локаль- но-монотонно по отношению к А, если для всех сдвигов (г, s) изо- бражения относительно апертуры и для всех линий L, которые проходят через точку (0,0), центр апертуры, {х;+г,;+«} монотонна в пределах отрезков линий, попадающих в апертуру. Лемма 6.3. Если изображение {хг-,7} является локально-моно- тонным по отношению к апертуре А, то оно является стабильной точкой медианного фильтра с апертурой, равной А или являющей- ся подмножеством А. Доказательство. Предположим, что для любого (г, s) {xi+r, ж} монотонно на LM для всех L, проходящих через начало коорди- нат; следовательно, медиана (xf+rj+s |(i, j) е= А fl L) = xr,s. Тогда доказательство следует просто из леммы 6.2. Для ослабления требования локальной монотонности в приве- денной лемме мы можем рассмотреть следующий класс апертур. Определение. Апертура А является р-симметричной, если в до- полнение к тому, что она содержит начало координат (0, 0) и сим- метрична относительно него, она содержит все точки (г, s) пересе- чения Z2 и конечного линейного сегмента 0(г, /), О<0<1, для всех (г, /) в А, где 0 (i, j) — линейный сегмент, соединяющий точки (0, 0) и (i, /). Теперь допустим, что L является произвольной линией в 22 , а А—р-симметричная апертура. Тогда точки, содержащиеся в L, будут расположены периодически. Для точки (г, s) на L обозна- чим через Nl,a число точек, содержащихся в ВП{А+(г, s)}, где {A+(r, s)} означает апертуру А, смещенную так, что ее центр на- ходится в точке (г, s). В результате периодичности 2.2 число Nl,a не зависит от выбранного (г, s) и является нечетным вследствие симметричности апертуры А. На самом деле, все линии в Z2, па- раллельные L, имеют одно и то же N[„a- Теорема которая распро- страняет теорему 6.1 на двумерный случай, является обобщением результата, полученного в [6.10] путем использования идеи ло- кально-монотонных последовательностей. Теорема 6.8. Пусть А является р-симметричной апертурой, а {x.ij} — изображение. Если для каждой линии L отсчеты Xi,j на ней локально-монотонны на длине (Nl,a + 3)/2, то инвари- антно к медианной фильтрации с р-симметричной апертурой, рав- ной А или являющейся подмножеством А. Доказательство. Так как отсчеты на линии L, проходящей че- рез произвольную точку (г, s), локально-монотонны на длине (А^ь,л + 3)/2, то по теореме 6.1 они инвариантны к одномерной ме- дианной фильтрации с апертурой, размер которой меньше или ра- вен Nl,a- Для любой р-симметричной апертуры В, аналогичной апертуре А или являющейся ее подмножеством, а пе- 202
ресечение Lfl {В + (г, s)} будет под сегментом из последовательно расположенных точек на L с центром в (г, s). Следовательно, медиана (x<+r,/+s|(i, j) е В), (j + r, j + s) (= L) = xr,t. В силу леммы 6.2 теорема доказана. Аналогично теореме 6.4 для данной теоремы также существует обратная. Доказательство ее не отличается от доказательства тео- ремы 6.4 и потому опускается. Теорема 6.9. Если изображение {Xf.j} инвариантно к любой ме- дианной фильтрации с р-симметричной апертурой, которая анало- гична А или является ее подмножеством, где А р-симметрична, то отсчеты Xij на любой линии локально-монотонны на длине (Л’,-,а + 3)/2. Если изображение инвариантно к любой медианной фильтра- ции с р-симметричной апертурой, то согласно теореме 6.9 ее пере- сечение с любой линией L из должно быть монотонным. Изо- бражения, обладающие этим свойством, называются монотонными во всех направлениях [6.10] и, как оказывается, имеют простую структуру. Юстуссоном был обнаружен следующий результат [6.10]. Если {х;,,} монотонно во всех направлениях, то существует на- клон Ь, такой, что Xi,j^xr,s для всех j—bi>s—br или для всех /—bi>s—br. В случае b=±oo неравенство j—bi>s—br за- меняется более простым неравенством i>r. Наклон b единствен, если только не является константой. Схема доказательства приведена ниже. Рассмотрим функцию уровня £с(х) из (6.2) и изображение {gc(Xij)}- Пусть Si,c= = {(t, /) IS’c(Xi,j) = 1}, a So,г является дополнением Si,c к ЧА . Оче- видно, что Si,c=>Si,d для c<.d. Допустим, что SliC и S0,c — непустые множества. Тогда, предполагая, что {хщ} монотонно во всех на- правлениях, можно показать, что оба они выпуклы, т. е. любая точка в Z2 , которая является выпуклой комбинацией точек из Si,c, находится также в St,c. Далее, они являются исключением в том смысле, что минимальные выпуклые множества в Л2, обо- значенные С(5[,с) и С (So,с), от Si.c и So,с, соответственно, являют- ся исключением. Объединение C(Si,c)UC(So,c) может не быть рав- ным R2. Тогда по принципу разделения гиперплоскостей имеется прямая у = а + Ьх, которая разделяет C(Si,c) и C(S0,c). [C(Si,c) и C(S0,c) оба могут иметь точки на прямой у = а + Ьх]. Наклон единствен, даже если разделяющая прямая не существует. Ясно, что x.i,j^c для всех j—bi>a и для всех /—bi<Za, или на- оборот. Так как S\,czz>S\ti при условии, что c<.d, можно показать, что b — единственно для всех с, если только Si,c или S0,c не пусты. Доказательство завершается рассмотрением всех g’c(x). В соответ- ствии с полученным результатом, если линия L не параллельна У = Ьх и если Xij,:jh = c для всех k=\, 2, 3, где (Д, Д) —три после- довательные точки на L, то Xij=c для всех (i, /) на линии £*, ко- торая параллельна прямой у = Ьх и пересекает L в точке (Д, /г). 203
© О О 9 ООО 000 о ООО *2 5) о о о о о о о о о о о о о о о о о о о о о о о о о 3/ о о О О о 3’1 Рис. 6.1. Некоторые двумерные апертуры (а—д) и соответствующие им ста- бильные точки [(а') — (д')] Достаточные условия, приведенные в лемме 6.3 или в теореме 6.8, обычно трудно выполнить, особенно для больших апертур. На рис. 6.1 показаны некоторые двоичные изображения, которые для нескольких р-симметричных апертур удовлетворяют достаточному условию теоремы 6.8 (оно является менее жестким, чем условие леммы 6.3). Эти двоичные изображения могут рассматриваться ли- бо как однородные объекты на однородном белом фоне, либо как выходные сигналы функций уровня ga(-)- Они строятся следую- щим образом. Для каждой апертуры изучим те направленные линейные сег- менты (спицы), которые начинаются в центре (основании) и кон- чаются в точке на границе (верхушке). Каждый из этих линейных сегментов можно определить, задав его угол 0, О°^0^36О°, с сег- ментом, соединяющим центр, допустим, точку (0,0) и точку (1,0). Тогда можно легко увидеть, что каждый объект имеет границу, ко- торая является кусочно-линейной и образована этими линейными сегментами, расположенными в порядке возрастания или уменьше- ния 0, причем основание каждого связано с верхушкой предыдуще- го. Поэтому объект является выпуклой группой в Z2 с указанной границей. Не все двоичные изображения, полученные этим спосо- бом, являются локально-монотонными в смысле теоремы 6.8. На- пример, если используемая апертура имеет форму креста, состояще- го из пяти точек (0,0) и (i, /), где |i| = |/| = 1, то объект, построен- ный таким образом, имеет граничные точки (1,0), (0,1), (—1.0), (0—1) и локальная монотонность в смысле теоремы 6.8 в центре объекта не сохраняется. Однако она, по-видимому, сохраняется, ес- ли апертура А удовлетворяет следующему условию: lim Ап =Z2, 204
где Ап+1—Лп+А = {х+у\х^Апу^А} и Ai=A. Мы можем считать, что апертура А вырождается, если она не удовлетворяет этому ус- ловию, поскольку двумерная область Z2 может быть разложена на несвязные участки, которые в совокупности составляют А*, где Д* = Пт Ап, и медианная фильтрация с вырожденной апертурой А Л->оо может быть выполнена также путем раздельной фильтрации по каждой из составных частей А*. Взаимосвязь между составными частями А* полностью отсутствует. Возвращаясь к рис. 6.1, можно сделать следующие наблюдения. Во-первых, ни одна из апертур не является вырожденной. Во-вто- рых, каждый объект является наименьшим конечным выпуклым объектом, который сохраняется при медианной фильтрации с соот- ветствующей апертурой. Даже несмотря на поставленное ограниче- ние, что каждая линия L должна быть локально-монотонной и ин- вариантной к МФЛ-Ь А, оказывается, что в случае конечного выпук- лого объекта достаточное условие теоремы 6.8 является также необ- ходимым для того, чтобы объект сохранялся при медианной фильт- рации. Наконец, по аналогии с тем, как мы построили границу каж- дого выпуклого объекта, можно было бы предположить, что, в об- щем, для того, чтобы двоичное изображение гладких объектов на равномерном фоне было инвариантным к медианной фильтрации с невырожденной р-симметричной апертурой, будет необходимым и достаточным следующее условие: выпуклая часть границ объектов или фона должна складываться из хорд длиной, большей или рав- ной размерам апертуры, и соответствующие хорды любых двух свя- занных сегментов контуров должны также являться смежными хор- дами апертуры. Это наложило бы некоторые ограничения на кон- туры сохраняемых изображений. К сожалению, такое условие не является ни необходимым, ни достаточным. В самом деле, опреде- ление таких понятий, как граница или линейные сегменты грани- цы для двоичных изображений общего вида, является достаточ- но широким. В начале этой гравы было упомянуто, что в отличие от ста- бильных точек МФад, которые являются либо ЛОМО (£ + 2), ли- бо НЕЛОМО(£+1), стабильные точки двумерных медианных фильтров могут быть смешанными. Некоторые примеры показаны на рис. 6.2. Рассмотрим периодическое продолжение изображений, показанных на рис. 6.2,а—в. Очевидно, они аналогичны во всем, ° • О • • о • о о • о • • о • С «2 о о • • о о • в • •со • • о о Ъ) ° о о • • • ° о о • • • о о оа вь • • • • »С Od О г> • • • о о о • ••ООО в) Рис. 6.2. Примеры стабильных точек для квадратной апертуры 3X3 205
кроме масштаба, и все три инвариантны к медианному фильтру с квадратной апертурой 3X3, обозначенной через А. Если о гладко- сти судить по локальной монотонности в квадратной апертуре 3X3 (см. определение после леммы 6.2), то а и б нигде не являются ло- кально-монотонными по отношению к А. Изображение b локально- монотонно по отношению к А везде, кроме тех седловых точек типа а, Ь, с и d, где это неверно. При еще меньшем масштабе изображе- ние, которое остается стабильней точкой медианного фильтра с апертурой А, становится более гладким; однако указанные седло- вые точки также сохраняются. Следовательно, изображение на рис. 6.2,в можно рассматривать как стабильную точку смешанного типа. 6.4. Алгоритм быстрой медианной фильтрации Интересный и эффективный алгоритм двумерной медианной фильтрации с произвольной апертурой был предложен Хуангом и другими [6.4]. Используется тот факт, что при смещении на один отсчет убирается только часть отсчетов, содержащихся в аперту- ре, и столько же отсчетов добавляется. Этот раздел основывается на [6.4]. Хотя алгоритм работает для произвольных апертур, мы исполь- зуем в качестве примера прямоугольную апертуру тХп, где т — число столбцов. Предполагается, что апертура перемещается слева направо по горизонтали и возвращается назад при переходе к сле- дующей строке. Пограничные точки не рассматриваются; их мож- но обрабатывать, уменьшая размеры апертуры, как и в одномер- ном случае. Изображение квантовано, скажем, на 256 уровней. Тогда для элементов изображения первого (начального) положе- ния апертуры вычисляются и с каждым следующим шагом впра- во корректируются: 1) ГИСТ — гистограмма распределения значе- ний; 2) МДН— медиана, 3) МЧМ — число элементов изображе- ния, значения которых меньше МДН. При движении апертуры направо на один шаг каждый элемент изображения левого крайнего столбца g предыдущей апертуры убирается; гистограмма и счетчик, .МЧМ, корректируются следую- щим образом: ГИСТ ГИСТ [£] — 1, МЧММЧМ—1, если £<МДН. (6.6) Аналогично при сдвиге на один шаг добавляется каждый элемент изображения g крайнего правого столбца в апертуре. ГИСТ и МЧМ должны быть заменены соответственно на ГИСТ [g]4- ГИСТ [g]+i, МЧМ +-МЧМ + 1, если £<МДН. (6.7) После этого ГИСТ дает гистограмму для текущего положения апертуры, а счетчик МЧМ будет содержать число элементов в дан- 206
ной апертуре, имеющих значения, меньшие, чем медиана при пре- дыдущем положении апертуры. Затем медиана в данном положении апертуры находится путем уменьшения (или увеличения) М.ДН в зависимости от того, превы- шает МЧМ отношение (тп—1)/2, которое мы обозначим через П, или нет. Сначала М.ЧМ сравнивается с П. (6.8) Возможны такие случаи. Случай 1. МЧМ>П, что указывает на то, что МДН больше медианы в данном положении апертуры. Тогда вводим коррекцию МДН*-МДН— 1 М ЧМ *- МЧМ — ГИСТ [МДН], пока не получим МЧМ^П. (6.9) Случай 2. МЧМ^Л, что указывает на то, что МДН меньше или равна медиане в данном положении апертуры. Проверим нера- венство МЧМ + ГИСТ [МДН] <П. (6.10) Если оно не справедливо, то МДН точно является требуемой ме- дианой. Если оно справедливо, что свидетельствует о том, что МДН+1 все еще меньше или равна требуемой медиане, то вводим коррекцию МЧМ *- МЧМ + ГИСТ [МДН] МДН*-МДН+1 и возвращаемся к (6.10). Очевидно, каждая из операций (6.6) и (6.7) требует п сравне- ний. Пусть d равна медиане на предыдущей апертуре. Для слу- чая 1 rf<0 (6.8) и (6.9) требуют (1 + | d|) сравнений; для слу- чая 2 rf^O (6.8) и (6.10) требуют (2 + с/) сравнений. Пусть Pt= = Prob(d = i). Тогда математическое ожидание будет равно ^=2n + S (I + |i|)Pz +S (2 + i)Pf = 2n + i<0 t>0 + ldl + l+Prob(d>0), где |rf|—среднее значение _ |d|. Считая, что РгоЬ(<Д>0) = =_РгоЬ(с/<0), имеем c = 2n+ |d| + 1,5 + 0,5Ро- В [6.4] отмечено, что |d| обычно мало, и экспериментальные результаты показывают, что оно меньше 10. Поскольку \d| мало, возможна значительная экономия времени вычислений даже при малых пХт. При увели- чении размеров апертуры преимущества этого алгоритма по срав- нению с теми, которые не используют общности п(т—2) элемен- тов в рассматриваемой апертуре с предшествующим элементом, становится все более заметными. 207
6.5. Выводы В этой главе были представлены некоторые новые результаты, касающиеся свойств медианных фильтров и прежде всего их ста- бильных точек и соотношений между стабильными точками и экс- периментальными наблюдениями, о которых ранее сообщали дру- гие исследователи. В заключение приведен интересный алгоритм Хуанга и других. По определению, стабильные точки медианных фильтров — это последовательности, не меняющиеся под их действием. Для после- довательностей, которые не являются ни стабильными, ни рекур- рентными точками, эффект медианной фильтрации без надлежа- щего статистического исследования может быть определен только качественно. Если судить о свойствах медианного фильтра или обобщенного медианного фильтра только по стабильным или ре- куррентным точкам, можно впасть в заблуждение. Дополнитель- ная информация по этому вопросу приведена в гл. 5. Стабильные точки второго типа, а также рекуррентные точки двумерных медианных фильтров не изучены; на рис. 6.2 даны только несколько примеров. Неясно, могут ли они создать какие- либо трудности при обработке изображений реального мира. Если да, то их можно преодолеть с помощью взвешенной медианной фильтрации, которая, как было показано в разд. 6.2, эффективна в одномерном случае. -Приложение 6.А. Докажем теоремы 6.2 и 6.3. Нам нужна лемма. Лемма 6.А.1. Пусть п<т и пусть xn<Xi<xm для всех n<i<m. Если ме- диана (хп-р,... , хп+Р)=х„ и медиана (xm-q,.... xm+g) =xm, где п—р^т—q и n+p^tn + q, то х^Хт или х^хп для каждого j, где п—pt^j<,n или m<'j<Cin+q, Далее, x,^Zxn для всех п—p^/<min(m—q, п) и Xj^xm для всех max(m, п+р) <j^m+q. Доказательство. Если медиана (хп-р. хп+р)=х, то среди отсчетов сег- мента имеется, по крайней мере, р отсчетов, исключая хп, которые меньше или равны хп. Аналогично среди отсчетов (xm_g,..., xm+g) существуют, по крайней мере, q отсчетов, отличных от хт, которые будут больше или равны хт. Так как Хп<х,<хт для всех n<i<tn и так как допускается, что п—ps^m—q и n+ps+m + q, мы имеем, по крайней мере, q отсчетов, больших или равных хт. и, по крайней мере, р отсчетов, меньших или равных х„, в сегментах (хп-Р, ... .... хп~1) и (xm+i. Хт+9), которые при объединении содержат только (p + q) отсчетов. Поэтому среди (p + q) отсчетов найдется точно р отсчетов, меньших и равных хп, и q отсчетов, больших и равных хт. Это доказывает первую часть леммы. Чтобы доказать ее вторую часть, достаточно заметить, что если сущест- вует j, где п—p^/<min(m—q, п) такое, что х^хт, тогда, как вытекает из первой части леммы, исключая хт среди отсчетов (xm_.q,..., xm+g), имеется мак- симум (q—1) отсчетов, которые больше и равны хт. Это противоречит допу- щению, что хт = медиана (xm_g, .... Xm+g). 208
Доказательство теоремы 6.2. Допустим, что сегмент (хп-ь,..., хп), который содержит (£+1) отсчетов, является монотонно-возрастающим, т. е. хп-ь<хп', в противном случае (xn-s....хп-н) монотонен независимо от xn+i, если хп-к — = Хп. Если xn+i>xn, то сегмент (xn_h,..., xn+i), который содержит (&+2J отсчетов, монотонен и мы можем перейти к сегменту (Хп-ь+ь ••• > *„+1), который также монотонен, и проверить хп+г- Если xn+i<xn, то согласно лемме 6.А.1 должно быть Xn-k>xn, что противоречит допущению xn-h<xn\ следовательно, должно быть Хц-м^-Хп. Те же соображения можно высказать и относительно xn_ft_b чтобы показать, что хп_й_1^х„_й, и, следовательно, сегмент ..., х„) также монотонен. Доказательство завершается применением этих же рассуждений к хп+2, хп+з,... и хп_А-2, хп-ь-з,... Доказательство теоремы 6.3. Предположим, что последовательность {х„} — стабильная точка МФ2л+1 и является НЕЛОМО(&+1). Мы исследуем все воз- можности изменения состояния последовательности, скажем, в начале. Без поте- ри общности допустим, что: 1) x0>Xi. Тогда по лемме 6.А.1 имеем: 2) х,-^х0 или Xi^Xi для каждого I, где —или 1 <is^.k+1. Кроме того, имеем: 3) х_^^х0 и Рассмотрим следующий случай: 4) х.^Хо для всех —Пусть j бу- дет наименьшим целым, удовлетворяющим условию х/> х;+1 >..->х0 > X!, ——1- (6.А.1) Если такого / не существует, то должно выполняться х_^=х/1+1= ... =х0. Если такое / существует, то согласно лемме 6.А.1 и допущению х,^х0 имеем, что xj^Xj для всех —на самом деле Xi = x3-, так как j — наименьшее число, удовлетворяющее (6.А.1). Поэтому сегмент (х-ь, x_t+i, ..., х0) монотонен на длине (/г+1); это нарушает условие — хп есть НЕЛОМО(&+1). Отсюда следует, что: а) в сегменте существует, по крайней мере, один отсчет, который меньше или равен хь и аналогично, б) в (х2,... ,х*) существует, по крайней ме- ре, один отсчет, который больше или равен Хо. Достаточно рассмотреть только 4а); 5) существует i, —— 1, такое, что Хг^хь Если существует такое I, что х;<хь то пусть р будет наибольшим целым, таким, что —&+1^р^—1 и Хр<Хь Кроме того, пусть / будет наименьшим, таким, что p<j^O и xj^x0. Очевидно, xp<xp+i= ... =xj_i<Xj по 2). По лемме 6.А.1 имеем хп>х; или Хп^Хр для каждоге п, jj+k. Так как /<4</+&, то или Xi^Xj>x0, или Xi>Xp>Xi. Это противоречит нашим допущениям. Отсюда вытекает, что: а) х-=Х[, если x^xi, где —£ + 1^/^—1, и по аналогии, б) хп = х0, если Хп^х0. где 2^n^k. Теперь рассмотрим: 6) пусть q будет наибольшим целым, таким, что —-1, х,#=Хо и Xq-^Xi. По 2) и 5а) имеем, что х9>х0. Пусть т. будет наименьшим целым, таким, что и Хт=Хь Тогда xg>xg+i = ... =xm-i>xm. По лемме 6.А.1 имеем Xn^Xq или xnsjxm для каждого п, m<n^.m+k. Рассмотрим две возможности: а) если т<0, то вышесказанное означает, что х0>хд>х0 или xosgXm=Xi; ни то, ни другое не верно; б) если т=1, то имеем хп>х<,>х0 или x„CJxm=xi для каждого га, 1 <ns=; 1+&; по 46) и 56) должен существовать, по крайней ме- ре, один отсчет х,-, 1</^А, такой, что х;=х0, что противоречит сделанному выше выводу. 209
Отсюда следует, что такое q не существует или, что то же самое, х--—ху или х>=х0 для каждого i, ——1. По аналогии, сказанное также спра- ведливо для всех отсчетов xt, 2^i=s:£+l. По 4а) в сегменте (х-ь,... ,х0) су- ществует, по крайней мере, один перепад и, аналогично, по 46) — один пере- пад в сегменте (х;,..., Xi+ь). Доказательство завершается применением этих же рассуждений к перепадам в двух упомянутых сегментах и вне их. Приложение 6.Б В приложении доказывается теорема 6.5, а также показано, что эта теорема является частным случаем некоторых свойств класса более общих сглаживаю- щих операторов, аналогичных МФз. Сначала рассмотрим этот класс в общем виде. Если положить, что {?п}=7’{хп}, где Т — оператор, и ул = медиана (xn-i, Xn, Xn+i), то существуют три условия возрастающей строгости, которые можно наложить на Т: I) (гп—хп) (гп — £/п)С 0 для всех re; П) в добавление к I): t/n ^zn или уп > zn > хп,если хп & уп\ III) в добавление к I): (zn — xn) (zn — уп) < 0, если хп^уп. Другими словами, если хп=уп, то zn содержится соответственно в I) закры- том интервале между хп и уп, во II) полуоткрытом интервале, исключая хп, или в III) открытом интервале. Например, МФ23 удовлетворяет только I), МФз—II), но не III), и Т= 1/27+ 1/2МФ3 удовлетворяет III). 7 обозначает здесь только тождественный оператор. Имеем простую лемму. Лемма 6.Б.1. Предположим, что Т удовлетворяет I). Если (xn-i, хп, хп-н) монотонна, то гп = хп и (zn-i, zn, zn+i) также монотонна. Доказательство очевидно и по этой причине опущено. Ясно, что последова- тельности ЛОМО(З) являются стабильными точками любого Т, удовлетворяю- щего I). Следующая лемма показывает, что некоторые свойства сохраняются для линейной комбинации или последовательного включения двух сглаживаю- щих фильтров. Лемма 6.Б.2. Пусть 0<«<1 и пусть Т\*Т2—составной сглаживающий фильтр, Т2{Т\{хп)}. Тогда: а) если Tt и Т2 удовлетворяют I), то и аДТ (1—а)Т2, и Ti*T2 удов- летворяют I); б) если Т] удовлетворяет II) и Т2 удовлетворяет I), то аТ^ + (!1—а)Т2 удовлетворяет II); в) если Ti удовлетворяет III) и Т2 удовлетворя- ет I), то а7’14-(1 + а)7’2 удовлетворяет III) и Т\*Т2 удовлетворяет II); кроме того, если Т2 также удовлетворяет III), то ТХ*Т2 удовлетворяет III). Замечание: даже если и Т\ и Т2 удовлетворяют II), то составной фильтр Т\*Т2 может не удовлетворять II). Доказательство. Доказательство для случая выпуклой комбинации тривиаль- но, поэтому рассмотрим только случай составного фильтра. Пусть Т1 {X nJ {.t nl > Т*2 { 7 П } == (5П } 11 МФз {хп} = {Уп} • Если г/п = хп, то tn=xn и (<n-i> 7n, 7n + i) монотонна, согласно лемме 6.Б.1; отсюда sn = 7n. Если r/n=#x„ скажем, Хп<Уп=хп-\, то рассмотрим а) и в) от- дельно. а) имеем xn^^n-i^7n-i<Xn-i = r/n. Так как медиана (G-i, tn, 210
находится между tn-i и tn, которые, в свою очередь, находятся между хп И уп, то $п содержится в сегменте между хп и уп- в) имеем или или xn^yn-i<.Xn-i- Следовательно, ZB_i=xB_i или хп<1п-1<Хп-1, а медиана (<n-i, tn, <в-ю), которая находится между tn-i и tn, расположена в полуинтервале (хв, уп]. Таким образом, хп<зп^Уп. Если Г? удовлетворяет также III), то хп<зп<Уп- Выше было указано, что МФ3 удовлетворяет II). В самом деле, для любого сглаживающего фильтра, удовлетворяющего II), единственными стабильными точками являются последовательности ЛОМО (3). Лемма 6.Б.З. Если Т удовлетворяет II) и если {хв}—стабильная точка для Т, т ) она является последовательностью ЛОМО (3). Доказательство. Если {.г,,} не есть ЛОМО (3), то существует п, такое, что Уп¥=Хп, скажем, уп>хп- По предположению, Т удовлетворяет II), таким обра- зом гп>л'п, где Т{хп}~ {~п}. Это противоречит допущению, что {хв}— стабиль- ная точка для Т. Для составных сглаживающих фильтров имеем лемму. Лемма 6.Б.4. Пусть 7’=7’1 * Т2 и пусть {хп}—стабильная точка Т. Тогда: з: если Ti удовлетворяет II) и Т2 удовлетворяет I), то {хв} является или послгтэзательностью ЛОМО (3), ил:: осциллирующей последовательностью (т. е. ...,0, 1. О, 1, ...); б) {хп} является последовательностью ЛОМО (3), если Ti удовлетворяет III). Вышеизложенные результаты справедливы для T = T2*Ti. Доказательство. Используем обозначения, введенные при доказательстве леммы 6.Б.2. Предположим, что {хв} — стабильная точка Т, но не ЛОМО (3). Тогда существует п, такое, что ув#=хв. Предположим, что хп<Уп- а) Если Т удовлетворяет II), то xn<tn^yn, xn^/n-i=£jxn-i и хв^ sg/n+1^xB+|. Для того чтобы выполнялось s„ = xn, мы должны иметь хп = ме- дианл (tn — 1, tn, fn + l) ПЛИ Хп == tn — 1:== tn + 1. Отсюда следует, что Xn^Sn+i^In и xB^sn-i^/n- Поэтому 1п=уп= =хв_[=хв+1. Так как rB-; = Xn<xB-i, то последовательность (х'п-г, Xn -i, хв) на может быть монотонной, что справедливо также и для (хп, Xn + i, хв+2). Согласно вышеизложенному xr_2=.vB =хв^2: таким образом, {хв} должна быть осциллирующей последовательностью. Если вместо этого Tt удовлетворяет I) и Т2 удовлетворяет II), тогда последовательность (C-i, tn, /в+1) не может быть мо- нотонной; в противном случае (sn-i, sB, sB+i) также монотонна, что противоре- чит допущению Уп^=хп. Если медиана (in-i, tn, tn+i)>tH, то sn>tn^xn, что не может быть, так как {хв} — стабильная точка для Т. Поэтому имеем медиа- ну {tn-1, tn, tn+i)<tn и отсюда Sn — tn-i — tn+i—Xn. Это означает, что {хв} является осциллирующей последовательностью. б) Если удовлетворяет III) и Т2 удовлетворяет I), то, согласно лемме 6.Б.2 в), Т = 1\*Т2 удовлетворяет II) и, согласно лемме 6.5.3, ее стабильной точкой является только последовательность ЛОМО (3). Если же вместо этого Г] удовлетворяет I) и Т2 удовлетворяет III), то последовательность (^B-i, tn, fn+i) не может быть монотонной, иначе {sn-i, sn, sB-n) монотонна, что противо- речит предположению о том, что z/n#=xn. Если медиана (fB-i, tn, G+i)<fB, тогда sn>tn^Xn, что невозможно, так как {хв}—стабильная точка. Наконец, если медиана {tn-i, tn, tn+i)<tn, то имеем хп^медиана (fB-i, tn, tn+\)<sn< <t„, что снова противоречит гипотезе о стабильных точках. Поэтому’ можно сделать вывод, что {г7!} должна быть последовательностью ЛОМО(З). 211
Замечание. Как отмечалось выше, стабильными точками последователь- ностей МФз являются только последовательности ЛОМО (3). Однако непосредственное применение леммы 6.Б.4 а) показывает, что ста- бильными точками МФ*3, который можно представить как МФз*МФ3'1_’, мо- гут быть как осциллирующие последовательности, так и последовательности ЛОМО (3). Можно легко проверить, что осциллирующие последовательности яв- ляются стабильными точками МФз*, если k — четное. При нечетных k стабиль- ными точками являются только последовательности ЛОМО (3). Таким образом, осциллирующие последовательности являются единственными рекуррентными точками МФз. Так как осциллирующая последовательность обычно считается достаточно негладкой, бессмысленно использовать МФ3 или МФ3* в качестве единственного сглаживающего фильтра при сглаживании. Ниже мы рассмотрим простой способ, который может избавить нас от этих нежелательных последовательностей. Сна- чала нам понадобится лемма. Лемма 6.Б.5. Пусть 0<а<1 и пусть 7\ и Т2 удовлетворяют 1). Тогда {хп} — стабильная точка для T=a7’i+(1—а)Т2, если она является стабильной точкой для 7\ и Т2 одновременно. Доказательство. Тривиально. Объединяя лемму с замечанием к лемме 6.Б.4, имеем. п Лемма 6.Б.6. Пусть ао#=1, 2 ал=1. Тогда последовательности й=0 ЛОМО(З) являются стабильными точками сглаживающего фильтра 7=2 «лМФз k=0 только для некоторых нечетных k, Если же ak = Q при всех нечетных k> то единственными стабильными точками для Т являются как осциллирующие последовательности, так и последовательности ЛОМО (3). Чтобы получить ста- бильные точки для Тт, достаточно представить Тт как = Гп~'* ( У ah МФ* ) = а0 Tm~l + aL Тт~1^\Фа + + X “А Т',: ’’ *МФ*,’’*МФ3. fe=2 Если {хп}—стабильная точка для Тт, то согласно леммам 6.Б.4, 6.Б.5 и пред- положению, что а0=#1, она должна быть либо последовательностью ЛОМО (3), либо осциллирующей последовательностью. Можно проверить, что осциллирую- щая последовательность не может быть инвариантна к Тт, пока «ь = 0 для всех четных k и т или ak = 0 для всех нечетных k. Во втором случае она является стабильной точкой для Т.
СПИСОК ЛИТЕРАТУРЫ 1.1 T.S.Huang (ed.): Two-Dimensional Digital Signal Processing I: Linear Filters, Topics in Applied Physics, Vol. 42 (Springer, Berlin, Heidelberg, New York 1981) 1.2 T. S. Huang (ed.): Picture Processing and Digital Filtering. 2nd ed., (Springer, Berlin, Heidelberg, New York 1979) 1.3 N.Ahmed, K.R.Rao: Orthogonal Transforms jor Digital Signal Processing (Springer, Berlin, Heidelberg, New York 1975) 1.4 Y. Yemini, J.Pearl: IEEE Trans. PAMI-1, 366 371 (1979) 1.5 A.K.Jain: IEEE Trans. PAMI-1, 356-365 (1979) 1.6 S.C.Sahasrabudhe, P.M.Vaidya: IEEE Trans. ASSP-27, 434-436 (1979) 1.7 S.C.Sahasrabudhe, A.D.Kulkarni: Comp. Graphics and Image Proc. 9, 203-212 (1979) 1.8 N.Ahmed, T.Natarjan, K.R.Rao: IEEE Trans. C-23, 90-93 (1974) 1.9 B.D.Tseng, W.C.Miller: IEEE Trans. C-27, 966-968 (197.8) 1.10 W.H.Chen, C.H.Smith, S.C.Fralick: A fast computational algorithm for the discrete cosine transform, IEEE Trans. COM-25, 1004-1009 (1977) 1.11 J.O.Eklundh: IEEE Trans. C-21, 801 (1972) 1.12 J.O.Eklundh: Efficient matrix transposition with limited high-speed storage, FOA Reports, Vol. 12, No. 1, pp. 1-19, 1978, National Defense Research Institute, Linkoping, Sweden 1,13 M.B.Arl: IEEE Trans. C-27, 72-75 (1979) 1.14 G.L. Anderson : IEEE Trans. ASSP-28, 280-284 (1980) 1.15 M.Onoe: IEEE Proc. 63, 196-197 (1975) 1.16 I.DeLotto, D.Dotti: Comp. Graphics and Image Proc. 4, 271-278 (1975) 1.17 G.E.Rivard: IEEE Trans. ASSP-25, 250-252 (1977) 1.18 D.H.Harris, J.H.McClellan, D.S.K.Chan, H.W.Schuessler: Vector radix fast Fourier trans- .' form, 1977 IEEE Int. Conf, on ASSP Record, (1977) pp. 548-551 1.19 CM.Rader: IEEE Trans. CS-22, 575 (1975) 1.20 R.C.Agarwal, C.S.Burrus: Proc. IEEE 63, 550-560 (1975) 1.21 I.S.Reed, T.K.Truong, Y.S.Kwoh, E.L.Hall: IEEE Trans. C-26, 874-881 (1977) 1.22 P.R.Chevillat: IEEE Trans. ASSP-26, 284-290 (1978) 1.23 B.Rice: IEEE Trans. ASSP-27, 432^33 (1979) 1.24 L.R. Rabiner, B.Gold: Theory and Application of Digital Signal Processing (Prentice-Hall, Englewood Cliffs, NJ 1975) pp. 419-434 1.25 J.McClellan, CM.Rader: Number Theory in Digital Signal Processing (Prentice-Hall, Englewood Cliffs, NJ 1979) 1.26 H.Nussbaumer: Fast Algorithms for the Computation of Convolutions and DFTs, Springer Series in Information Sciences, Vol. 2 (Springer, Berlin, Heidelberg, New York 1981) 1.27 H.F.Silverman: IEEE Trans. ASSP-25, 152-165 (1977) 1.28 H.F.Silverman: IEEE Trans. ASSP-26, 268 und 482 (1978) 1.29 B.D.Tseng, W.C.Miller: IEEE Traps. ASSP-26, 268-269 (1978) 1.30 S.Zohar: IEEE Trans. ASSP-27, 409^21 (1979) 1.31 T.W.Parsons: IEEE Trans. ASSP-27, 398^102 (1979) 1.32 I.S.Reed, T.K.Truong: IEEE Trans. C-28, 487-492 (1979) 1.33 H.Nawab, J.H.McClellan: IEEE Trans. ASSP-27, 394-398 (1979) 1.34 L.R.Morris: IEEE Trans. ASSP-26, 141-150 (1978) 1.35 A.Peled: A Low-Cost Image Processing Facility Employing a New Hardware Realization of High-Speed Signal Processors, in Advances in Digital Image Processing, ed. by P. Stucki (Plenum, New York 1979) 1.36 R.W.Patterson, J.H.McClellan: IEEE Trans. ASSP-26, 447^55 (1978) 1.37 W.K.Pratt: “Median Filtering”; semiannual report, Image Processing Inst., Unvi. of Southern California, Sept. (1975) pp. 116-123 1.38 B.R.Frieden: J. Opt. Soc. Am. 66, 280-283 (1976) 1.39 T.S.Huang, G.J.Yang, G.Y.Tang: IEEE Trans. ASSP-27, 13-18 (1979). A shorter version 21a
appeared in Proc. 1978 IEEE Conf, on Pattern Recognition and Image Processing, May 31- June 2, 1978, pp. 128-131 1.40 N.C.Gallagher, G.L.Wise: IEEE Trans. ASSP (to be published) 1.41 W.L.Eversole, D.J.Mayer, F.B.Frazee. T.F.Cheek, Jr.: “Investigation of VLSI Technologies for Image Processing’’, Proc. Image Understanding Workshop, Pittsburgh. Penn., pp. 191-195, Nov..(1978) 1.42 P. M.Narendra: IEEE Trans. PAMI To be published). A cl or. version appeared in Proc. 19,8 IEEE Conf, on Pattern Recognition and Image Processing Chicago, ILL., pp. 137-141; May (1978) 1.43 E.Ataman, V.K.Aatre. K.M.Wong: IEEE Trans ASSP-28. 4:5-421 (1980) 1.44 A.P.Reeves, A.Ros’tmpour: IEEE Trans. PAMI (to be published) 1 4S GJ.Wolfe, J.L.Mann, s: “A Fast Median Filter Implementation”, Proc. SPIE Seminar on Image Processing, Sen1. 1979, San Diego, Ca. 1,46 T.S.Huang: “Noise firering of moving images", Proc. Workshop on Automatic Tracking, Redstone Arsenal, Ala Nov. 19-20 (1979) 1.47 G.Yang, T.S.Huang:' Median Filters and Their Applications to Image Processing”; Tech. Rpt., School of Elect-UaJ Engineering, Purdue University (1980) 2.1 G.LAnderson: IEEE ASSP-28, 280-284(1980) 2.2 N.M.Brenner: IEEE AU-17. 128-132 (1969) 2.3 B.R.Hunt: Proc. IEEE 60. 884 -887 (1972) 2.4 R.C.Singleton: IEEE AU-15. 91-98 (1967) 2.5 H.L. Buijs: Appl. Opt. 8. 211 - 2i 2 (1969) 2.6 J.O.Eklundh: "Efficient Matrix Transposition with Limited High-Speed Storage”; FOA Reports. Vol. 12. No. 1, National Defence Research Institute, Stockholm, Sweden (1978) 2.7 J.O.Eklundh: IEEE C-21. 801-803 (1972) 2.8 H.K.Ramapriyan: IEEE C-24, 1221-1226 (1976) 2.9 R.E.Twogood, M.P.Ekstrom: IEEE C-24, 950-952 (1976) 2.10 R.W.Floyd: “Permuting Information in Idealized Two-Level Storage”, in Complexity of Computer Computations, ed. by R.E. Miller, J. W. Thatcher (Plenum Press, New York 1972) pp. 105-109 2.11 H.S.Stone: IEEE C-20, 153-161 (1971) 2.12 D.E.Knuth: The Art of Computer Programming, Vol. 3 (Addison-Wesley, Reading, MA 1973) pp. 7, 573 2.13 L.G.Delcaro, G.L.Sicuranza: IEEE C-23, 967-970 (1974) 2.14 U.Schumann: Angew. Informatik 14, 213-216 (1972) 2.15 U.Schumann: IEEE C-22, 542-543 (1973) 2.16 J.W.Cooley, J.W.Tukey: Math. Comput. 19, 297-301 (1965) 2.17 W.T.Cochran et al.: IEEE AU-15, 45-55 (1967) 2.18 G.E.Rivard: IEEE ASSP-25, 250-252 (1977) 3.1 S.Winograd : .Math. Comput. 32, 175-199 (1978) 3.2 R.C.Agarwal, J.W.Cooley: IEEE Trans. ASSP-25, 392^410 (1977) 3.3 HJ.Nussbaumer: Electron. Lett. 13, 386-387 (1977) 3.4 HJ.Nussbaumer: “New Algorithms for Convolution and DFT Based on Polynomial Transforms”, in IEEE 1978 Intern. Conf. Acoust., Speech, Signal Processing Proc., pp. 638-641 3.5 HJ.Nussbaumer, P.Quandalle: IBM J. Res. Dev. 22, 134-144 (1978) 3.6 DJ.Winter: The Structure of Fields (Springer, Berlin, Heidelberg, New York 1974; 3.7 T.Nagell: Introduction to Number Theory (Chelsea, New York 1964) 3.8 C.M.Rader: IEEE Trans. C-21, 1269-1273 (1972) 3.9 R. C. Agarwal, C. S. Burrus: Proc. IEEE 63, 550-560 (1975) 3.10 B.Gold, C.M.Rader, A.V.Oppenheim, T.G.Stockham: Digital Processing of Signals, (Me Graw Hill, New York 1969) Ch. 7, pp. 203-213 2’4
3.11 S.Winograd. ‘'Some Bilinear Forms Whose Multiplicative Complexity Depends on the Field of Constants”; IBM Res. Rpt. RC5669, IBM Watson Research Center, Yorktown Heights, N.Y. (1975) 3.12 J.W.Cooley, J.W.Tukey: Math. Comput. 19, 297-301 (1965) 3.13 P.Quandalle: “Filtrage numerique rapide par transformees de Fourier et transformees polynomiales. Etude de 1’implantation des algorithmes sur microprocesseurs”;Ph. D. Thesis, University of Nice, France (1979) 3.14 R.C. Agarwal, J.W.Cooley: “New Algorithms for Digital Convolution”, in 1977 Intern. Conf., Acoust., Speech and Signal Processing Proc., p. 360 3.15 C.M. Rader, N.M.Brenner: IEEE Trans. ASSP-24, 264-266 (1976) 3.16 C.S.Burrus: “Digital Filter Realization by Distributed Arithmetic”, in Proc. 1976 IEEE Intern. Symp. Circuits and Systems, Munich (1976) pp. 106-109 3.17 H.J.Nussbaumer; P.Quandalle: IEEE Trans. ASSP-27, 169-181 (1979) 3.18 A.V.Oppenheim, R.W.Schafer: Digital Signal Processing, (Prentice Hall, Englewood Cliffs N.J. 1975) pp. 320-321 1 i < . M Rader: Proc. IEEE 56, 1107-1108 (1968) zd *..j Good: IEEE Trans. C-20, 310-317 (1971) J.21 D.P.Kolba, T.W.Parks: IEEE Trans. ASSP-25, 281-294 (1977) 3.22 R.C.Agarwal, C.S.Burrus: IEEE Trans. ASSP-22, 87-97 (1974) 4.1 J.W.Cooley, J.W.Tukey: Math. Comp. 19, 297- 301 (1965) 4.2 R. Yavne: “An Economical Method for Calcr1',,:ng the Discrete Fourier Transform”, AFIPS Conference Proceedings, Vol. 33, Part 1 (Thompson Book Co., Washington. D.C, 1968) pp. 115-125 4.3 S.Winograd; Proc. Nat. Acad. Sci. USA 73, No. 4, 1005-1006 (1976) 4.4 S.Winograd: “The Effect of the Field of Constants on the Number of Multiplications”, Proceedings of the 16th Annual Symposium on Foundations of Computer Science (The Institute of Electrical and Electronics Engineers, New York 1975) pp. 1-2 4.5 C.M.Rader: Proc. IEEE 56, 1007-1008 (1968) 4.6 M.Abramowitz, I.Stegun: Handbook of Mathematical Functions (Dover, New York 1965) p. 864 4.7 D.E.Knuth: The Art of Computer Programming, Vol. 2 (Addison-Wesley, Reading, Mass. 1969) Sect. 4.3.2 4.8 T.Nagell: Introduction to Number Theory (Wiley, New York 1951) 4.9 W.J.LeVeque: Topics in Number Theory, Vol. 1 (Addison-Wesley, Reading, Mass. 1958) 4.10 I. J,Good : J. R. Stat. Soc. B20, 361-372 (1958) 5.1 J.W.Tukey: Exploratory Data Analysts (Addison-Wesley, Reading, Mass., 1977, preliminary ed. 1971) 5.2 A.E.Sarhan, B.G.Greenberg (eds.): Contributions to Order Statistics (Wiley, New York 1962) 5.3 H.A.David: Order Statistics (Wiley, New York 1970) 5.4 J.L.Gastwirth, H.Rubin: Ann. Stat. 3, 1070-1100 (1975) 5.5 L.R.Rabiner, M.R.Sambur, C.E.Schmidt: IEEE Trans. ASSP-23, 552-557 (1975) 5.6 N.S.Jayant: IEEE Trans. COM-24, 1043-1045 (1976) 5.7 B.R.Frieden: J. Opt. Soc. Am. 66, 280-283 (1976) 5.8 W.K.Pratt: Digital Image Processing. ONiley, New York 1978) 5.9 G.W.Wecksung, K.Campbell: Computer 7, 63-71 (1974) 5.10 B.Justusson: “Order Statistics on Stationary Random Processes, with Applications to Moving Medians”; Tech. Rpt. TRITA-MAT-1. Royal Institute of Technology, Stockholm, Sweden (1979) 5.11 A. Rosenfeld, A.C.Kak: Digital Picture Processing (Academic Press, New York 1976) 5.12 D.B.Owen: Handbook of Statistical Tables (Addison-Wesley, Reading, Mass. 1962) 5.13 P.F.Velleman: “Definition and. Comparison of Robust Nonlinear Data Smoothing Algorithms”; Tech. Rpt. Economic and Social Statistics Dept., Cornell University (1978) 215
5.14 G.Heygster: “Untersuchung von Zweidimensionalen Rangordnungsoperatoren int Orts- und Frequenzbereich”, in Bildverarbeitung und Mustererkennung. ed. by E. Triendl, Informatik Fachberichte, Vol. 17 (Springer, Berlin, Heidelberg, New York 1978) pp. 204-208 5.15 B.Justusson: “Noise Reduction by Median Filtering" in Proc. 4th Intern. Joint Conf, on Pattern Recognition (1978) pp. 502-504 5.16 S.G.Tyan: "Fixed Points of Running Medians"; Tech. Rpt. Dept, of Electrical Engineering and Electrophysics, Polytechrtic Institute of New York (1977) 5.17 P.M.Narendra: "A Separable Median Filter*for Image Noise Smoothing" in Proc. IEEE Conf, on Pattern Recognition and Image Processing (1978) pp. 137-141 5.18 P.F.Velleman: Proc. Nat. Acad. Sci. USA 74. 434-436 (1977) 5.19 L.S.Davis, A.Rosenfeld: IEEE Trans. SMC-8, 704-710 (1978) 5.20 M.Nagao, T.Matsuyama: “Edge Preserving Smoothing” in Proc. 4th Intern. Joint Conf, on Pattern Recognition (1978) pp. 518-520 .6.1 J.W.Tukey: Exploratory Data Analysis (Addison-Wesley, Reading, MA 1971) 6.2 L.R.Rabiner, M.R.Sambur, C.E.Schmidt: IEEE Trans. ASSP-23. 552-557 (1975) 6.3 B.R.Frieden: J. Opt. Soc. Am. 66, 280- 283 (1976) 6.4 T.S.Huang, G.J.Yang, G.Y.Tang: "A Fast Two-Dimensional Median Filtering Algorithm"; School of Electrical Engineering, Purdue University (1977) 6.5 P.F.Velleman: “Robust Non-Linear Data Smoothing”; Tech. Rpt. 89. Ser. 2, Dept, of Statistics, Princeton University (1975) 6.6 J.W.Tukey: Exploratory Data Analysis (Addison-Wesley, Reading, MA 1977) 6.7 P.F.Velleman: Proc. Nat. Acad. Sci. USA 74, 434—436 (1977) 6.8 J.W.Tukey.: Class Notes on Special Topics in Statistics, Statistics 411, Dept, of Statistics, Princeton University (1974) 6.9 I.J.Schoenberg: “Some Analytical Aspects of the Problem of Smoothing”, in Studies and Essays Presented to R. Courant on his 60th Birthday, January 8,1948 (Interscience, New York 1948) pp. 351-370 6.10 B.Justusson: “Median Filters on Deterministic Signals”; report in preparation, Math. Inst., Royal Institute of Technology, Stockholm, Sweden (1979) Дополнительный список литературы Преобразования В. Arambepola: General discrete Fourier transform and the fast Fourier algorithm. Proc. EUSIPCO-80, Sept. 16-18, 1980, Lausanne, Switzerland, pp. 583-588 B. Arambepola, P. J. W. Rayner: Discrete transforms over residue class polynomial rings with applications in computing multidimensional convolutions. IEEE Trans. ASSP-28 (4), 407-414 (1980) J. W. Cooley, S. Winograd: A limited range DFT algorithm. Proc. ICASSP-80, April 9-11, 1980, Denver, Colorado, pp. 213-217 F. A. Kamagar, K1. R. Rao: Fast algorithms for the 2-D discrete cosine transformation. Proc. IEEE Intern. Symp. on Circuits and Systems, April 28-30. 1980, pp. 206-209 J. Makhoul: A fast cosine transform in one and two dimensions. IEEE Trans. ASSP-28 (1), 27-34 (198O> D. C. Munson, B. Lin: Floating point error bound in the prime factor FFT. Proc. ICASSP-80, April 9-11, 1980, Denver, Colorado, pp. 69-72 H. Nawab: “Parallelism and code optimization issues in FFT and WFTA algorithms”; S. M. thesis, Massachusetts Inst. Technol., Cambridge (1978) H. Nawab, J. H. McClellan: Corrections to “Bounds on the minimum number of data transfers in WFTA and FFT programs”. IEEE Trans., ASSP-28, 480-481 (1980) H. J. Nussbaumer: Fast polynomial transform algorithms for digital convolution IEEE Trans. ASSP-28 (2), 205-215 (1980) 31G
11. J. Nussbaumer: Fast polynomial transform methods for multidimensional DFTs. Proc. JCASSP-80, April 9-11, 1980, Denver, Colorado, pp. 235-237 R. W. Patterson: "Fixed point error analysis of the Winograd Fourier transform algorithm”; M. S. thesis, Massachusetts Inst. Technol. Cambridge (1977) B. Rice: Some good fields and rings for computing number theoretic transforms. IEEE Trans. ASSP-27 (4), 432-433 (1979) H. F. Silverman: A method for programming the complex, general-A Winograd Fourier trans- form algorithm. Proc. ICASSP-77, Hartford, CT, May 1977, pp. 369-372 S. Zohar: “Outline of a fast hardware implementation of Winograd’s DFT algorithm”, in IEEE 1980 Intern. Conf. ASSP-3, 796-799 Медианные фильтры c Ataman, V. K. Aatre, К. M. Wong, лоте statistical properties of median Filters, Tech. Rpt. Dept, of Electrical Engineering, Nova Scotia Technical College, Halifax, Canada (1979) E. Ataman, V. K. Aatre, К. M. Wong: A fast method for real-time median filtering. IEEE Trans. ASSP-28 (4), 415-421 (1980) G. Heygster : „Rangordnungsoperatoren in der digitalen Bildverarbeitung", Ph. D. Thesis, Math. Nat. Fakultat, Georg-August-Universitat, Gottingen, (1979) G. Heygester: Rank filters in digital image processing. Proc. 5th Intern. Conf, on Pattern Recognition, Dec. 1-4, 1980, Miami Beach. Florida, pp. 1165-1167 T. Kitahashi, O. Saito, L. Abele, F. Wahl, H. Marko: An extension of median Filtering and its deterministic properties, Proc. 5th Intern. Conf, on Pattern Recognition, Dec. 1-4, 1980, Miami Beach, Florida, pp. 1177-1179 C. L. Mallows: “Some theoretical results on Tukey's 3 R smoothers", in Smooting Techniques Jor Curve Estimation, ed. by Th. Gasser, M. Rosenblatt, Springer Lecture Notes in Mathematics- 757, (Springer, Berlin, Heidelberg, New York, 1979) pp. 77-90 Список литературы, переведенной на русский язык 1.3. Ахмед Н., Рао К. Р. Ортогональные преобразования для цифровой обра- ботки сигналов: Пер. с англ. — М.: Связь, 1980. — 248 с. 1.15. Оноэ М. Метод двумерного преобразования без транспонирования боль- шой матрицы данных. — ТИИЭР, т. 63, № 1, 1975, с. 198—199. 1.20. Агарвал, Баррас. Теоретике числовые преобразования для быстрого вычис- ления цифровой свертки. — ТИИЭР. т. 63, № 4, 1975, с. 6—20. 1.24. Рабинер Л. Р., Голд Б. Теория и применение цифровой обработки сигна- лов: Пер. с англ. — М.: Мир, 1978. — 848 с. 1.25. Макклеллан Дж. X., Рейдер Ч. М. Применение теории чисел в цифровой обработке сигналов: Пер. с англ. — М.: Радио и связь, 1983. — 264 е. 1.26. Нуссбаумер Г. Дж. Быстрое преобразование Фурье и алгоритмы вычис- ления сверток. — М.: Радио и связь, 1984. — 256 с. 2.3. Хант. Структура данных и организация вычислений при цифровом улуч- шении качества изображений. — ТИИЭР, т. 60, № 7, 1972, с. 160—164. 2.12. Кнут Д. Искусство программирования для ЭВМ. Сортировка и поиск: Пер. с англ. — М.: Мир, 1978. Т. 3. — 844 с. 3.9. Агарвал, Баррас. Теоретико-числовые преобразования для быстрого вычис- ления цифровой свертки. — ТИИЭР, т. 63, № 4, 1975, с. 6—20. 3.10. Голд Б., Рейдер Ч. Цифровая обработка сигналов: Пер. с англ. — М.: Сов. радио, 1973, ч. 7, с, 234—269. 3.18. Оппенхейм А„ Шафер Р. Цифровая обработка сигналов: Пер. с англ. — М.: Связь, 1979. — 416 с. 217
3.19. Рейдер К. Дискретные преобразования Фурье для случая, когда число выборочных величин является простым числом. — ТИИЭР, 1968, т. 56, № 7, с. 95—96. 4.7. Кнут Д. Искусство программирования для ЭВМ. Т. 2. Получисленные ал- горитмы: Пер. с англ. — М.: Мир, 1978. — 724 с. 5.8 Прэтт У. Цифровая обработка изображений: Пер. с англ. — М.: Мир, 1982. Кн. 1 и 2. — 312 и 480 с. Дополнительный список литературы, предложенный редактором перевода 1. Ершов А. А. Стабильные методы оценки параметров. (Обзор). — Автомати- ка и телемеханика, 1978, № 8, с. 66. 2. Иконика. Теория и методы обработки изображений. Сб. статей под ред. Д. С. Лебедева, Н. Р. Поповой. — М.: Наука, 1983. — 156 с. 3. Красненкер В. М. Стабильные методы обнаружения сигналов на фоне помех. (Обзор). — Автоматика и телемеханика, № 15, 1980. — 65 с. 4. Стогов Г. В., Макшанов А. В., Мусаев А. А. Устойчивые методы обработки результатов измерений. — Зарубежная радиоэлектроника, № 9, 1982, с. 3. 5. Цифровая обработка сигналов и ее применения. — Сб. статей под ред. Л. П. Ярославского. — М.: Наука, 1981. — 207 с. 6. Ярославский Л. П. Введение в цифровую обработку изображений. — М.: Сов. радио, 1979. — 312 с. 7. Ярославский Л. П., Мерзляков Н. С. Цифровая голография. — М.: Наука, 1982. — 220 с.
ОГЛАВЛЕНИЕ Стр. Предисловие редактора перевода......................................... 5 Предисловие............................................................ 8 Глава 1. Введение (Т. С. Хуанг).........................................Ю 1.1. Преобразования.....................................................'О 1.2. Медианные фильтры.................................................12 Глава 2. Эффективные методы транспонирования матриц (Дж.-О. Эклунд)........................................................16 2.1. Транспонирование матриц в обработке сигналов......................17 2.2. Методы транспонирования матриц, хранящихся во внешних запоми- нающих устройствах.....................................................19 2.2.1. Определение критериев эффективности.........................19 2.2.2. Простои метод блочного транспонирования.....................20 2.2.3. Транспонирование с использованием разбиений на квадраты 20 2.2.4. Алгоритм Флойда.............................................25 2.2.5. Транспонирование методом «ввод строки-вывод столбца» . . 26 2.2.6. Алгоритм прямоугольных разбиений............................28 2.3. Оптимизация эффективности алгоритма...............................29 2.3.1. Две леммы............................................. . 29 2.3.2. Алгоритм разбиения на квадраты..............................30 2.3.3. Алгоритм прямоугольных разбиений............................34 2.3.4. О преимуществах введения единичного сомножителя ... 36 2.4. Оптимизация алгоритма разбиения на квадраты и алгоритма «ввод строки-вывод столбца»..................................................37 2.5. Примеры...........................................................38 2.6. Метод Андерсона для непосредственного вычисления многомерного ДПФ....................................................................40 2.7. Обсуждение результатов............................................41 Глава 3. Вычисление двумерных сверток и дискретного преобразова- ния Фурье (Г. Дж. Н у с с б а у м е р).......................43 3.1. Свертки и алгебра полиномов.......................................44 3.1.1. Остаточные полиномы.........................................44 3.1.2. Алгоритмы свертки и произведений полиномов в алгебре поли- номов .............................................................45 3.2. Использование полиномиальных преобразований для вычисления дву- мерной свертки.........................................................48 3.2.1. Полиномиальные преобразования...............................49 3.2.2. Составные полиномиальные преобразования.....................52 3.2.3. Вычисление полиномиальных преобразований и приведений по- линомов ...........................................................56 3.2.4. Вычисление полиномиальных произведений и одномерных сверток 59 3.2.5. Гнездовые алгоритмы.....................................65 3.2.6. Сравнение с традиционными вычислительными методами . . 67 3.3. Вычисление двумерных ДПФ с помощью полиномиальных преобразо- ваний ..............................................................•I'i 3.3.1. Алгоритм редуцированного ДПФ............................70 3.3.2. Гнездовые алгоритмы и алгоритмы простых множителей . . 77 3.3.3. Вычисление преобразования Фурье методом Винограда с по- мощью полиномиальных преобразований............................79 219,
Стр. 3.3.4. Связь между полиномиальными преобразованиями и ДПФ . . 83 3.4. Заключительные замечания..........................................83 3.5. Приложение. Алгоритмы коротких полиномиальных произведений 84 3.5.1. Полиномиальное произведение по модулю (Z2+l) .... 84 3.5.2. Полиномиальное произведение по модулю (Z3—1)/ (Z—1) . . 84 3.5.3. Полиномиальное произведение по модулю (Z4 + l) .... 84 3.5.4. Полиномиальное произведение по модулю (Z5—1)/(Z—1) . . 85 3.5.5. Полиномиальное произведение по модулю (Z9—1)/(Z3—1) . . 85 3.5.6. Полиномиальное произведение по модулю (Z7—1)/(Z—1) . . 86 3.5.7. Полиномиальное произведение по модулю (Z8+l) .... 86 3.6. Приложение. Алгоритмы редуцированного ДПФ для N—4, 8, 9, 16 87 3.6.1. ;V = 4......................................................87 3.6.2. А=8, ц=л/4..................................................88 3.6.3. Л'=16, «=2л/16..............................................88 3.6.4. Л'=9, ц=2п/9................................................88 Глава 4. Алгоритм Винограда для дискретного преобразования Фурье (Ш. Зохар).............................................................89 4.1. Обзор.............................................................89 4.2. Основная идея алгоритма...........................................91 4.3. Базовые алгоритмы лево-циркулянтного преобразования .... 99 4.3.1. Лево-циркулянтное преобразование порядка 2.............100 4.3.2. Лево-циркулянтное преобразование порядка 4.............102 4.3.3. Лево-циркулянтное преобразование порядка 6.............104 4.4. Базовые алгоритмы ДПФ для простых .V.............................108 4.4.1. ДПФ порядка 3 (рис. 4.5)...................................ПО 4.4.2. ДПФ порядка 5 (рис. 4.6)..................................111 4.4.3. ДПФ порядка 7..............................................113 4.5. Базовые алгоритмы ДПФ для N=4, 9.................................114 4.5.1. ДПФ порядка 4..............................................115 4.5.2. ДПФ порядка 9..............................................117 4.6. Базовые алгоритмы ДПФ для А = 8, 16..............................121 4.6.1. ДПФ порядка 8 (рис. 4.14)..................................123 4.6.2. ДПФ порядка 16.............................................126 4.7. Общий алгоритм...................................................134 4.8. Оценка быстродействия............................................146 4.9. Заключительные замечания.........................................152 Глава 5. Медианная фильтрация: статистические свойства (Б. И. Юс- тус с о н) .................................................................156 5.1. Определение медианных фильтров................................ 5.1.1. Одномерные медианные фильтры........................... 5.1.2. Двумерные медианные фильтры............................ 5.1.3. Сохранение перепадов................................... 5.2. Подавление шумов с помощью медианной фильтрации .... 5.2.1. Белый шум.............................................. 5.2.2. Небелый шум............................................ 5.2.3. Импульсный и точечный шумы............................. 5.3. Перепад плюс шум.............................................. 5.3.1. Сравнение медианной фильтрации и скользящего усреднения 5.3.2. Распределение порядковых статистик в выборках из двух рас- пределений ................................................... 5.4. Другие свойства медианных фильтров............................ 5.4.1. Ковариационные функции при белом шуме на входе 5.4.2. Ковариационные функции при небелом шуме на входе 5.4.3. Отклик на косинусоидальные функции..................... 5.4.4. Свойства выборочных функций............................ 5.5. Некоторые другие фильтры, сохраняющие перепады................ 5.5.1. Линейная комбинация медиан............................. 5 5.2. Взвешенно-медианные фильтры............................ 158 158 158 159 160 160 163 164 168 168 171 172 172 175 177 180 181 181 182 220
Стр. 3.5.3. Итерационные медианные фильтры...........................183 5.5.4. Сглаживание остатка......................................184 5.5.5. Адаптивные фильтры, сохраняющие перепады.................185 5.6. Использование медиан и других порядковых статистик в обработке изображений.....................................................186 5.6.1. Обнаружение границ.......................................186 5.6.2. Выделение объектов.......................................187 5.6.3. Классификация............................................189 5.6.4. Порядковые статистики общего вида........................189 Глава 6. Медианная фильтрация: детерминированные свойства (Ш.-Г. Тян)........................................................191 6.1. Стабильные точки одномерных медианных фильтров................192 6.2. Некоторые обобщенные медианные фильтры........................197 6.3. Стабильные точки одномерных медианных фильтров................200 6.4. Алгоритм быстрой медианной фильтрации.........................206 6.5. Выводы........................................................208 Приложение 6.А.....................................................208 Приложение 6.Б.....................................................210 Список литературы..................................................213 Дополнительный список литературы...................................216 Список литературы, переведенной на русский язык....................217 Дополнительный список литературы, предложенный редактором перевода 218 Т. С. Хуанг, Дж.-О. Эклунд, Г. Дж. Нуссбаумер и др. БЫСТРЫЕ АЛГОРИТМЫ В ЦИФРОВОЙ ОБРАБОТКЕ ИЗОБРАЖЕНИЙ Редактор Е. А Засядько Обложка художника Г. С. Студеникиной Художественный редактор Л. Н. Сильянов Технический редактор Г. И. Колосова Корректор Т. Л. Кускова ИБ № 659 Сдано в набор 2S.12.83 Подписано в печать 29.03.84 Формат 60X90':.- Усл. печ. л. 14.0 Бумага тип. X" 1 Усл. кр.-отт. 14,25 Зак. № 2 Гарнитура литературная Печать высокая Уч.-изд. л. 14,47 Тираж 8000 экз. Изд. № 20450 Цена 1 р. 70 к. Издательство «Радио и связь». 101000 Москва, Почтамт, а/я 693 Московская типография № 5 ВТО «Союзучетиздат» 101000 Москва, ул. Кирова, д. 40