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)

Вычислите стоимость реализования фильтра.

cost(firInterp)
ans = struct with fields:
                  NumCoefficients: 582
                        NumStates: 145
    MultiplicationsPerInputSample: 582
          AdditionsPerInputSample: 578

Измерьте характеристики частотной характеристики объекта фильтра.

measure(firInterp)
ans = 
Sample Rate      : N/A (normalized frequency)
Passband Edge    : 0.195                     
3-dB Point       : 0.19884                   
6-dB Point       : 0.2                       
Stopband Edge    : 0.205                     
Passband Ripple  : 0.016474 dB               
Stopband Atten.  : 60.1827 dB                
Transition Width : 0.01                      
 

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

свернуть все

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

Пример 2

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Пример 2

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Пример: 12

Пример: 20

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Пример: 0.0

Пример: 80.5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

  • 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.

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

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

Алгоритмы

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