Блейхут Р. - Быстрые алгоритмы цифровой обработки сигналов (1044113), страница 42
Текст из файла (страница 42)
Следа. вательно, — » з (х) = — '~ хы и об»(х) О»(х), 1:к» »=» н б„(х) О» (х) полжны быть равным 5» (х), П 7.8. Быстрая свертка многочленов Г!алвномиальное представление расширения поля окааывается палезнмм при вычислении многомерных сверток Так как при этом мы исходно инеем дело с произведениями мнагачленов, то переход от произведений спектров к цровзведенням нногачленов нс требует дополнительных вычислений, поскольку их мошна включить в ту часть работы, которая все равно должна быть вы.
палнена в любом случае. Достатогно рассмотреть двумерную циклическую свертку Запишем эту свертку в виде одномерной циклической свертки многачлеиов: эи(д) = 2;, д„,.п(у)д, (у) (тодд"' — 1). » =» Так как мцогочлен д"' — 1 распадается в произведение круговых многочлеиав, то эту задачу можно разбить на множество подзадач вида ' †» зг (у) =. Т„д»»»» и (у) д». (у) (пюд р (у)), » -» где р (у) представляет собой один нз круговых многачленов, скажем, степени т', делящих у"' — 1 Алгоритм решения каждой из этих подзадач может бить погружен в алгоритм решения. исходной задачи. 78. Бштр»» стр з мн т наз Рассмотрим злеиенты дг (у) н д» (у) для всех» = О, ..., п' — 1 каи элементы поля Я (ю), Тогда для спектров соответ. ствеино имеем для всех й' = О, ..., я' — 1: б» (у) = х'.
у"'дг (у) (пюд р (у)), » -» » Г» (д) = Е д»'»'д» (д) (пюд р (у)) г -э и б» (д) =-б» (у) О» (у) (шод р (у)), й' =-О,..., л' — 1. Используя обратное преобразование фурье, получаем '-» зг(у) =- „~~» у-»'»'5» (у) (шадр(у)). 1 Препбразавааия Фурье не содержат вещественных умяожеиий. Все умножения в описанной процедуре сосредоточены в спектральных произведениях б» (у) О, (у). Всего имеется и' таких произведений многочленов по модулю р (у), каждое иэ которык содержит по меньп»ей мере 2т' — ! умножений.
Таким образам, в об»цей сложности для вычисления двумерной свертки, содержа. щей л'т' чисел, требуется я' (2т' — 1) умножений. На самом деле число умножений, необходимых для вычнсления произведе. ния, многочленов по модулю р (у), существенно больше, чем 2т' — 1, на все же достаточно мало для того, чтобы приводить к мд(мктияг»ым алгоритмам Некоторые подходя»цие для этой цели алгоритмы приведены яа рис.
7.7. Рассмотрим теперь двумерную циклическую свертку, ааписанную в виде произведения многочленов: з (х, у) —. д (х, у) д (л, у) (шад х"' — 1) (шод у" — 1). Используя китанскую теорему об остатках, разобьем эту задачу на подзадачи. Детально остановимся только на частном случае, котла я' и и" равны степеням двойки (и могут совпадать). Метод вычисления является реауррентнмм, основанным на нспольэова. нии двумерных циклических сверток меньшего размера Таиим образом, с помощью рекурсия двумерная циклическая свертка по основанию 2 свадитсн к неиоторому числу меньших подзадач.
Пусть л' = 2 ' н и' = 2 " при »и' )~ т'. Тогда имеет место разложение у" — 1.= (уст+ 1) (у" Г» — 1) = =(д "-"1) (д'7'+1)(д"'" — 1). Вообще говоря, последний член можно разлагать и дальше, но мы здесь остановимся. Обозначим тены разложения в правой та. Б стр сверг ю еезо вход р ч з а до1 (А, и) =- д (х, У) (тод В (д)), йо! (х, р) — й (х, у) (пюд (, (у)) зр' (х, р) = з (х, у) (пюд (,(у)) о !и йэе Г 7 Бморш .ории виотти р е зря части соответственно через (з А (у), ..., )е (р) и для г = О, 17 — 1 определии Тогда з" (х, р)=й'(х, р)д'(х, р) (тодх"' — 1) (шод/„(р)), и, согласно китайсной теореме об остатках для многочлеиов, л — ! з(х, у)= дз о! !(р)5~ !(х, р) (юодА — 1), где лог (р) ари г = О, ..., К вЂ” 1 определяются этой же теоремой.
Вычисления на этом последнем шаге не содержат вещественных умножеи~гй Основная часть вычислений падает на вмчисление остатков до (х, я). Этгг вычисления разбиваются иа даа типа, а именна, зог (х, р) =йг г (х, у)дг ! (х, р) (нюд к" — 1) (ягод (р" +1)) и Во(х, у).=д!о (х, р) до>(х, у) (тодх"' — 1) (тобу '" — 1). Второй тип вычвглений. с точностью до замены х и у друг на друга, представляет собой копию решаемой задачи меньшего размера Опираясь иа приведенную на рис. 7.й рекуррентную формулу, мшкно полагать, что згв меньшая задача решена, поскольну решена задача болыпега размера.
Опуская инлекс г, первый тип вычислений запишем в виде залечи з (х, у) = й (х, у) д (х, у) (пюд х"' — 1) (пюд у ' -1- 1), где ш' ю о')2 Эту задачу можно рассматривать как задачу вы- числения одномерной свертки в поле О"', в именна, з (х) .— — й (х) д (х) (тод х"' — 1), где все коэффициенты вмписанных многочленов представляют собой элементы поля О ' и, следовательно, записываются в виде мнагочленов от р стевени, меньшей т' Так как и' < 2ш', то для емчисления свертки можно иоспользоваться имеющимся преобра. зоваиием Фурье длины и'. Преобравсваггие Фурье выполняется с помощью одних сложений и не содержит умножений. В частщной области свертка преобразуется к произведениям з з Р с. та длюр» е мерз й в л зшой о р Дла их вычисления нужно и' умножений в О, каждое из которых аредстевляет собой произведение многочленов по молулю у ' -1- 1 и поэтому требую 2ш' — 1 вещественнык умножений.
Следова. телыю, для вычисления з (х, р) д (х, у) д (х, у) (пюд х"' — 1) (пюд р + 1) 2бб Г. 7 Бы 9 р ° . ыр с утки жт 13 16 23 ы 55 »9 52 62 121 ип 1ЗЭ и 93 1»2 Нэ ин 66 3 36 63 61!6 и 6516 1а12 Ы5 Н93 11ЬЫ Юз Мэм и'пэ »тэы 3256 1ЮЮ 13 16 И 13 23З3 ап о;н 13 6 и 1 13Ю мю 23 О 2 П » 39 \.93 2» 2 1 гю тн 2Ю 61 33 г 23 з 3» 351 ° » 6 13 Рис 79. Х Рэ Р ской сз рткк необходимо всего и' (2ж' — 1) вещественных умножений, а для вычисления исходной двумерной циклической свертки требуется сделать несколько таких вычислений. Например, для вычисления двумерной цикличесиой (64 х Б4)- свертки требуется 64 (63) вешественнык умаоженив и вычислении двумерной циклической (64 х 32).свертки.
В свою очередь, для вычисления двумерной никлической (64 Х 32)-свертки требуется в идеале 32.(63) 4- 32 (31) вешмтмнных уююжений и вычисления одной двумерной циклической (1Бх32)-свертки. В сваю оче. рель, вычисление двуиерной цикли!ескай (32х16)-свергни тре. брет 16 (3!) л- !Б-(16) умножений и свертки еше меньшего рак мера Прололжая этот процесс ло тех пор, пока не дойдем до тривиальной свертки, получаем окало 800 умножевий. Это су.
шественно меньше, чеч число умножений, необходимое при использовании двумерного алюритма Кули †Тыч и теоремы о свертке, равное 73 728. Практические алгоритмы вычисаения произведений маогачлеиов, как видно из затабулиронавных на рис. 7.7 данных, содержат большее число умножений, чем рапный л'(2п1' — 1) теоретиче. ский минимум. В частности, рассмотренный алгоритм вычисления двуиериой циклической (64х64)-свертки содержит на саном леле 17 770 вещественных умножений. Характеристики ыекотарых других практических алгоритмов вычисления двумерной циклачсской свертки, построеннмк по описанному методу, ыриведеиы на рнс. 7.9. 6 \ 5 6 Ю М 1 6 15 Ы 33 2 Кй юхм мкм аэ х аэ р ориг аз зи м д г рюй аиз Задачи б.
В и ь «»рм брис кэ юзам 62 р т дву рюй (304 х 2.2. Азгар вы сз 12- й пиза» м А мр кп ы а пас рщ пргю мюадг Вэ р лэ пл элгара ит А р мз — Кт и, 63 зл ар Вточ й ци«ли мзоА мртк см р ти м 4-а ай п из . чесюй ртзп Срз за у м ий, бюз м 5 анд ы ю тазы д Г.З. э. Опэ а имад а р юэ м р и зи юэ б.та й п»м 6 зай р «п 1*)= б(з)ка() ( а ' — 1) С«36к има а коумю. ме пйт 6.8 па уйе зл ртам А раз — Ктл псщрмп б. ч й ри 3 3- чпой щ ск й сз р Сзалью б адю у юк зйт 2.4 В»волью пп злг р мю Лгэр .3 — К1щ. р е стп и р пи мм. ржаир п р ар у изт 3 = СОА4. 7.4. Птс а 1аклич к й сэ ртк р ю а= пылки гдэ дю мл = 66!и)1 ИВ пи=(п, (щ(э,(ш)В] дм 3, мл зз 1юмп ра- 9 абе дерню 1.8. Л мрэ ы зы 3 и а 3 лэксзай р кп па ду ю "— 1 опк ан 3 р зд.
3 7 а. 11 рань злг р м р д у риа ропзмд юп. саа сюе и щ (" В = Д (сю В б ( . В (и 4 *5 4- 1) ( и 4 утц 1) 1(ькй= и(",У)д(.В (юэбу'-, '1) (ю 4*-''-'; !) а. 3 1сюь а у рптю и мек5ю !2х2) эр у 5(щб=д(з,йа(,у) ( 64** 1) (щ49 П м рэю д и (4Х4)-и тр»аы . мкт р, мд р эщпй 4 ю ы. 5,(жу) у(щбп(щу) (щ4* 1 1) ( ау — !) д произ д ю (4х4)- зтр аы к р,мд рм щ й4 мю ти. (з, У) =.
У (5, У! 4 (, У) ( 4 5' -', !) ( Ш У* -1- 1) юпрм ан (4х4).юрюп п мз р, арз щэй4 па т» 9ва1г. 259 Гл 7. Бмстрн алырнж н В нс смрткн .3««ь пр э к нс «замр « =.94 в вл прана«ы (4х4).н«энц «а э кгар, ыцср ш й 4 ш «нснтн. Пшь а«г р ылсрс«аш й «в ь ун«ажсн«а 7.В. О«рс«ын ь ло у ыжс й й в алыр Аг Г Кули лв«вн *ш 45-7 ча й н «А ы«ртк Каы )лг ш 7,В. а. Найт «аэа ернстнин гцсыа ° э а «мчи лс «ц««л ч «й П5х(5).
рт . со сшыц г э ц «л «сказ (Зхз).смр к ырн нам н кл ч ской (5х5). э ц св ы ь шн х ракмрншнк» б. П арнь э ж ы э, л унэр ы ц «лнч й (2(х2)). р 7.Ю. для и« ««ы с 'й( Х ). мр «н««л свьш вы* р м г сэт мшс«тм. «р, э «ы«в э ш э м у мц«н у у ь а гар тн цыл«мс«ай (5Х5)-сэ р ««ы««ны «ораз) Йас«ы а у ц кл«м «ээ (4хэ)-с«сш лексьмх мк аров) Замечания Па прытей н ур нанструнц й л у ржж «р бэ ание Фуэ е а«т н» лзух ы н* «эыбраэо й Фуэ с, нр и атхы ° Олсл ы ьна. б с р а аршин э сл я слн нсэмй р ы раэ й нсрс пр нснвмн «э «н««вунср«5 с« рт«н Яы ш «насуш у лвун*рнн н алг р и лн «ж Пна рам за й б «выс«Ну с« л апзслслы з в с«н н а алов» с лрабр м и Фур .
н с альку шн р бр ««э н эрслтамял н«р тель««а«. ма э . н«ы, ч ц аль«мс пвсыр*ыэш «арл шт ы б л ш . ы нрыт ывл р брээаввн Ф)ры Нх «р э ы я в вил пр:бры ьэння Фуэ . ын» льном нр лш«алы э рек«а нысй ам«э «шш БлсА«умн (2! П9ВЗ) Аналог«чнис нми б эмны Бшаи, Фу н «Мам ьл (3) (ШВ2). Круго пы«н м р абэ ыээ «с, с б гм я й ору 774, сбальшйс жншш» й,«мзн Арпб« *й Рй. Н нм нысисмн типа Гул — т э лл«вычн саны р сз р р«ц ж«т Аыр алу Кт (5! О977). Они пр обээывм л злг р, ашшнй ах«онсрнмс а ыр .— «Эсгыур, спныма« лыи В«агз«э м (9) (Ю75) Ллз «я нага срвнх нрыбр Е Фурье ф«цчы люшг«аль н р«сш р вым б ло прхлсж и шы ржам Ну«б у Эа.