allpass2wdf

Allpass к содействующему преобразованию Цифрового фильтра Волны

Описание

w = allpass2wdf(a) принимает вектор действительных allpass полиномиальных коэффициентов фильтра a, и возвращает преобразованный коэффициент wW может использоваться с allpass объектами фильтра, такими как dsp.AllpassFilter, и dsp.CoupledAllpassFilter, с набором Структуры к 'Wave Digital Filter'.

W = allpass2wdf(A) принимает массив ячеек allpass полиномиальных векторов коэффициентов A. Каждая ячейка A содержит коэффициенты раздела каскада allpass фильтр. W также массив ячеек и каждая ячейка W содержит преобразованную версию коэффициентов в соответствующей ячейке A. W может использоваться с allpass объектами фильтра, такими как dsp.AllpassFilter и dsp.CoupledAllpassFilter, с набором структуры к 'Wave Digital Filter'.

Примеры

свернуть все

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step синтаксис. Например, myObject (x) становится шагом (myObject, x).

Создайте второй порядок allpass фильтр с коэффициентами = [0 0.5]. Преобразуйте эти коэффициенты в форму цифрового фильтра волны с помощью allpass2wdf. Присвойте преобразованные коэффициенты фильтру allpass с помощью структуры цифрового фильтра волны. Передайте случайный вход и этим фильтрам и сравните выходные параметры.

a = [0 0.5]; 
allpass = dsp.AllpassFilter('AllpassCoefficients', a);
w = allpass2wdf(a);
allpasswdf = dsp.AllpassFilter('Structure', 'Wave Digital Filter',...
    'WDFCoefficients', w);
in = randn(512, 1);
outputAllpass = allpass(in);
outputAllpasswdf = allpasswdf(in);
plot(outputAllpass-outputAllpasswdf)

Различие между этими двумя выходными параметрами очень мало.

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

свернуть все

Числовой вектор allpass фильтрует коэффициенты, заданные как вещественные числа. a может иметь длину, только равняются 1,2, и 4. Когда длина равняется 4, первые и третьи компоненты должны оба быть нулем. a может быть строка или вектор-столбец.

Пример: 0.7

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

Каскад allpass фильтрует коэффициенты, заданные как вектор ячейки. Каждая ячейка A должен содержать вектор действительных чисел длины 1,2, или 4. Когда длина равняется 4, первые и третьи компоненты должны оба быть нулем. A может быть строка или вектор-столбец ячеек.

Пример: {0.7, [0.1, 0.2]}

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

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

свернуть все

Числовой вектор преобразованных коэффициентов, определенных как вещественное число, чтобы использовать с одно разделом allpass объекты фильтра, имеющие Structure установите на 'Wave Digital Filter'W всегда возвращается как числовой вектор-строка.

Пример: 0.7

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

Каскад преобразованного allpass фильтрует коэффициенты, определенные как массив ячеек, чтобы использовать с мультиразделом allpass объекты фильтра, имеющие Structure установите на 'Wave Digital Filter'W всегда возвращается как столбец ячеек.

Пример: {0.7;[0.2,-0.0833]}

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

Алгоритмы

В более общем случае, входные коэффициенты A задайте каскад или мультиразделите фильтр allpass. allpass2wdf применяется отдельно к каждому разделу того же преобразования, используемого в случае одно раздела. В случае одно раздела числовые коэффициенты векторизовали содержание стандартного полиномиального представления allpass фильтра порядка 1, 2, или 4. Например, в случае первого порядка,

a=[a1]

представляет передаточную функцию первого порядка:

H1(z)=z1+a11+a1z1

и в случае второго порядка,

a=[a1,a2]

представляет передаточную функцию второго порядка:

H2(z)=z2+a1z1+a21+a1z1+a2z2

.

allpass H1 передаточных функций и H2 могут также иметь следующие альтернативные представления, с помощью разъединенных коэффициентов в векторе w1 или w2 соответственно.

H~1(z)=z1+w11+w1z1

H~2(z)=z2+w2(1+w1)z1+w11+w2(1+w1)z1+w1z2

Для allpass коэффициентов w часто используется, чтобы вывести множители адаптера для структур Цифрового фильтра Волны, и он требуется многими базирующимися allpass, просачивается DSP System Toolbox™ когда Structure установлен в 'Wave Digital Filter' (например, dsp.AllpassFilter, и dsp.CoupledAllpassFilter).

Для данного вектора коэффициентов раздела a, allpass2wdf вычисляет соответствующий вектор w таким образом что

when i = 1, 2 or 4H~i(z)=Hi(z)

Это приводит к использованию следующих формул:

for order 1:w1=a1for order 2:w1=a2w2=a11+a2for order 4:w1=a4w3=a21+a4w2=w4=0

Ссылки

[1] М. Лутовэк, Д. Тошич, Б. Эванс, Создание фильтра для использования Обработки сигналов MATLAB и Mathematica. Prentice Hall, 2001.

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

Функции

Объекты

Введенный в R2014a