dsp. AllpassFilter

Один раздел или расположенный каскадом фильтр allpass

Описание

Объект dsp.AllpassFilter фильтрует каждый канал входного использования реализации фильтра Allpass. Чтобы импортировать этот объект в Simulink®, используйте блок MATLAB® System.

Примечание

Поддержка массива ячеек AllpassCoefficients, WDFCoefficients и LatticeCoefficients была удалена. Используйте N-by-1 или N-by-2 числовой массив вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Отфильтровать каждый канал входа:

  1. Создайте объект dsp.AllpassFilter и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

Allpass = dsp.AllpassFilter
Allpass = dsp.AllpassFilter(Name,Value)

Описание

Allpass = dsp.AllpassFilter возвращается allpass фильтруют Систему object™, Allpass, который фильтрует каждый канал входного сигнала независимо с помощью фильтра allpass со структурой по умолчанию и коэффициентами.

пример

Allpass = dsp.AllpassFilter(Name,Value) возвращается allpass фильтруют Системный объект, Allpass, с каждым набором свойств к заданному значению.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Можно задать внутреннюю структуру реализации фильтра allpass как один из | Minimum multiplier | Lattice | Wave Digital Filter. Каждая структура использует различный набор коэффициентов, независимо сохраненных в соответствующем свойстве объекта.

Задайте действительные allpass полиномиальные коэффициенты фильтра. Задайте это свойство или как N-by-1 или как N-by-2 матрица первого порядка N или разделов allpass второго порядка. Значение по умолчанию задает стабильный фильтр allpass второго порядка с полюсами и нулями, расположенными в ±π/3 в плоскости Z.

Настраиваемый: да

Зависимости

Это свойство применимо только, когда свойство Structure установлено в Minimum multiplier.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Задайте действительные allpass коэффициенты в Цифровой форме Фильтра Волны. Задайте это свойство или как N-by-1 или как N-by-2 матрица первого порядка N или разделов allpass второго порядка. Все элементы должны иметь абсолютные значения, меньше чем или равные 1. Это значение является преобразованной версией значения по умолчанию AllpassCoefficients, вычисленное использование allpass2wdf(AllpassCoefficients). Эти коэффициенты задают тот же стабильный фильтр allpass второго порядка как тогда, когда Structure установлен в 'Minimum multiplier'.

Настраиваемый: да

Зависимости

Это свойство только применимо, когда свойство Structure установлено в Wave Digital Filter.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Задайте действительное или объедините allpass коэффициенты как коэффициенты отражения решетки. Задайте это свойство как любого вектор - строка (настройка одно раздела) или вектор-столбец. Это значение является преобразованной и транспонированной версией значения по умолчанию AllpassCoefficients, вычисленное использование transpose(tf2latc([1 h.AllpassCoefficients])). Эти коэффициенты задают тот же стабильный фильтр allpass второго порядка как тогда, когда Structure установлен в 'Lattice'.

Настраиваемый: да

Зависимости

Это свойство применимо, только если свойство Structure установлено в Lattice.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Укажите, является ли последний раздел первым порядком или вторым порядком. Когда вы устанавливаете TrailingFirstOrderSection на true, последний раздел считается первым порядком, и второй элемент последней строки N-by-2 матрица проигнорирован. Когда вы устанавливаете TrailingFirstOrderSection на false, последний раздел считается второго порядка.

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

y = Allpass(x)

Описание

пример

y = Allpass(x) фильтрует входной сигнал x с помощью фильтра allpass, чтобы произвести вывод y. Каждый столбец x фильтруется независимо как отдельный канал в зависимости от времени.

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

развернуть все

Ввод данных, заданный как вектор или матрица. Этот объект также принимает входные параметры переменного размера. Если объект заблокирован, можно изменить размер каждого входного канала, но вы не можете изменить количество каналов.

Типы данных: single | double
Поддержка комплексного числа: Да

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

развернуть все

Фильтрованный выходной параметр, возвращенный как вектор или матрица. Размер, тип данных и сложность соответствий выходного сигнала тот из входного сигнала.

Типы данных: double | single
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

freqzЧастотная характеристика фильтра
fvtoolВизуализируйте частотную характеристику фильтров DSP
impzИмпульсный ответ дискретного времени фильтрует Системный объект
infoИнформация о Системном объекте фильтра
coeffsОтфильтруйте коэффициенты
costОценка стоится за реализацию Системных объектов фильтра
grpdelayОтвет групповой задержки дискретного времени фильтрует Системный объект
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

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

Создайте фильтры Allpass

Fs  = 48000;    % in Hz
FL = 1024;
APF1 = dsp.AllpassFilter('AllpassCoefficients',...
    [-0.710525516540603   0.208818210000029]);
APF2 =  dsp.AllpassFilter('AllpassCoefficients',...
    [-0.940456403667957   0.6;...
    -0.324919696232907   0],...
    'TrailingFirstOrderSection',true);

Создайте Средство оценки Передаточной функции, чтобы оценить, что передаточная функция между случайным входом и Allpass отфильтровала вывод

TFE = dsp.TransferFunctionEstimator('FrequencyRange',...
    'onesided','SpectralAverages',2);

Создайте ArrayPlot, чтобы построить ответ значения

AP = dsp.ArrayPlot('PlotType','Line','YLimits', [-80 5],...
    'YLabel','Magnitude (dB)','SampleIncrement', Fs/FL,...
    'XLabel','Frequency (Hz)','Title','Magnitude Response',...
    'ShowLegend', true,'ChannelNames',{'Magnitude Response'});

Отфильтруйте Вход и покажите ответ значения предполагаемой передаточной функции между входом и отфильтрованным выводом

tic;
while toc < 5
    in  = randn(FL,1);
    out = 0.5.*(APF1(in) + APF2(in));
    A = TFE(in, out);
    AP(db(A));
end

Алгоритмы

развернуть все

Передаточной функцией фильтра allpass дают

H(z)=c(n)+c(n1)z1+...+zn1+c(1)z1+...+c(n)zn.

c является allpass полиномиальным содействующим вектором. Порядок, n, передаточной функции являются длиной векторного c.

В минимальной форме множителя и цифровой форме волны, фильтр allpass реализован как каскад или второго порядка (biquad) разделы или разделы первого порядка. Когда коэффициенты заданы как N-by-2 матрица, каждая строка матрицы задает коэффициенты фильтра второго порядка. Последний элемент последней строки может быть проигнорирован на основе запаздывающей установки первого порядка. Когда коэффициенты заданы как N-by-1 матрица, каждый элемент в матрице задает коэффициент фильтра первого порядка. Каскад всех разделов фильтра формирует фильтр allpass.

В форме решетки коэффициенты заданы как вектор.

Эти структуры в вычислительном отношении более экономичны и структурно более стабильны по сравнению с типичными БИХ-фильтрами, таковы как df1, df1t, df2, df2t. Для всех структур фильтр allpass может быть одно разделом или несколькими-разделами (расположенный каскадом) фильтр. Различные разделы могут иметь различные порядки, но они все реализованы согласно той же структуре.

Вопросы совместимости

развернуть все

Ошибки, запускающиеся в R2018b

Ссылки

[1] Регалии, Филип А. и Митра Сэнджит К. и Вэйдьянэзэн, P. P. (1988) “Цифровой Фильтр все-Передачи: Стандартный блок Обработки сигналов AVersatile”. Продолжения IEEE, Издания 76, № 1, 1988, стр 19–37

[2] М. Лутовэк, Д. Тошич, Б. Эванс, проект фильтра для обработки сигналов Используя MATLAB и Mathematica. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2001.

Расширенные возможности

Введенный в R2013a