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 содержит преобразованные действительные коэффициенты секции каскадного альпасового фильтра. Область выхода 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-фильтру с помощью структуры 'Minimum multiplier'. Передайте случайный вход в оба этих фильтра и сравните выходы.

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

Каскад коэффициента фильтра альпаса, определяемый как столбец камер, каждый из которых содержит вектор длины 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] M. Lutovac, D. Tosic, B. Evans, Создание Фильтра for Signal Processing using MATLAB and Mathematica. Prentice Hall, 2001.

Введенный в R2014a