Блейхут Р. - Быстрые алгоритмы цифровой обработки сигналов (1044113), страница 50
Текст из файла (страница 50)
Цз. Дл ра а р л р сд В.! БПФ-юп рн Ду — т юп сюнню 2н 4спр д ть числ юб дип зшсюнпй В.а. Пущая (л)нм (с)сбаа ч ют н лсслажюнйнчясюу юя й БПФ. алг р пнс Бдло рал лл « В. Пр ют й аоална стд льно дл чн ла пр дол м ннй нч В.з. д яо н гпо бра а неФурююют2,545п504о нн осп Р В.е. П ро» ь ор н н яя л упер аш (255Х25б)-\оч ш р р . дрн ю рн ! ю ют на х. Замечания 392 Гк В. Бн рм ыырнт и ю р и* р Врээоыэ й (ВХВ). Р ЕРЭ Ьур,эг „у 299, """ * рюэыд ю мюгюээпа о э эа ю о ээь ог у з.
сф уиу эроыг докыа влэ дэуюрп» пр эврыою й Фур эфээогыор и 462. В.)2 Псстуоать (ЗХЗ)-БПФ-элюрэтп Нуыбауюрэ — Кэ взюлз. В.!3. Оэталэвззаэь ог 4.гоычного БПФ-алгоуэпю н двумерного (ЗХМ БПФ. лг рнгиэ, оп о вдэпюй глав, построить лзуюзний П2ХЗ) БПФ. лг рюп Про й а зз ор ю и ы аду р юзр Луаээзэа Фуры зол с к пс лэдова эы иу змпывимю од ю. р их рыбр э зализ по эеын эи прызрээоэа эй э югоюи виде Вь и пэрюэсюьэ э дзу р ий лу й Сум с з о дэуээ р э алгорп зоэюхли поэм«Дзум рэо раэб «па Кули — Т ю н б ээ рээ Р й рюи (1) (1977) иоеобм р Зог Гарр,м л, Чм Шу ра (2) (!9Т1) Мэуырэ и Спиз )3) (!99!) оп»ыл м ую у Ф и р « . д уюр.
БПФ.элгэрнтиоз Ку л эу э Фур Дэ йю э рээвнтэ г эдо а ох В да получ р гю з Колос Пэуэсз ПП (1977) и С эыэр ы (б) П977!. М. оэм а . Р" ." ю пхэдоюмэю та БГ1Ф.алг В эюэ, пво м у» с э пю ПФ-а;эюр пмм Гула — Томаса и БПФ- эгорэтиу Бюю р д, Е; р,смг ренн Дэюьыню н Барраса )7) (19ВЗ) Испюьэоэаэь пююс р Сра. ыээнн Нусгзаумэуа длэ з ч л я пр братова й Фурье пу э и Йусэ. баум р и Кы д ы )В) (газ) Другую ру«уру алг рвюэ ю л д у. мер огоар обрээоза на,эс»о уюн в э нвих аи энчэскнмнс рт ур и у р й вю В Галуа в р тыпзкээ, спасали Ду др, Фэйг э Б о р х юрн иу сбэу ера — К пнэлю Глава р АРХИТЕКТУРА ФИЛЬТРОВ И ПРЕОБРАЗОВАНИЙ Сейчас, когда у иас уже есть такой большой набор алгоритмов цифровой обработки сигналов, пришло время обсудить их реализацию.
Основной целью данной главы является рассмотренне вопросов реализации построенных алгоритмов на цифровых фильтрах. Будут рассмотрены также векоторые другие задачи, танис как интерполяпия, прорежиюние н дискретное преобразование Фурье. Йспользуи гиездовые а каскаднме методы, мы построим из малых фрагментов большие структуры для обрабогк» дискретных сигналов. Наиболее важным устройством в обработке дискретных сигналов является КИО-филыр. На фильтр поступает входной поток отсветов цифровых данных, п на выходе фильтра формируется выходной ппшк отсчетов данных.
Длины этих пашков данных очень велики; возможно, каждую сенуиду через фильтр прохопят миллионы отсчетов Быстрые алгоритмы фииьтрапии всегда разбивакп поток входящих данных на пакеты, содержащие, возможно, сотни отсчетов. Единовременно обрабатывается только один пакет; результат обработки помещается в выходной буфер, данные из которого считываются с необходимой скоростью. 9.!. Вычисление снертки секционнрованием В гл. 3 было построено мною алгоритмов вычисления циклической свертки, Их можно использовать как непосредственно, так в в качестве модулей для построения хороших алгоритмов преобра. зования Фурье полобно тому, как это сделано в гл.
4. БПФ.алгорятыы, в свою очередь, могут быть использовены для построения эффективных алгоритмов вычисления свертки, особенно когда длине велика. В основе такого вычисленяя лежит теорема о свертке, согласно которой циклической свертке во временной области зэ = ~; йпг ээгбэ. ! = О, ..., л - 1, э=с в частотной области соответствует произвеюние Б„=Пабы Б=О,..., л — !. чр гэ* ( э г г „„а !.—..О,..., л. 1, ! =- О, ..., л' г.— -О,..., л 1, г'.= л,..., л' — л ! =-л' — л,..., л' — 1, д,' .=.
О, ) йт— 5,' —. А' д,'~г м,д; где теперь двойные скобки обозначают вычисление по модулю л' Тогда з; = зг длв ! =- О, ..., л — 1. Осгачьные значения зг не представляют интереса и могут быль отброшены Инеется многа методов сведения вычисления длинных линей. иых сверток к последовательности вычислений коротких к«кличе.
ских сверток. Повсеместно возникает необходимость фильтрации столь длинных последовательностей, что при прохождении через КИО-фнл тр с конечны г числам отводов нх можно считать бесконечными. Такая фильтрация должна вычисляться по частям по холу дела. Накопить все входные ламные перел началам вычислений выходной последовательности невозножна, так как эта ир«- валят к вадержнзм и к таму же требует большой буферной памяти, и хорошие алгоритмы вычислений не используют всех входных данных сразу.
Входные данные разделяются на сегменты, и, «ак талька олин сегмегп становитси полностью доступным, начинается его обрзбпка. Д!ы сначала опишем метод, известный пол названием метода перекрытия с накоплением. Предположим, чта у нас имеется устройство вычисления циклической свертки длины и, н что нам нужно умножить многочлен д (х), степень А «оторога меньше л, на мно- Следовательно, одним из возможных путей вычисления цикли. ческой свертки является вычисление преобразования Фурье, покомпонснтного произведения и обратного «реобразавания Фурье. Обычна лля такого вычисления длину преобразования Фурье выбирают равной ллине свертки; на иногда этот способ оказывается полезным даже при нарушении столь разум«ага условия.
Для БПФ-алгоритма может оказаться более подходящей другая длина преобразования. Выберем удобную для построени» преобраэонания Фурьд длину л, такую, чтобы выполнялось условие л' > йл, и удлиним векторы й, д н з так, чтобы компанеггты с индексами г = О, л — ! принимали »релвисываемые им циклической сверткой длины л значения, несмотря ва то, чт в числе«на произиодятсв иа удобной лля преобразования Фурье длине лд Например, ааределим Зп.в»жл ос р с пво р ет го»де н д (х), степень В которого больше л. Обычна В очень веогочлен лико н можно полагать его равным бесконечности.
По многа у д (х) настроим множество мнагочленов )дгс~ (х), д|п (х), ...) сте- пеней л — ! или меньше, полагая нх коэффициенты раввмми д)" .= дь г=-б,..., л — 1, д)а = д„„. „,, = О,..., и — 1, Много»лена» должна быть достаточно для исчерпания всех козф. фин»сигов много»лена д (к). Заметим, что так построенные многа- члены перекрывают друг друга Для каждого 1 определим Ви (х) = д (х) дгн (х) (шод х" — 1).
Тогда, таи как з(х) = д (х) д (х), то эа исключением первых А коэффициентов, ноэф)жциенты миагочлена з(к) на»адате» среди коэффициентов многочленов зиг(х), А именно, Ш»2 г лг зг =.А,...,л — ! я тзк далее Таким образам мы получаем на выходе фильтра бес. конечную последовательность данных. Первые А младших коэф- фиц» н ф е тов многочлеиа з(х) теряются. Во многих приложениях н является линейной свертки такая нигера в начале фильтрации я несущественной. Если же на выходе нужны все коэффициенты, то надо проста заменить мнагочлен д(х) на многочлен х ( ). р этом будут вычислены все ноэффициенты свертки, но индексы их будут сдвинуты на величину А. Каждая из рассмотренных цннлических свертон эа исключесм ослсдней вычисляет л — Л каэффндиентав искомой линей- ной свертки и А бесполезных коэффнпиевтов, «отары р отбрасываются.
Поскольку степень последвега входного сегмента да>(х) может быть меньше л — 1, то послед«я» свертка может содержать больше, чем л — А, значиммх коэффициентов. П ам деле »методе перекрытия с накоплением иег необхоа самом е ак н жны димости вычислять полную Ликлическую свертку, так как у не все ее коэффициенты, а только и — А «з них. Следовательно, подавляя ненужные коэффициенты, можно построить алгоритм, «старый несколько проще полного алгоритма вычисаения цикли- ческой свертки. Алгоритмы описанного типа, независимо ат таю, проводите» ли прямое вычисление или используется алгоритм вычисления циклической свертки, называются алгоритмами гек- диоииой Фильглрании. Они будут изучаться в следующем разделе. Зоа Гл. З.
ДРК т ГР ф Р Р аР З 3 Г кнр.м р в,г, Г КИП-Е К д В*д д д дд г» «- Рь . З 1. К ру«н Кно.ф ир . Основанная на методе перекрытц» с накоплением конструкция КИС-фильтра поназана на рнс. 9.1. Функцнональная схема таного фильтра похожа на линию задержки с огводанк, но истинная конструкцня может быть существенно другой. Посгупающне входные слова подаются в циклическую буферную память, которая в тнпнчных случаяк влаое больше секцнн фильтра. Во время фильтрации данных нз одной части буфера, во вторую его часть вапнсывзются денные следующей секции, подготавлнвая блок данных для следующего шага вычислений. Текущая секция данных перекрывается с новзй секцией.
Фнльтрацня блока данных длины и занимает то же время, что в запись нового блока нз л — А тачек. Вхолвой буфер является пиклкческнм. Зто означает, что после того, как его последний элемент заполнен, следующие входные символы записываются, начиная с первого элемента памяти. Та- ' ким образом, старые данные уничтожаются, а на их место запнсываются новые данные. Обычно удобно длину входного буфера выбирать равной степенн двух Записанное вдвончнам регястречясло ' указывает адрес, по которому запомннается следующий вход. н после каждою вкода содержимое регистра увеличивается ва единицу.
Свойство цннлнчностн буфера очень легко обеспечить тем, что предусмотреть возможность переполнення адресного регнстра после достнжения состояния, в котором во всех его разрядах запнсаны единнпы. Секцношгый фильтр отыскивает в памяти блок данных, адреса которых равны ((ЬВ ..., ((Ь + л — 1)). где Ь вЂ” начальный адрес к двойные скобки обозначают вычисление по модулю, равному длине буфера памяти. После обработки секции данных Ь заменяется на ЯЬ -1- АЦ н начинается фнльтрання следующей секции.