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)

Figure contains an axes. The axes contains an object of type line.

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

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

свернуть все

Числовой вектор из преобразованного Цифрового фильтра Волны 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