designMultirateFIR

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

Синтаксис

B = designMultirateFIR(L,M)
B = designMultirateFIR(L,M,P)
B = designMultirateFIR(L,M,P,Astop)

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Чтобы разработать КИХ-Интерполятор с помощью функции 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). Можно использовать полумногофазную длину по умолчанию 12 и затухание полосы задерживания по умолчанию 80 дБ. Поочередно, можно также задать полумногофазную длину и значения затухания полосы задерживания.

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

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

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

свернуть все

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

Пример 2

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

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

Пример 2

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

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

Пример: 12

Пример: 20

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

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

Пример: 0.0

Пример: 80.5

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

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

свернуть все

Многоскоростные КИХ-коэффициенты фильтра, возвращенные как 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 - вектор окна Kaiser длины к окну усеченный импульсный ответ КИХ-фильтра.

Отфильтруйте длину, 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 полоса, импульсный ответ фильтров Найквиста является точно нулевым. Из-за этого свойства, когда фильтры Найквиста используются для чистой интерполяции, входные выборки остаются неизменными после интерполяции.

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

Окно Kaiser задано:

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

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

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

β={0.1102(Astop8.7)если Astop500.5842(Astop  21)0.4+0.07886(Astop  21)если 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

Для просмотра документации необходимо авторизоваться на сайте