Айфичер Э., Джервис Б. Цифровая обработка сигналов, практический подход (2-е изд., 2004) (1095888), страница 146
Текст из файла (страница 146)
Реализация М каскадно соединенных канонических звеньев фильтров второго порядка на базе процессора []$Р56000 00 вм, м 11к МАС -ХО, ХО, А МАСК -Х1, ХО, А ХО, ХО, А Х1, ХО, А А, Х: ОЦТ РОТ ЯРЬК КРТВ ьт МРХА МРХ ЬТА ЯАСН МРХ ьАСь ьтп МРХ ьтп МРХ МАС МАС М 11К ВНО МОУЕР *О+, 1 « $0 АР.2 *+, АК1 »-, АК2 *+, АК1 Х: (КО)-, Х1 Х1, Хс (КО)+ А, Хс (КО)+ Х: (КО) +, ХО расчет М биквадратных звеньев Х: (К4)+, ХО (К4)+, ХО ; сдвиг данных н(п-2) н(п-1) Хс (К4)+, ХО Хс (К4)+, ХО 12,5. Реализация алгоритмов ЦОС на универсальных процессорах ЦОС 833 1. Разработайте и реализуйте БИХ-фильтр нижних частот, используя процессор ЦОС с фиксированной запятой ТМБ320С50.
Фильтр должен удовлетворять следующим спецификациям: частота дискретизации 15 кГц, полоса пропускания 0 — 3 кГц, ширина полосы перехода 450 Гц, неравномерность в полосе пропускания 0,5 дБ, затухание в полосе подавления 45 дБ. 2. Повторите и. 1, используя процессор ЦОС с фиксированной запятой ТМБ320С54. 3. Повторите п. 1, используя процессор ЦОС с фиксированной запятой ОБР56000.
4. Повторите п. 1, используя процессор ЦОС с фиксированной запятой ОБР56300. Решение Подробно разработка фильтра рассмотрена в главе 8 (раздел 8.8). Показано, что спецификации удовлетворяет эллиптический фильтр четвертого порядка со следующей передаточной функцией: 1+0,675 7182 '+ з 2 1 + 1, 649 6562 ' + з г 1 — О, 495 935з ' + О, 761 864з г 1 — О, 829 3282 ' + О, 307 046з 2 Разностные уравнения каскадной реализации с использованием канонических звеньев совпадают с приведенными в формуле (12.9). Коэффициенты, масштабированные, чтобы избежать переполнения, и квантованные до 16 бит, перечислены в табл.
12.4. Коды реализации фильтра четвертого порядка с использованием фильтров в канонической форме на базе процессоров ТМБ320С50 и ТМБ320С54 не приводятся нз-за недостатка места, но нх можно найти в книге 11Теас)тот, 200Ц (см. предисловие). Для реализаций на базе РБР56000 и ОБР56300 коэффициенты квантуются до 24 бит (длина коэффициентов).
Таблица 12.4. Коэффициенты фильтра до н после квантования до 16 бнт Коэффициент Маеттабнроеанита коэффициент Кааитоеаиииб коэффициент эг = 2, 479 158 (51); Вг = О, 403 362 7; ег = 18, 908 47 (51). Ьт Ь12 Ьт ат ат Ьт ь„ Ьгг а11 ат 1 О, 675718 1 -О, 495935 О, 761864 1 1,649656 1 -О, 829328 0,307046 0,9999695 0,675718 0,9999695 -0,495935 О, 761864 0,1311136 0,2162924 О, 1311 13е -О, 829328 О, 307046 32767 22142 32767 -16251 24965 4296 7087 4296 -27175 10061 вза Глава 12. Универсальные и специализированные процессоры ЦОС б) Рис. 1ЗЗЕ.
Реализация БИХ-фняьтра нетаертого иорялаа: а) диаграмма реаяизацнн; б) схема намяти дая хранения даннмх и ьозффициентоа Параллельная реализация Передаточная функция БИХ-фильтра )тг-го порядка в параллельной реализации записывается следующим образом: (12.! О) Диаграмма реализации с использованием канонических звеньев второго порядка с ))Г = 4 представлена на рис. 12.30. Разностные уравнения канонического звена записываются следующим образом: цгт (и) = БР1 х(п) — а,тигт(п — 1) — ам нтт (и — 2), Ут(п) = Ьоттот(п) + Ьттигт(п — 1), 1112 (11) Бргх (тз) 1112та2 (п 1) 1122 нг! ("1 2) Уг(п) = Ьогнтг(п) + Ьтгцгг(п — 1), у(п) = сох(п) + ут(п) + уг(п). Простой код С для БИХ-фильтра, реализованного как параллельная комбинация кано- нических звеньев второго порядка, представлен в программе 12.6. 12.5. Реализация алгоритмов ЦОС на универсапьнык процессорак ЦОС 83$ Программа 12.6.
Псевдокод С параллельной реализации фильтра четвертого порядка кок(п О; п,(нзвжр1ев-1); ++и)( у[п] с*х[п]; (Х 1с Х,ис ++К)[ ы)с з)с[)с]»х[п]-а1[Х]»и1[)с]-а2[3с]»и2[Х]; у)с (ЬО[Х]»ик+Ь1[)с]»и1[Х])/зк[Х]с /» выход первого звена "/ и2 [к] и1[)с]; /* сдвиг н запись данных элемента задержки"/ и1[)с] икс у[п] у)с+у[и]; /» нзажр1ез — число выборок данных »/ /* выход через постоянный тракт */ Дрйме~'-'.Ц4 Представьте передаточную функцию, приведенную в примере !2.4, в параллельной форме, используя в качестве элементарных составляющих канонические звенья второго порядка. Реализуйте фильтр на базе аппаратного обеспечения, указанного в предыдущем примере. -О, 132 922 5 — О, 180 523з ' Н(з')— 1 — 0,028 994з '+ 0,044 541 бз з + -0,058 534+0,508 420з ' 1 — О, 048 489 9з-' + О, 017 951 1г з + О, 249 923 79 зс — — 5,5244844, зг = 2 4794. Значения коэффициентов до и после квантования до [6 бит приведены в табл.
12.5. Коды реализации фильтра на базе процессоров ТМ8320С50, ТМ8320С54, 08Р56000 и [)БР56300 можно найти в книге ([[еас])ог, 200[) (см. предисловие). Для реализации на базе процессоров [)БР56000 и [)8Р56300 коэффициенты квантоввлись до 24 бит. Расширение методов реализации, описанных выше, на каскадную и параллельную структуры БИХ-фильтров высоких порядков выполняется относительно просто. Впрочем, если реализовать расчет звена второго порядка как подпрограмму, можно получить более компактный код.
Решение Используя рассмотренную в главе 4 программу разложения на элементарные дроби, по коэффициентам каскадной реализации получим коэффициенты параллельной реализации. В результате передаточная функция преобразуется к следующему ви)0'. 836 Глава 12. Универсальные и специализированные процессоры ЦОС Таблица 12.5.
Реализация БИХ-фильтра четвертого порядка из примера 12.5: коэффициенты фильтра до и после квантования до 1б бат Коонтоеонные коа$4анциенты Некиентоеннные коаффициенты 12.6.3;:.-"' Расчет БПФ Дискретное преобразование Фурье (ДПФ) конечной последовательности данных х(л) определяется следующим образом: к-1 Х(Б) = ~ ~х(л)И'й", а=а где Иги, часто именуемое настроечным ларамеером, — это набор юмплексных коэффициентов. Прямое вычисление юзффициентов ДПФ Х(Б) является трудоемким процессом при больших )а'. Значительно сократить время расчета Х(14) можно с помощью алгоритмов быстрого преобразования Фурье (БПФ).
Как обсуждалось в главе 3, основными параметрами алгоритмов БПФ являются коэффициент ибабочки" и настроечный коэффициент. 12.5.3.1. Реализация 'бабочки" На рис. 12.31, а и б изображено два типа '"бабочек", используемых в двоичном БПФ. Применение быстрого преобразования Фурье по обеим схемам дает одинаковые результаты. Для децимации во времени (рис. 12.31, а) на вход "бабочки" подается два значения А и В, по которым вычисляется пара выходов: А' = А + ВИ'~н, (12.! 1, а) В' = А — ВИ'к,. (12.11, б) Вообще, входные и выходные выборки данных, а также настроечные параметры явля- ются комплексными и в общем виде их можно выразить следующим образом: А=А„,+4А,, (12.12, а) ВРа Са аа1 ан ь ь ааа ап ьы ь 892 0,18100 0,24992379 -О, 1329225 -0,1805232 0,028994 -О, 0445416 -О, 058534 О, 5084205 О, 0484899 -О, 017951 О, 40332 5931 8190 -24063 -32670 16251 -24965 -4756 20653 27178 -10061 13216 12.5.
Реализация алгоритмов ЦОС на универсальных процессорах ЦОС 837 л а) гкл )г-л- н"в л л'=я+ в в) в Рис. 12.31. Два типа "бабочек", используемых в алгоритмах двоичного БПФ: а) "бабочка" для дво- ичнопг БПФ с децимацией во времени; б) '%квочка" длл двоичного БПФ с депимацией по частоте В = Все + тВ, Иг~л = е зго /~ = сон(2п[с/У) — зяп(2кк/)ьг), (12.12, б) (12.! 2, в) где индекс ге обозначает действительную часть величины, а тлз — мнимую. Операция "бабочка" согласно уравнению (12.11) включает действия с комплексной арифметикой, но на практике она часто выполняется с использованием действительной арифметики.
Чтобы выразить эту операцию в форме, подходящей для действительной арифметики, отметим, что произведение В и И/ в уравнении (! 2.11) имеет следующий вид: ВИ/е = Все сон(Х) + В„зш(Х) + з(Вг соз(Х) — Вгеяп(Х)), (!2.13) где Х = 2хк/М. Подставляя уравнения (12.12) и (12.13) в уравнения (12.! 1, а и б), получаем: А' = Ага+ [В,., соз(Х) + В, з!п(Х)] + [(Агзн + [Вг сов(Х) — В„яп(Х))) (!2.14, а) В' = А„— [В„сов(Х)+В, вгп(Х)~)+з(А, — [В„, соз(Х) — В„, яп(Х))). (12 14 б) р1=б.2831530717958б/Мг ток()с-Ог )с<Н/21 ++1с)[ Х=к»р1г н.кеа1[Х) сон[Х]1 н.1мнд[Х) н1п[Х) г Теперь выходы "бабочки" А' и В' представлены в нужной форме. Следовательно, для данной пары комплексных точек А и В в ПДСК по формулам (12.14, а и б) можно вычислить выход "бабочки", используя только действительную арифметику.
Вычисление синуса и косинуса в формуле (12.14) является трудоемкой операцией. В БПФ реального времени эффективнее заранее вычислить действительную и мнимую части настроечного параметра (уравнение (12.12, в)) и сохранить данные значения в таблице соответствий. Предварительный расчет значений настроечного параметра иллюстрируется в программе 12.7. Программа 12.7. Псевдокод С для предварительного расчета значений настроечного коэф- фициента 838 В программе ]2.8 приводится псевдокод С для двоичной "бабочки", значения настроечного параметра которой вычислены заранее и занесены в таблицу соответствий. Программа 12.8. Псевдокод С для расчета "бабочки" С. геа1=Ъг*н.