fir1
Страница в процессе разработки. |
Расчет коэффициентов КИХ-фильтра c использованием различных окон.
Библиотека |
|
Синтаксис
Вызов функции
Используйте функцию fir2 для оконных фильтров с произвольной частотной характеристикой.
|
Аргументы
Входные аргументы
#
n —
порядок фильтра
скаляр
Details
Порядок фильтра, заданный как положительное целое число.
Для фильтров верхних частот и режекторных фильтров функция fir1
всегда использует четный порядок фильтра. Порядок должен быть четным, поскольку симметричные КИХ-фильтры нечетного порядка должны иметь нулевое усиление на частоте Найквиста. Если для фильтра верхних частот или заграждающего фильтра указано нечетное n
, то функция fir1
увеличивает n
на 1
.
Типы данных |
|
#
Wn —
частота среза
скаляр
| двухэлементный вектор
| многоэлементный вектор
Details
Частота среза, заданная как скаляр, двухэлементный вектор или многоэлементный вектор.
Все элементы Wn
должны находиться в диапазоне от 0
до 1
, где 1
соответствует частоте Найквиста. Частота Найквиста равна половине частоты дискретизации, или рад/отсчет.
-
Если
Wn
— скаляр, то функцияfir1
проектирует фильтр нижних или верхних частот с частотой срезаWn
. Частота среза — это частота, на которой передаточное соотношение составляет-6
дБ. -
Если
Wn
— двухэлементный вектор[W1 W2]
, гдеW1
<W2
, тоfir1
проектирует полосовой или режекторный фильтр с нижней частотой срезаW1
и верхней частотой срезаW2
. -
Если
Wn
— многоэлементный вектор[W1 W2 … Wn]
, гдеW1
<W2
< … <Wn
, тоfir1
проектирует многополосный фильтрn
-го порядка с полосами0
< <W1
,W1
< <W2
,…,Wn
< <1
.
Типы данных |
|
#
window —
окно
вектор
Details
Вектор для оконной обработки импульсной характеристики. Вектор окна должен содержать n
+ 1
элемент. По умолчанию функция fir1
использует окно Хэмминга. Список доступных окон:
-
"bartlett"
— окно Бартлетта; -
"blackman"
— окно Блэкмана;
-
"chebyshev"
— окно Чебышева;
-
"hamming"
— окно Хэмминга; -
"hann"
— окно Ханна; -
"kaiser"
— окно Кайзера;
-
"triangular"
— треугольное окно;
Для окон Кайзера и Чебышева можно указать опциональные параметры.
Примеры:
Использование окна Кайзера с параметром beta = 4.0
:
b = fir1(N, Wn, window("kaiser", N+1, 4.0))
Использование окна Чебышева с 65.0
дБ относительного ослабления боковых лепестков:
b = fir1(N, Wn, window("chebyshev", N+1, 65.0), "high")
Типы данных |
|
#
ftype —
тип фильтра
"low"
| "high"
| "bandpass"
| "stop"
| "DC-0"
| "DC-1"
Details
Тип фильтра:
-
"low"
определяет фильтр нижних частот с частотой срезаWn
,"low"
— значение по умолчанию для скалярной функцииWn
. -
"high"
определяет фильтр верхних частот с частотой срезаWn
. -
"bandpass"
определяет полосовой фильтр, еслиWn
— двухэлементный вектор,"bandpass"
— значение по умолчанию, еслиWn
состоит из двух элементов. -
"stop"
определяет режекторный фильтр, еслиWn
— двухэлементный вектор. -
"DC-0"
определяет, что первая полоса многополосного фильтра является полосой задерживания,"DC-0"
— значение по умолчанию, еслиWn
состоит более чем из двух элементов. -
"DC-1"
определяет, что первая полоса многополосного фильтра является полосой пропускания.
#
scaleopt —
масштабирование фильтра
"scale"
(по умолчанию) | "noscale"
Details
Масштабирование фильтра:
-
"scale"
масштабирует коэффициенты таким образом, чтобы амплитудно-частотная характеристика фильтра в центре полосы пропускания была равна1
(0
дБ). -
"noscale"
не масштабирует коэффициенты.
Алгоритмы
Функция fir1
использует приближение наименьших квадратов для вычисления коэффициентов фильтра, а затем сглаживает импульсную характеристику с помощью window.