designMultirateFIR

Многоскоростное КИХ-создание фильтра

Описание

пример

B = designMultirateFIR(L,M) проектирует многоскоростной КИХ-фильтр с коэффициентом интерполяции L и фактор децимации M. Выход B вектор спроектированных КИХ-коэффициентов. Чтобы спроектировать чистый интерполятор, установите M на 1. Чтобы спроектировать чистый decimator, установите L на 1.

пример

B = designMultirateFIR(L,M,P) проектирует многоскоростной КИХ-фильтр с полумногофазной длиной P. По умолчанию полумногофазной длиной является 12.

B = designMultirateFIR(L,M,TW) проектирует многоскоростной КИХ-фильтр с коэффициентом интерполяции L, фактор децимации M, и нормированная ширина перехода TW.

пример

B = designMultirateFIR(L,M,P,Astop) проектирует многоскоростной КИХ-фильтр с затуханием в полосе задерживания Astop. По умолчанию затухание в полосе задерживания составляет 80 дБ.

B = designMultirateFIR(L,M,TW,Astop) проектирует многоскоростной КИХ-фильтр с коэффициентом интерполяции L, фактор децимации M, нормированная ширина перехода TW, и затухание в полосе задерживания Astop, заданный в дБ.

B = designMultirateFIR(___,'SystemObject',flag) возвращает вектор коэффициентов фильтра B если флаг установлен в false, или Система многоскоростного фильтра object™, если flag установлен в true.

Примеры

свернуть все

Спроектировать КИХ-Интерполятор с помощью designMultirateFIR функция, необходимо задать коэффициент интерполяции интереса (обычно больше, чем 1) и фактор децимации, равный 1. Можно использовать полумногофазную длину по умолчанию 12 и затухание в полосе задерживания по умолчанию 80 дБ. Поочередно, можно также задать полумногофазную длину и значения затухания в полосе задерживания.

Спроектируйте КИХ-интерполятор с набором коэффициента интерполяции к 5. Используйте полумногофазную длину по умолчанию 12 и затухание в полосе задерживания по умолчанию 80 дБ.

b = designMultirateFIR(5,1);
fvtool(b,'impulse')

Спроектировать КИХ Decimator использование designMultirateFIR функция, необходимо задать фактор децимации интереса (обычно больше, чем 1) и коэффициент интерполяции, равный 1. Можно использовать полумногофазную длину по умолчанию 12 и затухание в полосе задерживания по умолчанию 80 дБ. Поочередно, можно также задать полумногофазную длину и значения затухания в полосе задерживания. Спроектируйте КИХ decimator с набором фактора децимации к 3 и полумногофазным набором длины к 14. Используйте затухание в полосе задерживания по умолчанию 80 дБ.

b = designMultirateFIR(1,3,14);
fvtool(b,'impulse');

Спроектировать КИХ-Конвертер Уровня с помощью designMultirateFIR функция, необходимо задать факторы интерполяции и децимации интереса (обычно больше, чем 1). Кроме того, можно задать или полумногофазную длину и значения затухания в полосе задерживания, или нормированную ширину перехода и значения затухания в полосе задерживания.

Спроектируйте КИХ-конвертер уровня с набором коэффициента интерполяции к 3, набором фактора децимации к 4, полумногофазным набором длины к 14 и набором затухания в полосе задерживания к 90 дБ.

b = designMultirateFIR(3,4,14,90);
fvtool(b,'impulse');

Спроектируйте КИХ-конвертер уровня с набором коэффициента интерполяции к 3, набором фактора децимации к 4, нормированным набором ширины перехода к 0,2 и набором затухания в полосе задерживания к 90 дБ.

bTW = designMultirateFIR(3,4,0.2,90);
fvtool(bTW,'impulse');

Установите 'SystemObject' отметьте к true в designMultirateFIR функционируйте, чтобы спроектировать объект многоскоростного фильтра. Расчетные параметры, заданные в функции, определяют тип Системного объекта функциональные проекты.

В этом примере функция проектирует многофазную КИХ-Систему интерполятора object™. Для получения дополнительной информации смотрите dsp.FIRInterpolator.

Создайте dsp.FIRInterpolator объект с коэффициентом интерполяции равняется 5, ширина перехода, равная 0,01, и затухание в полосе задерживания, равное 60 дБ. Установите 'SystemObject' отметьте к true спроектировать объект многоскоростного фильтра.

firInterp = designMultirateFIR(5,1,0.01,60,'SystemObject',true);
fvtool(firInterp)

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

свернуть все

Коэффициент интерполяции в виде положительного скалярного целого числа. Чтобы спроектировать decimator только, установите L на 1.

Пример 2

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

Фактор децимации в виде положительного скалярного целого числа. Чтобы спроектировать интерполятор только, установите M на 1.

Пример 2

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

Полумногофазная длина в виде положительного скалярного целого числа.

Пример: 12

Пример: 20

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

Нормированная ширина перехода многоскоростного КИХ фильтрует в виде действительного скаляра в области значений (0 1).

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

Пример: 0.0

Пример: 80.5

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

Набор флага системного объекта к:

  • false – Функция возвращает вектор коэффициентов фильтра.

  • true – Функция возвращает один из следующих Системных объектов многоскоростного фильтра:

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

свернуть все

Многоскоростные КИХ-коэффициенты фильтра, возвращенные как N с действительным знаком - вектор длины.

Если и L и M равны 1, то N равняется 1.

Если max(L,M) > 1, затем N = 2*P*R, где P является полумногофазной длиной и R, задан следующими уравнениями:

  • Если L> 1, R = L.

  • Если L = 1, R = M.

Для получения дополнительной информации смотрите раздел Algorithms.

Алгоритмы

designMultirateFIR проектирует (N – 1) th порядок, R th полоса КИХ-фильтр Найквиста с помощью N - вектор окна Кайзера длины к окну усеченная импульсная характеристика КИХ-фильтра.

Отфильтруйте длину, N задан как N = 2*P*R, и R задан, как объяснено в B.

Усеченная импульсная характеристика d (n) задерживается выборками N/2, чтобы сделать его причинным. Усеченной и задержанной импульсной характеристикой дают:

d(nN/2)=sin(wc(nN/2))π(nN/2),n=0,,N2,,N

где wc=π/R.

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

Окно Кайзера используется из-за его почти оптимальной производительности при обеспечении устойчивого способа спроектировать фильтр Найквиста. Окно зависит от двух параметров: длина N + 1 и параметр формы β.

Окно Кайзера задано:

w(n)=I0(β1(nN/2N/2)2)I0(β),0nN,

то, где I0 является нулевым порядком, изменило Функцию Бесселя первого вида.

Параметр формы β вычисляется от:

β={0.1102(Astop8.7)если Astop500.5842(Astop21)0.4+0.07886(Astop21)если 21<Astop<500если Astop21,

где Astop является затуханием в полосе задерживания в дБ.

Оконной импульсной характеристикой дают

h(n)=w(n)d(nN/2)=w(n)sin(wc(nN/2))π(nN/2),n=0,,N2,,N

h (n) для n = 0.., N/2... N являются коэффициентами многоскоростного фильтра. Эти коэффициенты заданы коэффициентом интерполяции, L, и фактором децимации, M.

Ссылки

[1] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

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

Введенный в R2016a