buttord

Порядок фильтра Баттерворта и частота среза

Синтаксис

[n,Wn] = buttord(Wp,Ws,Rp,Rs)
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')

Описание

пример

[n,Wn] = buttord(Wp,Ws,Rp,Rs) возвращает самое низкоуровневое, n, цифрового Фильтра Баттерворта без больше, чем дБ Rp пульсации полосы пропускания и по крайней мере дБ Rs затухания в полосе задерживания. Wp и Ws являются соответственно полосой пропускания и частотами ребра полосы задерживания фильтра, нормированного от 0 до 1, где 1 соответствует раду/выборке π. Скаляр (или вектор) соответствующих частот среза, Wn, также возвращен. Чтобы разработать Фильтр Баттерворта, используйте выходные аргументы n и Wn как входные параметры к butter.

[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') находит минимальный заказ n и частотами среза Wn для аналогового Фильтра Баттерворта. Задайте частоты Wp и Ws в радианах в секунду. Полоса пропускания или полоса задерживания могут быть бесконечными.

Примеры

свернуть все

Для данных, выбранных на уровне 1 000 Гц, разработайте фильтр lowpass больше чем без 3 дБ пульсации в полосе пропускания от 0 до 40 Гц и по крайней мере 60 дБ затухания в полосе задерживания. Найдите порядок фильтра и частоту среза.

Wp = 40/500;
Ws = 150/500;

[n,Wn] = buttord(Wp,Ws,3,60)
n = 5
Wn = 0.0810

Задайте фильтр с точки зрения разделов второго порядка и постройте частотную характеристику.

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,512,1000)
title(sprintf('n = %d Butterworth Lowpass Filter',n))

Разработайте полосовой фильтр с полосой пропускания от 100 до 200 Гц с самое большее 3 дБ пульсации полосы пропускания и затухания на по крайней мере 40 дБ в полосах задерживания. Задайте частоту дискретизации 1 кГц. Установите ширину полосы задерживания на 50 Гц с обеих сторон полосы пропускания. Найдите порядок фильтра и частоты среза.

Wp = [100 200]/500;
Ws = [50 250]/500;
Rp = 3;
Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
n = 8
Wn = 1×2

    0.1951    0.4080

Задайте фильтр с точки зрения разделов второго порядка и постройте частотную характеристику.

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,128,1000)
title(sprintf('n = %d Butterworth Bandpass Filter',n))

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

свернуть все

Угол полосы пропускания (сокращение) частота, заданная как скаляр или двухэлементный вектор со значениями между 0 и 1, с 1 соответствием нормированной частоте Найквиста, раду/выборке π.

  • Если Wp и Ws являются оба скалярами и Wp <Ws, то buttord возвращает порядок и частоту среза фильтра lowpass. Полоса задерживания фильтра колеблется от Ws до 1 и диапазоны полосы пропускания от 0 до Wp.

  • Если Wp и Ws являются оба скалярами и Wp> Ws, то buttord возвращает порядок и частоту среза фильтра highpass. Полоса задерживания фильтра колеблется от 0 до Ws и диапазонов полосы пропускания от Wp до 1.

  • Если Wp и Ws являются оба векторами, и интервал, заданный Ws, содержит тот, заданный Wp (Ws(1) <Wp(1) <Wp(2) <Ws(2)), то buttord возвращает порядок и частоты среза полосового фильтра. Полоса задерживания фильтра колеблется от 0 до Ws(1) и от Ws(2) до 1. Полоса пропускания колеблется от Wp(1) до Wp(2).

  • Если Wp и Ws являются оба векторами, и интервал, заданный Wp, содержит тот, заданный Ws (Wp(1) <Ws(1) <Ws(2) <Wp(2)), то buttord возвращает порядок и частоты среза заграждающего фильтра. Полоса задерживания фильтра колеблется от Ws(1) до Ws(2). Полоса пропускания колеблется от 0 до Wp(1) и от Wp(2) до 1.

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

Примечание

Если ваши спецификации фильтра призывают к полосовому или заграждающему фильтру с неравной пульсацией в каждой из полос пропускания или полос задерживания, разрабатывают отдельный lowpass и фильтры highpass и располагают каскадом два фильтра вместе.

Угловая частота полосы задерживания, заданная как скаляр или двухэлементный вектор со значениями между 0 и 1, с 1 соответствием нормированной частоте Найквиста, раду/выборке π.

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

Пульсация полосы пропускания, заданная как скаляр, выражается в дБ.

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

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

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

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

свернуть все

Самый низкий порядок фильтра, возвращенный как целочисленный скаляр.

Частоты среза, возвращенные как скаляр или вектор.

Алгоритмы

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

buttord первоначально разрабатывает прототип фильтра lowpass путем преобразования частот полосы пропускания желаемого фильтра к 1 раду/секунда (для lowpass и фильтров highpass) и к –1 и 1 раду/секунда (для полосовых и заграждающих фильтров). Это затем вычисляет минимальный заказ, требуемый для фильтра lowpass соответствовать спецификации полосы задерживания.

Ссылки

[1] Rabiner, Лоуренс Р. и золото Бернарда. Теория и приложение цифровой обработки сигналов. Englewood Cliffs, NJ: Prentice Hall, 1975.

Расширенные возможности

Смотрите также

| | | |

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