besself

Создание аналогового фильтра Бесселя

Описание

пример

[b,a] = besself(n,Wo) возвращает коэффициенты передаточной функции nlowpass первого порядка аналоговый фильтр Бесселя, где Wo - угловая частота, до которой групповая задержка фильтра приблизительно постоянна. Большие значения n создать групповую задержку, которая лучше аппроксимирует константу до Wo. besself функция не поддерживает проект цифровых фильтров Бесселя.

пример

[b,a] = besself(n,Wo,ftype) проектирует lowpass, highpass, bandpass или полосно-заграждающий аналоговый фильтр Бесселя, в зависимости от значения ftype и количество элементов Wo. Получившиеся полосно-пропускающая и полосно-заграждающие проекты имеют порядок 2 n.

[z,p,k] = besself(___) проектирует lowpass, highpass, bandpass или полосно-заграждающий аналоговый фильтр Бесселя и возвращает его нули, полюсы и коэффициент усиления. Этот синтаксис может включать любой из входных параметров в предыдущих синтаксисах.

[A,B,C,D] = besself(___) проектирует lowpass, highpass, bandpass или полосно-заграждающий аналоговый фильтр Бесселя и возвращает матрицы, которые задают представление его пространства состояний.

Примеры

свернуть все

Разработайте аналоговый lowpass фильтр Бесселя пятого порядка с приблизительно постоянной групповой задержкой до 104 рад/сек. Постройте график величины и фазовых откликов фильтра с помощью freqs.

[b,a] = besself(5,10000);
freqs(b,a)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

[h,w] = freqs(b,a,1000);
grpdel = diff(unwrap(angle(h)))./diff(w);

clf
semilogx(w(2:end),grpdel)
xlabel('Frequency (rad/s)')
ylabel('Group delay (s)')

Figure contains an axes. The axes contains an object of type line.

Разработайте полосовой фильтр Бесселя 12-го порядка с полосой пропускания от 300 рад/с до 500 рад/с. Вычислите частотную характеристику фильтра.

[b,a] = besself(6,[300 500],'bandpass');

[h,w] = freqs(b,a);

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

subplot(2,1,1)
plot(w,20*log10(abs(h)))
ylabel('Magnitude')
subplot(2,1,2)
plot(w,180*unwrap(angle(h))/pi)
ylabel('Phase (degrees)')
xlabel('Frequency (rad/s)')

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Входные параметры

свернуть все

Порядок фильтра, заданный как целочисленный скаляр. Для проектов полосно-заграждающих и полосно-заграждающих, n представляет половину порядка фильтра.

Типы данных: double

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

  • Если Wo скаляром, тогда besself проектирует lowpass или highpass фильтр с частотой среза Wo.

  • Если Wo является двухэлементным вектором  [w1 w2], где w1 < w2, затем besself проектирует полосно-пропускающий или полосно-заграждающий фильтр с меньшей частотой среза w1 и более высокая частота отсечения w2.

Типы данных: double

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

  • 'low' - lowpass с частотой среза Wo. 'low' является значением по умолчанию для скаляра Wo.

  • 'high' - высокочастотный фильтр с частотой среза Wo.

  • 'bandpass' - полосно-пропускающий фильтр порядка 2 n если Wo является двухэлементным вектором. 'bandpass' является значением по умолчанию, когда Wo имеет два элемента.

  • 'stop' - полосно-заграждающий фильтр порядка 2 n если Wo является двухэлементным вектором.

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

свернуть все

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

H(s)=B(s)A(s)=b (1)sn+b (2)sn1++b (n + 1)а (1)sn+а (2)sn1++a (n + 1).

Типы данных: double

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

H(s)=k(sz (1))(sz (2))(sz (n))(sp (1))(sp (2))(sp (n)).

Типы данных: double

Представление фильтра в пространстве состояний, возвращаемое как матрицы. Если m = n для lowpass и highpass проектов и m = 2 n для полосно-пропускающих и полосно-заграждающих фильтров, затем A m × m, B m × 1, C равен 1 × m и D равен 1 × 1.

Матрицы пространства состояний связывают вектор x состояний, входную u и выходную y через

x˙=Ax+Buy=Cx+Du.

Типы данных: double

Алгоритмы

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

Lowpass фильтры Бесселя имеют монотонно уменьшающуюся амплитудную характеристику, как и lowpass фильтры Баттерворта. По сравнению с фильтрами Butterworth, Chebyshev и эллиптическими фильтрами, фильтр Бесселя имеет самое медленное срабатывание и требует наивысшего порядка для соответствия спецификации ослабления.

Для фильтров высокого порядка форма пространство состояний является наиболее численно точной, далее следует форма нули , полюса и усиления. Форма коэффициента передаточной функции является наименее точной; числовые проблемы могут возникнуть для порядков фильтра до 15.

besself использует четырехэтапный алгоритм:

  1. Найдите lowpass аналоговые полюсы прототипа, нули и усиление с помощью besselap функция.

  2. Преобразуйте полюса, нули и усиление в форму пространства состояний.

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

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

Ссылки

[1] Parks, Thomas W., and C. Sidney Burrus. Создание цифровых фильтров. Нью-Йорк: John Wiley & Sons, 1987.

См. также

| | | |

Представлено до R2006a