wdf2allpass

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

Описание

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

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

Примеры

свернуть все

Примечание: Если вы используете R2016a или ранее, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

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

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

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

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

свернуть все

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

Пример: [0.3,-0.2]

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

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

Пример: {[0.3,-0.2];0.5}

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

свернуть все

Числовой вектор полинома allpass коэффициенты, определенные как числовой вектор-строка.

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

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

Пример: {0.3 5.0 0.2}

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

Алгоритмы

wdf2allpass обеспечивает обратную операцию allpass2wdf, путем преобразования преобразованного каскада allpass коэффициентов W в их обычное полиномиальное представление A. Обратитесь к странице с описанием для allpass2wdf для получения дополнительной информации об этих двух представлениях.

W задает мультираздел allpass фильтр и wdf2allpass применяется отдельно к каждому разделу, с тем же преобразованием, используемым в случае одно раздела. В этом случае, числовой содействующий вектор w может иметь порядок 1, 2, или 4.

Отношения между вектором коэффициентов раздела a и w соответственно зависят от порядка, можно следующим образом:

for order 1:a1=w1for order 2:a1=w2(1+w1)a2=w1for order 4:a2=w3(1+w1)a4=w1a1=a3=0

Ссылки

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

Введенный в R2014a