Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 61
Текст из файла (страница 61)
При этом производится минимизация среднеквадратпческой ошибки во временной области. Синтаксис вызова функции следующий: (Ь, а) = уп!еыа11(п, т в) Здесь п — порядок рассчитываехюго фильтра (возвращаемые векторы Ь и а будут иметь длину и ь 1). Параметры г и в должны быть векторами одинаковой ллины, они совместно определяют желаемую ЛЧХ синтезируемого фильтра. Вектор Г содержит значения частот, нормированные к частоте Найквиста, а вектор в — соответствующие этим частотам значения АЧХ.
В промежутках между заданными точками АЧХ интерполпруется по линейному закону. Частоты'в векторе ~ должны образовывать неубывающую последовательность, кроме того, должны выполняться равенства ~(1) = 0 и Г(еп(() 1. Вывести график синтезируемой ЛЧХ можно командой р1ог(Г, в). ВНИМАНИЕ Частоты в лекторе (могут лублироааться, что ласт аозыожиость задать скачкообразное измсвсиис АЧХ. Однако задавать такис скачки ири синтезе рскчрсиаиых фильтров ис рскомсилустся.
ЗЭ7 Синтез днокретных фильтров в МАТСОВ Результатами работы функции являются векторы Ь и а коэффициентов полиномов числителя и знаменатели функции передачи рекурсивного фильтра. Длина этих векторов равна и + 1. Расчет фильтра выполняется следующим образом. Сначала определяется полипом знаменателя, при этом числитель функции передачи считается равным единице и задача оптимизации сводится к решению модифицированной системы уравнений Юла — Уолкера (отсчеты корреляционной функции определяются путем обратного ДПФ от квадрата модуля АЧХ).
Затем оптимизируется полином числителя, чтобы улучшить приближение к заданным характеристикам. ФУНКЦИЯ 1ПИГЕЦЕ Функция 1пчггеох, как следует из ее названия, является обратной по отношению к функции Ггейх (см. раздел «Расчет частотной характеристикиь главы 4). Это значит, что она позволяет получить коэффициенты лолиномов числителя и знаменателя функции передачи рекурсивного дискретного фильтра по значениям его комплексного коэффициента передачи. Таким образом, функция 1пчггепх может использоваться для синтеза рекурсивных фильтров, причем, в отличие от многих других функций синтеза, здесь в качестве желаемого результата задается не АЧХ, а комплексная частотная характеристика (то есть АЧХ вместе с ФЧХ). Синтаксис вызова функции следующий: [Ь, а] - 1пчггепг(п. и, пЬ, па.
ит. 1ьег. ьо1. 'Ггасе') Здесь и — вектор частот, а Ь вЂ” вектор соответствующих им значений комплексного коэффициента передачи. Параметры и и Ь должны быть векторами одинаковой длины. Частоты в векторе и должны лежать в диапазоне от О до и, значение п соответствует частоте Найквиста. ВНИМАНИЕ Нормировка частот, используемая в функции 1пч[гепх отличается от варианта, принятого почти во всех других функциях обработки сигналов, поэтому стоит повторить еще раэ: частота Найквнста в данном случае равна л, а не единице. Частотная характеристика синтезируемого фильтра сравнивается с заданной только в указанных дискретных частотных точках; никакой интерполяции не производится. При указанном выше способе вызова частотная характеристика считается симметричной и рассчитывается фильтр с вещественными коэффициентами.
Чтобы синтезировать фильтр с комплексными коэффициентами, необходимо после параметра и поставить дополнительный параметр в виде строки 'совр1ех': [Ь. а] - 1пчггепх(Ь, и, 'сов|р1ех'...) В этом случае элементы вектора и могут лежать в диапазоне от — и до п. Параметры пЬ и па задают степени полиномов числителя и знаменателя функции передачи фильтра.
Остальные параметры функции являются необязательными и имеют значения по умолчанию. Вектор иг должен иметь такой же размер, как векторы Ь н и 338 Глава 6. Провктироввнив дискретных фильтров Он задает весовые коэффициенты для расчета ошибки. По умолчанию все час- тотные точки имеют одинаковый вес. е = ч ~тчг(/г)~ /г(/г)А(ш(/г)) — В(ш(/г)) ~ . г=! (6.13) Здесь /Сг- количество эле!ментов в векторах и, Ь и иС, а А(гг!(/г)) и В(иг(Й)) — спектры векторов, составленных из коэффициентов полиномов числителя и знаменателя функции передачи фильтра, вычисленные на !С-й частоте из вектора и: а+! ы+! А(гг!(/г)) = ',г а(п)е "" !' г~г, В(гг!(/г)) = ~~> Ь(п)е /! (6.14) ь=! Подстановка (6.14) в (6.13) и приравнивание к нулго частных производных по /г(л) и а(п) дает систему линейных уравнений относительно коэффициентов фильтра.
Эта система решается соответствующими средствами МАТ(.АВ (оператор 1). Разумеется, критерий (6.13) не минимизирует отклонение частотной характеристики фильтра от заданной. Однако он приводит к несложной задаче решения системы линейных уравнений и дает точное решение, если векторы Ь и и действительно описывают фильтр, имеющий пЬ нулей и пв полюсов.
Другой алгоритм — это «честный» поиск фильтра, дающего минимальную взвешепнуго квадратическую ошибку воспроизведения заданной частотной характеристики. Минимизируемая ошибка рассчитывается при этом следующим образом: е = ~ттС(/г) /г(/г) — . В(п!(/г ) ) (6.15) ! =! А (го(/г) ) В данном случае дифференцирование критерия е по коэффициентам фильтра дает систему нелинейных уравнений, поэтому найти аналитическое решение не удается и оптимизация производится численным итерационным методом. Признаком расчета по второму алгоритму является наличие входного параметра тСег, задающего число итераций.
Необходимое количество итераций зависит от параметров синтезируемого фильтра. Можно начать со значения 20, увеличивая его, если заданная точность не будет достигнута. Параметр Со1 задает критерий остановки итерационного алгоритма. Если вели- чина нормы градиента целевой функции (6.15) становится меньше Со1, решение считается найденным. По умолчанию значение Со1 равно 0,01.
Наконец, при указании параметра 'Стасе' функция выводит информацию о ходе итерационной оптимизации. Результатом работы функции являются векторы Ь и в коэффициентов полино- мов числителя и знаменателя функции передачи синтезированного рекурсивно- го фильтра. Размеры этих векторов составляют пЬ + 1 и пз + 1 соответственно. Оставшиеся три входных параметра имеют отношение лишь к одному из двух возможных алгоритмов расчета, так что само их наличие или отсутствие управ- ляет выбором алгоритма.
Если параметры тсег, со1 и 'СГВСе' отсутствуют, то функция минимизирует ошиб- ку, рассчитываемую следующим образом: 339 Синтез дискретных фильтров в МАТЬАВ Функция ргопу Функция ргопу позволяет синтезировать рекурсивный фильтр по заданной импульсной характеристике. Синтаксис вызова функции следующий: ГЬ, а] = ргопу(П, пЬ, па) Здесь П вЂ” вектор отсчетов синтезируемой импульсной характеристики, пЬ и па— порядки полиномов числителя и знаменателя функции передачи рекурсивного фильтра соответственно.
Возвращаемые результаты — векторы Ь н а коэффициентов полиномов числителя н знаменателя функции передачи синтезированного рекурсивного фильтра. Длина вектора Ь равна ПЬ+1, длина вектора а — па+1, Расчет фильтра производится следующим образом. Сначала определяется знаменатель функции передачи с помощью ковариационного метода анализа авторегрессионных моделей. Затем находится такой полипом числителя, чтобы первые ПЬ+1 отсчетов импульсной характеристики получившегося фильтра в точности совпадали с соответствующим фрагментом вектора П.
Устойчивость рассчитанного фильтра не гарантируется, однако данный метод может дать точные результаты, если отсчеты в векторе П действительно представляют собой начало импульсной характеристики рекурсивного фильтра с числителем и знаменателем порядков ПЬ и пв. В качестве примера попытаемся синтезировать рекурсивный фильтр 5-го порядка с конечной импульсной характеристикой треугольного вила. Чтобы уменьшить кхвост» после око11чапия заданного фрагмента, дополним задаваемую импульсную характеристику некоторым количеством нулей.
Результат синтеза (импульсная характеристика полученного фильтра) показан на рис. 6.9. » П - 11 2 3 4 5 4 3 2 1 гегоз(1. 9)]; » ГЬ, а] = ргопу(П. 5, 5). » 1прг(Ь, а) 0 6 10 16 20 Рис. 6.9. Результаты аппроксимации треугольной импульсной характеристики в рекурсивном виде с помощью функция ргопу З4О Глава 6. Проектирование дискретных фильтров Из графика видно, что результаты получены весьма неплохие — затухающий «хвост» оказался небольшим. ЗАМЕЧАНИЕ Если прн вызове фупкппи ргопу указать порядок числителя, па сднпипу мспьпшй числа ненулевых отсчетов заданной импульсной характеристики (в пашем примере — 8) плп превышающий зто значение, будет синтезирован яерекурсиаяый фильтр, шоч>со воспронзволяший заданную импульсную характеристику.
Функции синтеза с использованием окон Общая идея синтеза нерекурсивных фильтров с использованием окон была рассмотрена ранее, в разделе «Субоптимальпый синтез нерекурсивных фильтровь. В пакете Яяпа1 Ргосезз)пп имеется две функции, реализующие данный метод.