Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 68
Текст из файла (страница 68)
Поддерживается и вариант синтаксиса с задаваемой пользователем функцией расчета АЧХ: [Ь, еггог, ор1] = дгевет(п, 1, ('(гезр', р1. р2 ...), н) По умолчанию в качестве тгезр используется функция гевехггт2, расположенная в каталоге 1оо(Ьохт((((егоев1дп'(11((егс(ез(дпт,рг)ча(е и реализующая расчет кусочнолинейпой АЧХ. Подбор порядка фильтра Для реализации автоматического подбора порядка фильтра при заданной величине пульсаций АЧХ функция дгевех вызывается следующим образом; [Ь, еггог, орт] - дгевет('в'. т, з. г) Вместо порядка фильтра указывается строковый параметр 'в', который может принимать олно из трех следукицих значеюш; С] 'в)погг(ег' — подбирается минимальный порядок фильтра, при котором от- клонения АЧХ от заданной лежат в допустимых пределах; С) 'в1печеп' — подбирается минимально возможньш четный порядок фильтра, при котором отклонения АЧХ от заданной лежат в допустимых пределах; С) 'в1пог(((' — подбирается минимально возможный печепгиый порядок фильтра, при котором отклонения АЧХ от заданной лежат в допустимых пределах.
Параметр г — вектор допустимых абсолютных значешш пульсаций АЧХ для отдельных частотных полос. Его длина должна быть в два раза меньше длины вектора т. Начальное приближение пт для подбора порядка фильтра можно указать следующим образом. [Ь, еггог, орт] = дгевет(('в', пт), т, а, г) 364 Глава б. Проектирование дискретных фильтров Такое указание иачальцого значения порядка фильтра является обязательным в тех случаях, когда нельзя использовать функцию гевехогб (иапример, при расчете лиффереицируюших фильтров и преобразователей Гильберта). Принудительное ограничение величины пульсаций Чтобы задать ограничения величины пульсаций АЧХ в некоторых полосах частот, фуикцию дгеяег нужно вызывать следующим образом: [Ь, еггог, ор1) - дгевег(п. т, а, и, с) Сами ограничения пульсаций задаются в векторе весовых коэффициеитов и, а параметр с определяет, какие из элемеитов вектора и являются весалыми, а какие — ограничениями.
Параметр с лолжеи представлять собой массив ячеек с числом элементов, равным клипе вектора и. Каждый элемент с(Ц может прииимать одно из двух строковых значений: ~2 'с' — я-й элемент вектора и трактуется как прелельио допустимая величина (сопзгга1пг) пульсаций АЧХ лля Й-й полосы частот; 11 'и' — я-й элемент вектора и трактуется как весовой коэффициент (тве!яйг) лля я-й полосы частот.
Необходимо, чтобы хотя бы одна частотная полоса пе имела ограничения иа величину пульсаций. Поэтому массив ячеек с лолжсп содержать хотя бы один элемент, равный 'и'. Использование независимых ошибок аппроксимации Чтобы независимо минимизировать величину пульсаций АЧХ в разных полосах частот, функция дгевег вызывается следу)ошим образом: (Ь. еггог, ор1] - дгеяеа(п. т. а. и, е) Параметр е определяет, как группируются частотные полосы лля расчета независимых ошибок аппроксимации. Этот параметр представляет собой массив ячеек с числом элемеитов, равным длине вектора и. Каждый элемент е(Ц должен быть строкой вида 'еФ', гле Ф вЂ” целое положительиое число. Это означает, что )т-я полоса частот принимает участие в расчете ошибки аппроксимации с номером У.
В данном режиме функция дгеаеа пытается независимо минимизировать отклоиеиие АЧХ от заданной в нескольких полосах частот. В результате получается фильтр, пульсации АЧХ которого равномерны в каждой группе частотиых полос, формирующих общую ошибку аппроксимации, цо лля разных групп полос пульсации будут разными. Таким образом можно, например, сиитезировать фильтр, в полосе пропускаиия которого пульсации АЧХ будут меньше, чем в полосе задерживаиия.
В результате ииогла могут получаться фильтры, имеющие очень узкие переходные зоны между полосами пропускавия и залерживаиия. По умолчанию параметр е имеет значение ('е1', 'е1', 'е1*, ), то есть все чвстотиые полосы формируют олпу общую ошибку аппроксимации АЧХ. 365 Синтез дискретных фильтров в мАТСАВ Описание особых точек АЧХ Для описания особых точек АЧХ фильтра используется массив ячеек з, число элементов в котором должно быть равно длине векторов т и а: [Ь.
еггог, орС) - дгевег(п. т, а. з) Элементами массива з являются одпосимвольные строки, имеюп(ие следующее значение: О) 'и' — обычная точка АЧХ (поппа1 ро(пс); сл 'з' — «точечная» полоса (з(пя1е-ро!пс Ьапд); О) 'т' — коэффициент передачи синтезированного фильтра на данной частоте должен быть точно равен заданному ([огсес[ [тес)пенсу ро(пс); О) '1' — коэффициент передачи на данной частоте не определен (!пс1есегшспасе (геццепсу ро!пс; такую точку можно использовать на границе вплотную примыкающих друг к другу частотных полос).
Указание дополнительных свойств синтезируемого фильтра Для синтеза фильтра, обладающего некоторыми дополнительными свойствами, в конце списка параметров функции дгеаег могут использоваться следующие строковые значения: О '1', '2', '3' илн '4' — синтезируется фильтр соответствующего типа (см. табл. 4.1 в разделе «Симметричные фильтры» главы 4); О 'в(прпазе' или 'аахрпазе' — синтезируется соответственно лсинилтально-фазовый фильтр (все нули функции передачи лежат на с-плоскости внутри единичной окружности илн на ней) пли максимально-фазовый фильтр (все нули функции передачи лежат на;-плоскости снаружи единичной окружности илн на ней); О) 'спеск' — выполняется проверка наличия аномалий в переходных зонах н при их обнаружении выдается соответствующее предупреждение.
Информация об обнаруженных аномалиях возвращается также в поле еадеспесх структуры орс (см. выше). Функции, использующие р-норму ошибки Перечисленные ниже функции выполняют прямой синтез фильтров путем минимизации р-нормы ошибки воспроизведения заданной характеристики (АЧХ или групповой задержки): О) П г1рпогв — расчет нерекурсианого фильтра по заданной АЧХ: [ь, егг) - т)г1рпогв(п.т.еадез.а,н,рАепз.ьО) О) 1(г1 рпогв — расчет рекурсивного фильтра по заданной АЧХ: [Ь. а, егг) - 1(г1рпога(пА.Т.еадез.а.н,рАепз.ЬО,з0) О) т'(г1 рпогвс — расчет рекурсивного фильтра по заданной АЧХ с ограничением модуля полюсов: [Ь.а.егг) = 1(г1рпогвс(пА .т".ес)дез,а,н,гас)тоз,рАепз,ЬО.а0) Глава б, Проектирование дискретных фильтров (3 (тгдгрбе1ау — расчет всепропусхаюк(его (см.
раздел «Нули и полюсы» главы 4) рекурсивного фильтра по заданной зависимости групповой задержки от частоты: [Ь, а. Саи)=1)гдгрбе1ау(п, т, ебдез, дб,и, габ1из, р бепз. а0. сад ) Параметры всех этих функций задаются одинаково и имеют следующий смысл: (3 п — порядок числителя функцтпт передачи фильтра; Ы б — порядок знаменателя функции передачи фильтра; (3 т — вектор частот для задания частотной характеристики фильтра (вектор должен содержать возрастающую последовательность значений, нормированных к частоте Найквиста, причем должны выполняться равенства т(1) = 0 и т(епб) = 1); (3 э — вектор значений АЧХ для частот из вектора т (используется кусочно-линейная интерполяция); 1:( дб — вектор значений групповой задержки, измеряемой в отсчетах, для частот из всктора т (используется кусочно-линейная интерполяция); О ебдез — вектор четной длины, задающий границы частотных полос, в промежутках между которыми АЧХ считается незаданной.
Таким образом, АЧХ считается задапвой в полосах ебдез(1) ...ебдез(2), ебдез(3)...ебдез(4) и т. д. и неопределеппой в полосах О...ебдез(1), ебдев(2)...ебдез(3) и т, д. Вектор ебдез должен содержать значения частот, имеюшиеся в векторе й Приведенные ниже параметры являются необязательными и имеют значения по умолчанию: 0 и — вектор весовых коэффициентов, Он должен иметь такой же размер, как векторы т", э и дб, и содержать неотрицательные вещественные числа, По умолчанию все элементы этого вектора равны единице; (3 габ1цз — предельно допустимая величина модулей полюсов синтезируемого фильтра. По умолчанию используется значение 0,999999; (3 р — двухэлементный вектор вида (рапп рвах), указываюший границы для параметра р используемой при расчете нормы ошибки.
Элементы вектора должны быть целыми положительными четными числами. По умолчанию используется значение (2 128], что дает результаты, близкие к минимакспой оптимизации. Возможно также значение 'тпзресс', при этом оптимизация не производится и функция выдает используемое ею начальное приближение; (3 бепз — плотность частотной сетки, используемой функцией для расчета ошибок.