exponenta event banner

wdf2allpass

Цифровой фильтр волны для преобразования коэффициента allpass

Описание

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

A = wdf2allpass(W) принимает массив ячеек преобразованных векторов коэффициентов allpass W. Каждая ячейка W содержит преобразованные вещественные коэффициенты секции каскадного фильтра allpass. Продукция A также является массивом ячеек, и каждая ячейка A содержит обычную полиномиальную версию соответствующей ячейки W. W используется объектами фильтра 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 Wave Digital Filter, заданных как вещественное число. w может иметь только длину, равную 1,2, и 4. Когда длина равна 4, второй и четвертый компоненты должны быть равны нулю. w может быть строкой или вектором столбца.

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

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

Каскад коэффициентов фильтра allpass в преобразованной форме Wave Digital Filter, заданный как вектор ячейки. Каждая ячейка 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.

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

для заказа 1: a1 =  w1для  заказа 2: a1 = w2 (1 + w1 ) a2 = w1для заказа 4: a2 = w3 (1 + w1) a4 = w1a1 = a3 = 0

Ссылки

[1] М. Лутовац, Д. Тошич, Б. Эванс, дизайн фильтра для обработки сигналов с использованием MATLAB и Mathematica. Прентис Холл, 2001.

Представлен в R2014a