Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 67
Текст из файла (страница 67)
р). р2 ...) 359 Синтез дискретных фильтров в Мят(яв В каталоге (оо!ЬОХ18(йпа(18)йпа!дарг!ча(е (содержимое данного каталога доступно только функциям пакета В!япа! Ргосезгйпй) имеется несколько готовых функций расчета ЛЧХ, которые можно использовать в качестве параметров при вызове гевех и сгеиех.
Так, функция гевехтгг реализует кусочно-линейную интерполяцию ЛЧХ и используется по умолчанию функцией гевех Данная функция вызывается следующим образом: ('геаехггт', а). Здесь а — вектор значений Аь1Х, соответствующих частотам из вектора й Таким образом, приведенный ранее первый вариант синтаксиса вызова функции геиех на самом деле трансформируется так: ., - гевег(п, 1, ('геаегтгС, а).
и, 'ттуре'. (1дг10!) Другие функщш етого семейства имеют следующие имена: а11разз, 1оиразз, Ь10Ьразз, Ьапйрам, Ьапоз1ор, вц1т1Ьапй, 1пчзтпс, Ы1Ьй1Ь, 01 гтегеп11атог. Справку об их использовании можно получить в командной строке МАТЮКАВ, введя команду » Ье1р рщ часе/имя функции Текст перечисленных функций можно использовать в качестве образца при написании собственных функций расчета АЧХ. Пример использования В качестве примера синтезируем методом Ремеза ФН~1 с теми жс параметрами, что и при демонстрации использования функций утг1 з и утгс1 з (см. рис. 6,10 и 6.11).
График АЧХ полученного фильтра представлен на рис. 6.12. » 1 (О 0.2 0.25 Ц: » а = (1 1 0 0): » Ь = гев)ег(32, г. а): » Рн и) " 1гесх(Ь): » р1о1(и/ры аЬз(Ь)) Ж график РЧХ » Ог)О оп ((О 1.1)) 0.8 0.6 0.4 0.2 О 0.2 0.4 0.6 0.8 Рис. 6.12. ЯЧХ ФНЧ, синтезированного путем минимаксной аппроксимации с помощью функции гегпез З6О Глава В. Проектирование дискретных фильтров Сравнение АЧХ на рис. 6.10-6.12 показывает, что пульсации АЧХ получились больше, чем при минимизации среднеквадратнческой ошибки (их амплитуда составляет примерно 0,065). Однако фильтр, синтезированный методом Ремеза, дает минимальную ширину переходной полосы (равномерный характер пульсаций в полосах пропускания и задерживания строго выдержан, тогда как при минимизации среднеквадратической ошибки АЧХ далеко отходит от заданных значений при приближении к переходной зоне).
Если задать границы переходной зоны такими, какими они оказались в действительности прп использовании функции Гтгс)з (примерно от 0,175 до 0,275, см. рис. 6.11), синтез методом Ремеза даст такие же или меньшие пульсации. Убедимся в этом, не выводя график АЧХ, а проверив значение второго выходного параметра функции гевегс » 7 - [0 0.176 0.275 1); » а - [1 1 0 О): » [Ь, б) - гевет(32, т, а); » бьзр(б) $ вь>вод амплитудь~ пульсаций 0.0176 Как видите, в данном случае пульсации действительно оказались несколько меньше, чем при минимизации среднеквадратической ошибки с ограничением максимального отклонения.
Функция сгегпез Функция сгеаег является расширенным вариантом функции гевегь имеющим следующие отличия; ь1 ФЧХ фильтра пе обязательно должна быть линейной; ь2 можно синтезировать фильтры с комплексными коэффициентами; [1 тип симметрии импульсной характеристики задается в явном виде, а не косвенно; ь) в алгоритм расчета добавлена вторая стадия, уточняющая решение, найденное методом Ремеза; ц) имеется некоторое количество предопределенных функций расчета АЧХ. Синтаксис вызова функпин следующий: [Ь. бе)ьа. орь) " степей(п, т", а, и, ()йгтб).
'зуя'. 'зк1р зьайе2'. 'беЬцй') или [Ь. бе)ьа, орь) - сгеяег[п, т, ('1гезр', р1, р2 .,), и, ()дг1б), 'зуя'. 'зк1р зсзйе2', 'беЬц0') Выходные и почти все входные параметры совпадают с параметрами функции гааза, рассмотренной ранее. Поэтому остановимся только ца имеющихся различиях. Частоты в векторе Г должны лежать в диапазоне -1...1. Возможность задавать поведение АЧХ в области отрипательпых частот позволяет рассчитывать фильтры с комплексными коэффициентами.
Синтез дискретных фильтров в МАТ(АВ Число точек частотной сетки, регулируемое параметром (1дг1а), ориентировочно равно 2"пехтраи2(1дг1а*п). По умолчанию значение 1дг1а равно 25. Строковый параметр 'зуя' позволяет управлять симметрией импульсной характеристики. Возможны следующие четыре значения: (3 'папе' — ограничений симметрии не накладывается; (3 'ечеп' — четная симметрия импульсной характеристики: Ь(Ь) - Ь(п + 2 — Ь); (3 'аоа' — нечетная симметрия импульсной характеристики: Ь(Ь) --Ь(п+ 2 — Й); О 'геа1 ' — комплексно-сопряженная симметрия импульсной характеристики: Ь(Ь) - Ь (и + 2 — Ь) (этот вариант позволяет получить фильтр с линейной ФЧХ и несимметричной относительно нулевой частоты АЧХ).
Использование отрицательных частот в векторе Г возможно только при 'зув' 'папе' пли 'геа1 '. Прн указании в списке параметров строки 'зК1р згаде2' отключается вторая стадия алгоритма (она вьпюлняется, если оптимальное решение не найдено стандартным методом Ремеза).
Это может повысить скорость расчетов за счет уменьшения точности. Последний входной параметр ' аеЬид' управляет выдачей сообщений о ходе оптимизации. Возможны следующие строковые значения: О 'а(а — сообщения не выводятся (этот вариант используется по умолчанию); (3 'Ггасе' — выводятся текстовые сообщения; О 'р1о1з' — выводятся графики; (2 'Ьагп' — выводятся текстовые сообщения и графики. Функция геп)екогб Функция гевеааг6 предназначена для оценки требуемою при синтезе методом Ремеза порядка многополосного нерекурсивного фильтра с заданной величиной пульсаций АЧХ. Синтаксис вызова функции следующий: (и.
та. аа, и) = гевегаго((, а, аеч, тз) Параметры Г и а совместно задают кусочно-постоянную АЧХ. В векторе Г должна содержаться возрастающая последовательность значений частот. Вектор а задает постоянные значения АЧХ для полос, ограниченных парами частот из вектора Г, при этом первая полоса начинается от нулевой частоты, а последняя заканчивается на частоте Найквиста: (3 в полосе частот от нуля до Г(1) АЧХ равна а(1); (3 в полосе частот от Г(1) до Г(2) АЧХ не определена; (3 в полосе частот от т(2) до т(3) АЧХ равна а(2); 0 в полосе частот от т(3) до Г(4) АЧХ не определена; 0 так продолжается до конца векторов Г и а; (3 в полосе частот от т(епа.1) до т(епа) АЧХ не определена; (3 в полосе частот от т(епа) до тз/2 АЧХ равна а(епа).
362 Глава Б. Проектирование дискретных фильтров Таким образом, длина вектора ~ должна быть равна )епдсп1а)вк-2. Параметр беч должен быть вектором той же длины, что и в, содержащим вешественные положительные числа. Он задает максимально допустимую ошибку воспроизведения кусочно-постоянной АЧХ лля отлельных частотных полос. Ошибка задается как абсолютная погрешность АЧХ.
Параметр Гз залает частоту дискретизации и является необязательным. При его использовании следует указывать в векторе Г не нормированные, а исходные значения частот в тех же едишщах, что и Гз. По умолчанию частота дискретизации считается равной двум, так что частота Найквиста равна единице. Результатами работы функции являются порядок фильтра и и векторы Го, ао и и, которые предназначены для использования при вызове функции гевеьч Ь = севела(п, 1о.
ао. и) Результаты работы функции могут быть неточными, если у заданной АЧХ имеются частоты среза, близкие к нулю или частоте Найквиста. Кроме того, в любом случае оценка порядка фильтра, произволимая функцией гевехогб, является приближенной, поэтому если синтезированный фильтр не удовлетворяет заданным требованиям, необходимо более точно подобрать порядок фильтра вручную. ЗАМЕЧАНИЕ Механизм автоматического подбора минимально необходимого порядка фильтра встроен в фупкпшо дгеп1ев пакета Рйисг Рев)дп (сьь двлсс).
Функции пакета ГШег Оеа19п Пакет Р11сег Реяйп содержит пять функций, предназначенных для синтеза дискретных фильтров. Это функция дгеяех, представляющая собой еще один расширенный вариант метода Ремеза, и четыре функции, минимизирующие р-норму ошибки при произвольном р. Функция Ягепзее Функция дгееег, входящая в пакет Р1!сег Вев)цп, обладает расширенными возможностями по сравнению с функпиями гевех и сгевех Основными из этих расширений являются следуюшие: О возможность автоматического подбора порядка фильтра; О возможность задания ограничений величины пульсаций для отдельных частотных полос; О возможность описания особых глочек АЧХ; О большее количество информации, возвращаемой в структуре орС; О возможность группировки частотных полос для расчета нескольких отдельных ошибок аппроксимации.
ЗВЗ Синтез дискретных фильтров в МАТ(ди Новые поля структуры орт В простейшем варианте синтаксис вызова функции дгевех такой же, как у функ- ции гевегс [Ь, еггог. ор1] = дгевет(п, т, а. и) [Ь, еггог, орт] = дгевет(п, т, а. 'Ьт1Ьегт') [Ь, еггог, орт] = дгевет(п, 1.
а, 'Ф [[егер(га(ог') При таком способе вызова работа функции ничем не отличается от того. что делает функция гевез, разве что в информационной структуре орс присутствует ряд дополнительных полей; С1 орт.огбег — порядок синтезированного фильтра; С1 орс.ег]деСЬес(г — результаты проверки аномалий в переходных зонах (см, далее). Это вектор, содержащий по одному элементу на каждую частотнукг полосу. Возможны следующие значения элементов вектора: 1 — все в порядке, 0 — обнаружена аномалия. -1 — проверка не выполнялась; С1 орт.1тегвт(опз — шсло выполненных итераций; С) орт, ена1з — число вычислений целевой функции.