Документация Engee

cheby2

Расчет фильтра Чебышева II типа.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • b, a = cheby2(n, Rs, Ws) — проектирует цифровой фильтр нижних частот Чебышева II типа n-го порядка с нормированной граничной частотой полосы задерживания Ws и затуханием в полосе задерживания Rs дБ от пикового значения полосы пропускания. Функция cheby2 возвращает коэффициенты числителя и знаменателя передаточной функции фильтра.

  • b, a = cheby2(n, Rs, Ws, ftype) — проектирует цифровой фильтр Чебышева II типа: нижних частот, фильтр верхних частот, полосовой или режекторный, в зависимости от значения аргумента ftype и количества элементов Ws. Получающиеся конструкции полосового и режекторного фильтров имеют порядок 2n.

  • z, p, k = cheby2(___; nout=3) — проектирует цифровой фильтр Чебышева II типа и возвращает его нули, полюса и коэффициент усиления. Данный синтаксис может включать любые входные аргументы из предыдущих вариантов.

  • A, B, C, D = cheby2(___; nout=4) — проектирует цифровой фильтр Чебышева II типа и и возвращает матрицы, которые определяют его представление в пространстве состояний.

  • ___ = cheby2(___, "s"; nout) — проектирует аналоговый фильтр Чебышева II типа, используя любой из входных или выходных аргументов в предыдущих синтаксисах. Аргумент nout показывает, сколько выходных аргументов вернет функция. Если аргумент nout не указан, то функция произведет расчет только для двух выходных аргументов.

Аргументы

Входные аргументы

# n — порядок фильтра
скаляр

Details

Порядок фильтра, заданный как целочисленный скаляр, меньший или равный 500. Для полосовых и режекторных фильтров n представляет собой половину порядка фильтра.

Типы данных

Float64

# Rs — затухание в полосе задерживания в дБ
положительный скаляр

Details

Затухание в полосе задерживания относительно пикового значения в полосе пропускания, заданное как положительный скаляр в дБ.

Если значение выражено в линейных единицах, вы можете перевести его в дБ, используя формулу Rs .

Типы данных

Float64

# Ws — граничная частота полосы задерживания
скаляр | двухэлементный вектор

Details

Граничная частота полосы задерживания, заданная как скаляр или двухэлементный вектор. Граничная частота полосы задерживания — это частота, на которой амплитудно-частотная характеристика (АЧХ) фильтра равна Rs в дБ. Большие значения ослабления полосы задерживания Rs приводят к расширению полосы пропускания.

  • Если Ws — скаляр, то cheby2 проектирует фильтр нижних или верхних частот с граничной частотой Ws.

    Если Ws — двухэлементный вектор [w1 w2], где w1 < w2, то cheby2 проектирует полосовой или режекторный фильтр с нижней граничной частотой w1 и верхней граничной частотой w2.

  • Для цифровых фильтров граничные частоты полосы задерживания должны лежать в диапазоне от 0 до 1, где 1 соответствует частоте Найквиста — половине частоты дискретизации или рад/отсчет.

    Для аналоговых фильтров граничные частоты полосы задерживания должны быть выражены в рад/с и могут принимать любое положительное значение.

Типы данных

Float64

# ftype — тип фильтра
"low" | "bandpass" | "high" | "stop"

Details

Тип фильтра, заданный как:

  • "low" — фильтр нижних частот с граничной частотой полосы задерживания Ws. Это значение используется по умолчанию для скалярного Ws;

  • "high" — фильтр верхних частот с граничной частотой полосы задерживания Ws;

  • "bandpass" — полосовой фильтр 2n порядка, если Ws — двухэлементный вектор. Это значение используется по умолчанию, когда Ws задан как двухэлементный вектор;

  • "stop" — режекторный (заграждающий) фильтр 2n порядка, если Ws — двухэлементный вектор.

Типы данных

String

Входные аргументы «имя-значение»

# nout — количество выходных аргументов
2 (по умолчанию) | 3 | 4

Details

Количество выходных аргументов, заданное как 2, 3 или 4. Если аргумент nout не задан, функция по умолчанию вернет два выходных аргумента.

Выходные аргументы

# b, a — коэффициенты передаточной функции
векторы-строки

Details

Коэффициенты передаточной функции фильтра, возвращаемые в виде векторов-строк. При заданном порядке фильтра n функция возвращает b и a с r отсчетами, где r = n + 1 для фильтров нижних и верхних частот и r = 2 * n + 1 для полосовых и режекторных фильтров.

Передаточная функция выражается через и :

  • для цифровых фильтров

  • для аналоговых фильтров

Типы данных

Float64

# z, p, k — нули, полюса и усиление
векторы-столбцы и скаляр

Details

