dsp.AllpassFilter

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

Описание

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

Примечание

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

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

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в 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, последний раздел считается второго порядка.

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

Синтаксис

Описание

пример

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