Богнер, Константинидис - Введение в цифровую фильтрацию (1044115), страница 18
Текст из файла (страница 18)
В этом состоит и первый этап обработки по второму методу, позволяющему вычислять половину спектра, соответствующую положительным частотам, для одной действительной Л'-точечной последовательности, используя Л1/2-точечное БПФ (точки комплексные). На фиг 7.18, а показаны две действительные У-точечные последовательности у(й) и г (Й). Чтобы получить чисто мнимую функцию, умножим г(л) на оператор 1.
Спектры 1(п) и Х(п) являются симметричными в комплексно-соцряжен])ых точках относительно точки п=И(2 (фиг. 7.18, б). Однако эта симметрия такова, что преобразование Х(п) суммы х()г) =у()г) +уг(Й) является асимметричным (фиг. 7.18,ет). Исходные опектры У(п) .и Х(п) могут быть восста- 9 Залаз Рй ЕБО МЕТОД!э! ПРЕОЬРАЗОВЛ!!ИЯ ФУРЫ новлены из Х(п) на положительных частотах с помощью простых выкладок, основанных иа цитированном выше свойстве симметрии: Ке [Х [и) + Х [Л! — и) ] 2 ре~хИ)1 1!т! [Х [и) Х [Л! ~!)] 2 (7.23) Ке [Х [и) — Х [Лl — и) ] 1пт [Л (и) [ = — Ке [2'(л) [— где гг=1, 2, ..., А'/2 — 1 и Ке [1 (0)[=Ке[Х(0)[, Ке [7 (О) [ = — 1гп [Х (О)[, Ке У вЂ” =Ке Х— ке~7 ( — )] =!т [х ( — ) ]. (7.24) Следовательно, для вычисления действительной и мнимой частей двух функций У(п) и 2(п) достаточно использовать только !1!/2 ячеек памяти для каждой.
Значения 1'(И/2) и 2(И/2) удобнее всего задавать так, чтобы !т !У (0)! = Ке ~ У ( — !], 1гп[2(0)[= — Ке 2 ! 2 Действительная часть Мнимая часть ,1(1, Ц у[О) д(1) А(2, 1) г(0) г(1) у[Л! — 1) а(Л! — 1) Фиг. 7.18. (Учтем, что для действительной функции значение спектра в центральной точке мнимой части всегда равно нулю, т.
е. вычислять спектр иа этой частоте не нужно.) На фиг. 7.19 приведен текст программы, которую можно использовать для вычисления ДПФ двух функций по описанному методу. Первая функция вводится как действительная часть входного массива А (1, 1), а вторая — как его мнимая часть А (2, 1): ~к!(ко ~ ~!ньо! Тт н>нл!О)н ч~хн! ! 1зг Г. КЛ55Л т ьт)еяот)11йе аетттд,а) 1итЕСЕЙ а Р1)4Е и810и А 12 1 ) Сдь ЗСАСЕ тл,я) САСь Едбу тл,а) и * гадая с 1111 = Иl г ь1М2 = Ь1М1 + 1 с!МЗ = И 1 Л1 = 412, 1) А 12, 1) ° А11, Ь1М2) А2 = Атгеь!мг) Ро 1 1 = г,ь)м1 АЪ = А11е3) Я4 = Атгф 1) А5 = л11 ° и - 1 + 2) Аб = А12ей - 1 ~ 2) Атт 1) = 145 ЛЗ) ~г.в Атг,!) = 144 - лб)12.6 А(1 И Е + 2) = 5А4 + Лб)/2.6 Атгюй ~ 1 + 2) ~ тд5 - Аз)/2.6 1 СОИТ1ИОЕ РО г 1 = Ь)мг,астма А11.1) - А11, С . 1) дтгг 1) Е Атге1 + 1) 2 Сои11нОЕ А11ги) = лт Атгеи) = А2 аетОаи ЕиО Фнг. 7.19.
Программа для вычисления ДПФ двух деиствнтельных ы Х-точечных последовательностей. с После выполнения преобразования с замещением и п р пе етасовкой результатов в ячейках памяти спектры функций у( ) и (Й) и 2(Й) располагаются в следующем порядке: 1) Ке[Г(0)] Ке[)'(1)1 Мнимая часть е Алгоритм обратного преобразования лег)то получить из формул (7.23), выражая Х (и) и Х (Н вЂ” п) через У (и) и Л (и): Ке [Х (и) ] = Ке [)' (и) ~ — 1тп [Х (и) ], 1пт [Х (п)] = Ке [Х (и) ~ + 1тп [У (и)], . Ке [Х ()у' — п) ] = Ке [К (п)1+ 1тп [Х (и)],- 1гп [Х(М вЂ” п)] =Ке [Х (п)~ — 1тп [У (п)], . где п=1, 2, ..., (Ж/2 — 1).
Значения, соответствующие и=О и )у/2, определяются из формул (7.24). На тт)иг. 7.20 ф .. О приведен текст подпрограммы КРТ2 мой для выполнения об". т , иапользуератного преобразования дв х ных последовательностей. о у деиствитель- ЗОВаоОт1иЕ аттгтд, а) титЕСЕа я Р1мбй51он Атг,1) н = 2 ° ° я Ь1И1 = игг А11юи) Аг = Атг и) РО Атт~и 1+1) — 411 н т) Атг ° Н-1с)) - Атг ° И 1) 1 СОит1иОЕ Аз с Атг, 1) А12~ 1) = дт Атг 11 ° ~1М1 т 1) т Аз Ро21 А5 = А1 11гВ Лтг~н 142) Аб = А12,1) А7 = А1 1'1) + А 12ю и-1+г) ° 2) А<гг~'] + ° д + Л11~И-1сг) "11~ 1) = А5 Атг и-1+2) - дб сl А 11 е Н-1 с 2) з д7 Атг~ 1) * лв 2 СОн11йОЕ сльь зоаттд,а) Сдсс ЕАЗТ1дфа) йЕТОаи Еив Фиг.
720. П ог рограмма для полмчення в двух дейст итсльных функпии из ДП ределенном порядке в памят . ~~яти. 1Подробности о порядке записи снве смотри в тексте. Эта программа дополняет КГТ1.) 51етод вычисления ДПФ следова однои деиствительной Лг-точечной нов тельности напоминает п БПФ. Вспох ет первыи этап получения алгоритма спомним, что спектр ь нк и двух ее ча " б р фу ц и можно нанти из спектров мы берем ч степ, образованных п о рореживанием.
В данном случае м деиствительнуто функцию х1(й), А=О, 1, ..., Л' — 1, и об аз ем ные посчед р у м из нее прореживанием овательности: две деиствительные Лг/2-точеч- У (Й) =х1 (27т' 2 (й) =х1 (2~+;, где й=О, 1, ),;)2 134 глАвА т МЕТОДЫ ПРЕОБРАЗОВАНИЯ ФУРЬЕ 135 ')' — — и = У* (и) (7.26) 1 2 М/2 Действительная часть Мнимая часть А(1, 1) х(0) х(2) А(2, 1) х(1) х(3) х(М вЂ” 2) х(М вЂ” 1) М/2 1 2 (Ш ) г — — 1 А(1, 1) ЦО) г'(1) Действительная часть А(2, 1 Л(О) Л(1) Мнимая часть Функции у и г используются здесь снова, чтобы показать непосредственную связь с результатами, полученными ранее.
Единственное отличие состоит в том, что теперь обе функции имеют длину У/2, а не У. По аналогии с формулой (7.21) можно записать, что Х, (и) = — ()'(и)+К"2(л)1, п=О, 1...,, — — 1. Поскольку У(п) и Л(п) состоят из У/4 комплексных (т. е. %/2 действительных) значений, то удобно проводить вычисления, разбив уравнение на два рабочих соотношения: Х, (и) — — [У (л) + В'"Х (и)1 (7.25) Х, — — и = — )' — — и +%7~ ~Х вЂ” — и где п=О, 1, ..., У/4 — 1. Второе из этих соотношений можно выразить через У/4 имеющихся комплексных значений У(л) и Х(тт), поскольку Х 2 л ~ (г)) Таким образом, для тех же значений и имеем х,(~ —.),' в" (и) ж-г (п)1.
Можно вычислять У(п) и Х(п) одновременно, используя подпрограмму КГТ1 и выбирая подходящее значение Я в списке ее аргументов [Р определяет длину У(п) и Л(п), равную 2"~. Используя эту подпрограмму и выполняя вычисления по формулам (7.23) и (7.24), получаем спектр Х) (и). Все это выполняет подпрограмма КГТЗ (фиг. 7.21), у которой действительной частью массива А является последовательность у(А), а мнимой — последовательность 2(й): 50Ваоцт1нЕ аств(д а) 1йтесеа а 01йей510Н А(2, 1) С1 = 3 ° 14159 ОА~~ аст1(д,а) й геаа Ь1И) нсг С1и2 = Ь1н1 - 1 А(г,1) ~г.а А2 = А(г.й)сг.а А(1ю1)/2 ° 8 А4.
а А(1р!ч) 72 а ОО 1 1 = г,ь)и1 А5 * А(1.1) 72 ° а Аб = А(2. 1) 72 ° а А7 ~ А(1,Н 1 + 1)~2 а АВ ~ А(гней «1 + Аао = Р1 сьоат(Д' 1) гСЬОАт (и) А5 + А7~005(Айо) + АВ ° 5(Н(даС) А(2~1) = Аб «Аса51Н(дйС) + АВ ° С05(даС) А(1 и т 1) А5 А7 С05(АаС) дВ 51й(дас) 1 СОйт1йцЕ А(2 ° и 1 + 1) =-Аб А7а5]Н(даС) + АВ~С + ° 0 (АаС) ОО 2 1 = ),Ь(Иг А(1 ей Т. + 1) = А(1,Н 1) д(г~й - ~ + 1) = А(гней - Г) 2 СОНТ1нОе А(1е~.1И1 + 1) = А1 А(2~ Ь1И1 + 1) а Аг А(1 1) = ЯЗ + А4 Д(2 ° 1) = АЗ А4 аЕтцай ЕНО Фиг.
7,21. П ПРогРамма для вычисления ДПФ однои действительной Аг-точечной последовательности. Это соответствует следующему расположению в памяти /у'-точеч- ной действительной последовательности: Отметим, что ввод данных в таком порядке легко арограммируется на ФОРТРАНе 1Ч с использованием оператора ЕЯШЧА1 ЕНСЕ. Примеры использования этого Оператора содержатся в ' текстах подпрограмм Н1 ТК (фиг. 7.25) н %К1И (фиг. 7.28). Спектр функции х(й), получаемый с помощью КРТЗ, расположен в массиве А в виде ч! !!с!! ! !!!'! (~! !'л.!овл!!!11! Фу!'! !: 157 гллвл т 136 А',/2 Действительная часть ! ]4" ,— ч] А[2, 1) 1!н[Х[0)] 1гв[л [1)] Мнимая часть , Х вЂ” 1, (7.27) 1 г )~л 1 (7 28) (7.29) (Аб + Аа] а51И(лйь) + «Дб + АЕ)аСО$(лйа) !ь А<~ ч и,р!о>! к р<>н...
ее~~(.—,— ~]] Обратное преобразование для определения исходной Ж-точечной действительной последовательности можно получить из фор- 5()виолетт!че и~14 «л,и) 1Н1Е6ЕЙ И 1!1 !Е«ч51Ом А«г.1) Рт = З.14!59 и = г ° .а Ь«н1 = Н~г с(мг = ь«н1 с«иЗ = пл1 А(1.с 1мг) ° г.а Аг А(г,с «~2) г.в А5 с А(1 т) А4 = Л(2~1) «)о 1 1 = С«~г.ь«ив А(1.
1) * А «1. 1+1) А(2,1) * А«г,1 1) с о м т 1 н (! е «)о 2 1 * 2, ь 1!~1 ЛИС а Р1аС~ОЛТ(1 1) гГЬОАт(М) А5 а л 11,'1 ! Аб = А(2<')г) А7 "- А (1 ~~-1+1) АВ = Л (г, И-1~1) л(1 1) ~ А5 + А7 А(гф 1] а 46 АВ А «1 ем 1+1) ° (А5 " А7) аСО$(АйС) А(гам-1+1) к (А5 - А7) ° $)й(АЯС) СОИТ1МОЕ А«1,1) = АЗ + А~ А«1~И) = АЪ А4 А(2~1) = А1 А «г и) =-Аг слс~ иетг(л,а) йетоии Еио -Фиг. 7.22. Программа для- вычисления ОДПФ по половине спектра только иа положительных частотах ДПФ действительиой Л«-точечной 'последовательности.