Блейхут Р. - Быстрые алгоритмы цифровой обработки сигналов (1044113), страница 45
Текст из файла (страница 45)
272 Г , а Нн Рмэ алг р ган мне и Р р брэш еаза Эд ал ор Нэнеграа прастмх делателей. для ноюрых существуют малые БПФ-алгоригмы Винограда В основу алгорнтма заложены четыре самостоятельные идеи: алгоритм Рейдера для простого чясла, описанный в разд 3 4, малый алгорнтм снерткн Винограда. схема Гуда— Томаса индексецнн для простых делателей и гнездовой метод Винограда. Большой Б!!Ф-алгорнтм Впнограаа, как вядяо из рнс. 8 4, лу гше БПФ-алгорнтма Кули †Тью по числу умнаже. няй, но имеет более сложную г структуру. Платой за уменьшение лов; повторяющнеся циклы имеют большую длину. Б общем случае БПФ-алгоритм Винограда применим для вычисления преобразования, длина п Рис аз и р а з з а в 12- . которого равна произведению Р ' "ао'Р'х' малых простых чисел или произяеденню степеней малых простых 'чисел.
Мы рассмотрим только случай двух делателей: л -- и'я'. Используя алгорнтм Гуда †Тома пля простых делателей, пре. образуем и-точечное преобразование Фурье в двумерное (л' х х п').точечное преобразованяе Фурье. Для вычисления этого двумерного преобразоааннн можно воспользовать я малым и' точечным БПФ-алгоритмом Бннаграда н малым лпточечным БПФ-алгоритмом Винограда, прнменян нх вдоль соответствующих длине измерений. Вместо мого мы воспользуемся опнсанным в прелыдущем разделе гнеэдоимм методом Винограда, позволяющим так сочетать эти два алгоритма, что число умноженнй падает.
Рассматриваемая нами процедура нллюстрнруется приведенным на рис. 8.3 примером 12.точечного БПФ-алгоритма. На рисунке показано преобразование входного !2-компонентного нектара данных в двумерную таблнцу по алгоритму Гуда — Томаса, свадягцее зздечу к вычислению двумерного преобразования Фурье. За этим следует преобразование полученной двумерной таблншз в новый одномерный массив, формируемый как стек столбцов. (Все зтн манипуляцян можно проделывать с нндеясамн; совсем не обязательно физически переупорндочквать данные.) э а з ),э в з а 3 формирование 12.точечной матрицы преобразования Фурье е виде кронекеровского пранзведення матриц-состаеляющих 3- теменного н 4.точечного преобразований Фурье показано парис 8 б.
Пусть и = и'и" и %' н %' обозначают соответственно матрицы пчточечного н и -точечного преобразований Фурье, так что Ч' = -- %'г' и Ч" — %"ч" Двумерное(л' х и')-преобразонйнне Фурье двумерного снгнала о,г получается примененном % к каждому столбцу сигнала, а эапц применением % к каждой строке Если двумерный (и' х н") сигнал огг" был получен оплсанным перепоря гочнванием компонент нз одномерного, то надо выполнять обратную перестановку, считывая двумерный результат по столб. цам.
Если под ч и Ч понимать соответственно входной н выходной векторы, компоненты которых переставлены описанным образом, то в термийах нронекеровского пронзведення прсобразоззннезапн. сываетса равенством Ч .= (%" х %') ч. Но %' .= С' В' А' и %" = С'В"А", где элементами матриц А', А", С' и С' являются только нули н единицы, а катрины В' н В' являются днаганальнымн. Также, как в предмдушем разделе, получаем % = (С'В "А"> Х (С В А > = (С" Х С > (В Х В ) (А" Х А > = СВА, где кронекеровскне произведения С = С" х С' н А = А' х А' представляют собой матрицы, состоящие только нз нулей а единиц, з нранекеровское пранааеденне В .--. В" х В' является диагональной матрицей.
Следовательно, мы постронлн алгоритм ч'и -точечного преобразования Фурье в форме БПФ-алгоритма Вннограда. Ч =-. СВАГ. Прн построении алгоритма мы яредполагалн, по компоненты векторов ч н Ч переупорялочены необходимым образом. Но коль скоро алгоритм в данной форме уже построен, то выполняя трязнальную перестановку столбцов матрицы А, можно работать с естественным порядком компонент векторе г, а переставляя строки матрицы С, — с естественным порядком компонент вектора Обозначим через М (л') н М (и") размеры матриц В' н В" соответственно Зги чнсла равны числу умножений соответственна в пчточечкоч БПФ-алгоритме и в и"-точечном БПФ.алгоритме с учетом тривяальнмх учноженнй нз едипнпу.
Тогда число умножений, необхолнмых для выполнения и'л'-точечного БПФ-алгорнтма Винограда, включая н умноження на еднннпу, равно М (п) = М (и')М (и"). Это происходит потому, по матраца В" Х В' снова являетс» диагональной, а размер ее равен М (л') М (и'). На лс. 8.7 праведен перечень малых БПФ-алгоритмов Винограда, нз которых можно странть больщне БПФ-алгоритмы Вн а рл В но- града, а на рнс. 88 выписаны характеристики больших БПФ- алто нтмов Винограда. На рнс.
8.9 дастся пример 1008-точечного Р 8.4, Алгарнтм Б гр в Вюд м ер е ю бл а т Виар в ою оа блаа ! в о н мс овна- вор м р ограда аа ю с у о лсюююв 032) 2 2 !3) Ь 0 (4! В 5 16! 17 8)Я 36 210 26 10 !Н) М 0) 321) Ю ЮЮ) 94 10 !18) 74 3, 1' \ Рнс. 8.7. Нмйр нюмх рсМрюювннн Бнн !грена. Паоло Ч сло вещав ню» Ч сл с р«- умнов!слой ее!ге - юю ю оном По нос Л, юане вд* на ю у* на у Донно л Пр камиле сном входе удел м Рю. 8.8. Харскюр с нк б кк БПФ.ююрнтмав Б ю хк 274 Гл. 8. Б гр югг рнт н см р мк нрюбрсюввннн 3' 3; 1' 1', нэвкс * " Р РЗЮ ВЯФурск рю ю скау р, Рнс. 8.8 С лсн *12-та с го п б 15 23 Ю 35 48 63 80 303 168 240 4Ю ям ВЮ )ММ 2ЯО )В 23 36 54 54 99 94 344 236 224 бю 792 1296 1782 4752 17 81 26 )Ю 54 392 52 ЗЗЗ М Э)В Ю 704 06 636 338 3038 130 )т46 236 2506 644 567Ь 1Ю 7ЮО 12Ю 1200 1774 Л334 4746 49614 3 33 3 24 3.35 321 0.96 ).Ю 1.07 1.
35 1.Ю 3.32 3.55 )М 1. 54 1.74 З.Ю 5.4 тлв 6.40 9. 51 Ь.Ю 11. И 8.45 В.И 10.59 Ю.45 1).Я 14.42 йлб 37.Ю 39.77 туа Га. З Б у ор» иш и*ив ау юы а и П Ю. И Пуивзв ГНЧНЧГ ~с~ — — чт ~ — —— Рж З.Э.Суу уу Зыш Гши.т * БПЕ-ы з еи уз.
г мхы з й з,з ~С ~С" (у, (у, Я (С) — ~~~ (у (с1— Р . з,10. с руюуэ хру ~ож. ' «р азы ие. преобразования. Этот БПФ.алгорвтм содержит 3564 вещественных умножений, которое получено как произведение чисел необхадиммх умножений в 7ч 8- и 16-точечных БПФ-алгоритмах Винограда, удиоеугузое для «омплекснаго входа. Более регулярный БПФ-алгоритм с разбиением данных на меныпие блоки приведен на рис. 8.10 В этом алгоритме сочетаются только 7.точечное и 9-точечное преобразования 1668-то гечнае преобразование вычисляется затем как двумерное (6ЗХ 16)- преобразование Фурье Каждая составлявшая вычисляетсн БПФ.
алгаритиом Винограда. Полное число вещытвенамх умножений равно 4396 = 2 (16М (63) -1- БЗМ (16)). Вч. А юритм Дмен на — Багры 8.4. Алгоритм Джонсона — Барраса быстрого преобразования Фурье Мы рассмотрелн лва способа сочетания ыалых БПФ-алгорит. мов Винограда, а именно, гнездовую схему Гуда †Тома для взаимно простых делителей н гнездовой метод Винограды. БПФ-алгоритмы Джонсона — Баррзса представляии собой целое сеиеЬ ство гнеэдовых алгоритмов, включающее в себя методы Гуда— Томаса и Винограда в качестве двух экстремальнык случаев Идея БПФ-алгоритма Джонсона †Барра состоит в иолернизапии пспользованиа кронекеровского произведения для переупорядочивания последовательности вычислений.
Это позволяет умень. швт число необходн тык умнож ний, охранна малым чжло не обходиммх сложений, Кроме того, архитектура алгоритма позволяет улучшить структурирование и улрачление потоком данных Мы рассмотрич только случай, когда длина и преобразования распадается в произведение двух взаимно простых множителей л' и и' Можно, конечно, применить тот же метод и к большему числу делителей, но тогда число конструктивных аозиожностей становится необозримым. Например, если и разлагается в произведение четырех иножктечей, то из одних и тех же малых БПФ-алгоритчов Винограда можно постронть больше чем 1Оы различных БПФ-алгоритмов Джонсона — Барраса.
Чтобы все их проанализи. ровать, необходима спепиальиая процедура поиска типа динамического ирограммнрования. Предположим, что точечный входной вектор преобразуется в лзумерную (и' Х и")-таблицу Ч с помощью отображения на рас. ширеииу|а диагональ. Согласно алгоритму Гуда.-Томаса для вы.
числения одномерного преобразования Фурье исходного вектора данных можно сначала вычислить лчточечное преобразование Фурье каждого столбпа таблицы, а затем л'-точечное преобразование Фурье иаждой строки. Зго чожио эаиисжь в виде Ч = % %'и Такая запись не является общепринятой, так как т представляет собой двумерную таблицу. Под %'т понимается умножение кажлого сталбна таблицы т па одному разу на матрицу %Ч а под %"т' понимается умножение каждой строки таблицы т яо одному рзз) на матрипу %" Длн,большей строгости нада было бы ввести тополнительные обозначения для огделении матриц, действую~них иа столбцы, ат мзтриц, действующих на стропи, ао мы предгючитаеч для указания этой ииформацигг пользоваться штрихом и двумя штрихами.