exponenta event banner

besself

Конструкция аналогового фильтра Бесселя

Описание

пример

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

пример

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

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

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

Примеры

свернуть все

Разработать аналоговый фильтр Бесселя пятого порядка с приблизительно постоянной групповой задержкой до 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 конструирует фильтр нижних или верхних частот с частотой отсечки Wo.

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

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

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

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

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

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

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

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

свернуть все

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

H (s) = B (s) A (s) = b (1) sn + b (2) sn−1+⋯+b (n + 1) a (1) sn + a (2) sn−1+⋯+a (n + 1).

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

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

H (s) = k (s z (1)) (s z (2)) (s z (n)) (s p (1)) (s − p (2)) ⋯ (s − p (n)).

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

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

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

x˙=A x + B uy = C x + D u.

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

Алгоритмы

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

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

Для фильтров высокого порядка наиболее численно точной является форма «state-space», за которой следует форма «zero-pole-gain». Форма коэффициента передаточной функции является наименее точной; численные проблемы могут возникнуть для порядка фильтров до 15.

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

  1. Поиск низкочастотных аналоговых прототипов полюсов, нулей и коэффициента усиления с помощью besselap функция.

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

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

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

Ссылки

[1] Парки, Томас В. и К. Сидни Беррус. Проектирование цифрового фильтра. Нью-Йорк: John Wiley & Sons, 1987.

См. также

| | | |

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