allpass2wdf

Преобразование коэффициента Allpass в цифровой фильтр волны

Описание

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

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

Примеры

свернуть все

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

Создайте фильтр allpass второго порядка с коэффициентами a = [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)

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

Различие между двумя выходами очень маленькая.

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

свернуть все

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

Пример: 0.7

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

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

См. также

Функции

Объекты

Введенный в R2014a
Для просмотра документации необходимо авторизоваться на сайте