Нули, полюса и коэффициент усиления фильтра, возвращаемые в виде двух векторов-столбцов и скаляра. При заданном порядке фильтра n функция возвращает z и p с r отсчетами, где r = n для фильтров нижних и верхних частот и r = 2 * n для полосовых и режекторных фильтров.

Передаточная функция выражается через , и :

  • для цифровых фильтров

  • для аналоговых фильтров

Типы данных

Float64

# A, B, C, D — представление фильтра в пространстве состояний
матрицы

Details

Представление фильтра в пространстве состояний, возвращаемое в виде матриц. Если r = n для фильтров нижних и верхних частот и r = 2n для полосовых и режекторных фильтров, то A это матрица r на r, B матрица r на 1, C матрица 1 на r, а D1 на 1.

Матрицы пространства состояний связывают вектор состояния , вход и выход посредством систем уравнений:

  • для цифровых фильтров

  • для аналоговых фильтров

Типы данных

Float64

Примеры

Фильтр нижних частот Чебышева II типа

Details

Спроектируем фильтр нижних частот Чебышева II типа 6-го порядка с затуханием в полосе заграждения 50 дБ и частотой среза в полосе пропускания 300 Гц, что соответствует 0.6π рад/отсчет для данных, дискретизированных с частотой 1000 Гц. Построим графики амплитудно-частотной и фазовой характеристик. Используем его для фильтрации случайного сигнала с частотой 1000 отсчетов.

import EngeeDSP.Functions: cheby2, freqz, randn, filter

fc = 300
fs = 1000

b, a = cheby2(6,50,fc/(fs/2))

freqz(b,a,out=:plot)

cheby2 1

dataIn = randn(1000,1)
dataOut = filter(b,a,dataIn)

Заграждающий фильтр Чебышева II типа

Details

Спроектируем заграждающий фильтр Чебышева II типа 6-го порядка с нормированными граничными частотами 0.2π и 0.6π рад/отсчет и затуханием в полосе заграждения 50 дБ. Построим графики амплитудно-частотной и фазовой характеристик. Используем его для фильтрации случайного сигнала.

import EngeeDSP.Functions: cheby2, freqz, randn, filter

b,a = cheby2(6,50,[0.2 0.6],"stop")

freqz(b,a,out=:plot)

cheby2 2

dataIn = randn(1000,1)
dataOut = filter(b,a,dataIn)

Фильтр верхних частот Чебышева II типа

Details

Спроектируем фильтр верхних частот Чебышева II типа 9-го порядка с частотой среза полосы пропускания 300 Гц, что для данных, дискретизированных с частотой 1000 Гц, соответствует 0.6π рад/отсчет. Зададим затухание в полосе заграждения 20 дБ. Преобразуем нули, полюса и коэффициент усиления в форму секций второго порядка. Построим графики амплитудно-частотной и фазовой характеристик.

import EngeeDSP.Functions: cheby2, zp2sos

z,p,k = cheby2(9,20,300/500,"high"; nout=3)
sos = zp2sos(z,p,k)

freqz(sos,out=:plot)

cheby2 3

Полосовой фильтр Чебышева II типа

Details

Спроектируем полосовой фильтр Чебышева II типа 10-го порядка с нижней полосой пропускания 500 Гц и верхней полосой пропускания 560 Гц. Зададим затухание в полосе заграждения 40 дБ и частоту дискретизации 1500 Гц. Используем представление в пространстве состояний. Преобразуем представление в пространстве состояний в форму секций второго порядка. Построим графики амплитудно-частотной и фазовой характеристик.

import EngeeDSP.Functions: cheby2, ss2sos
fs = 1500

A,B,C,D = cheby2(10,40,[500 560]/(fs/2); nout=4)
sos = ss2sos(A,B,C,D)[1]

freqz(sos,out=:plot)

cheby2 4

Алгоритмы

Фильтры Чебышева II типа монотонны в полосе пропускания и имеют равномерную пульсацию в полосе задерживания. Фильтры II типа имеют не такой быстрый спад характеристики, как фильтры I типа, но не имеют пульсаций в полосе пропускания.

Фильтр Чебышева II типа cheby2 использует пятиэтапный алгоритм:

  • Находит полюса, нули и коэффициент усиления аналогового прототипа нижних частот.

  • Преобразует полюса, нули и коэффициент усиления в пространство состояний.

  • При необходимости использует преобразование в пространстве состояний для преобразования фильтра нижних частот в фильтр верхних частот, полосовой или режекторный фильтр с требуемыми ограничениями по частоте.

  • Для проектирования цифровых фильтров преобразует аналоговый фильтр в цифровой посредством билинейного преобразования с предварительным искажением частоты. Точная настройка частоты позволяет аналоговым и цифровым фильтрам иметь одинаковую амплитуду АЧХ на частотах Ws или w1 и w2.

  • При необходимости преобразует фильтр пространства состояний обратно в передаточную функцию или форму нули-полюса-усиление.

Литература

  1. Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.