dsp.FastTransversalFilter

Быстро трансверсальный КИХ наименьших квадратов адаптивный фильтр

Описание

dsp.FastTransversalFilter вычисляет выход, ошибку и коэффициенты с помощью быстрого трансверсального КИХ наименьших квадратов адаптивный фильтр.

Реализовывать адаптивный КИХ-объект фильтра:

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

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

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

Создание

Описание

ftf = dsp.FastTransversalFilter возвращает Систему object™, ftf, который является быстрым трансверсальным, КИХ наименьших квадратов адаптивный фильтр. Этот Системный объект вычисляет отфильтрованный выход и ошибку фильтра для данного входа и желаемого сигнала.

пример

ftf = dsp.FastTransversalFilter(len) возвращает dsp.FastTrasversalFilter Системный объект с Length набор свойств к len.

ftf = dsp.FastTransversalFilter(Name,Value) возвращает dsp.FastTransversalFilter Системный объект с каждым заданным набором свойств к заданному значению.

Свойства

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

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

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

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

Укажите, что метод раньше вычислял коэффициенты фильтра как любой 'Fast transversal least-squares' или 'Sliding-window fast transversal least-squares'. Для алгоритмов, используемых, чтобы реализовать эти два различных метода, обратитесь к [1]. Это свойство является ненастраиваемым.

Задайте длину КИХ-содействующего вектора фильтра как положительное целочисленное значение.

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

Задайте ширину раздвижного окна как положительное целочисленное значение, больше, чем или равный Length значение свойства. Долина по умолчанию является значением Length свойство.

Зависимости

Это свойство применяется только если Method свойство установлено в 'Sliding-window fast transversal least-squares'.

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

Задайте быстрый трансверсальный фактор упущения фильтра как положительную скалярную величину в области значений (0,1]. Устанавливание этого значения к 1 обозначает бесконечную память в то время как адаптация фильтра. Установка этого значения свойства к 1 обозначает бесконечную память при адаптации, чтобы найти новый фильтр. Для лучших результатов, устанавливает это свойство на значение, которое находится в диапазоне [1-0.5/L,1], где L значение свойства Длины.

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

Зависимости

Это свойство применяется только если Method свойство установлено в 'Fast transversal least-squares'.

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

Задайте начальное значение прямых и обратных векторов ошибок предсказания в виде положительного числа. Этот скаляр должен быть достаточно большим, чтобы обеспечить устойчивость и предотвратить чрезмерное количество спасения усиления Кальмана.

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

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

Задайте начальное значение коэффициента преобразования быстрого трансверсального фильтра.

Значение этого свойства зависит от Method свойство. Если Method установлен в:

  • 'Fast transversal least-squares' – Это свойство должно быть положительным числовым значением, меньше чем или равным 1

  • 'Sliding-window fast transversal least-squares' – Это свойство должно быть двухэлементным числовым вектором. Первый элемент этого вектора должен лечь в области значений [0,1], и второй элемент должен быть меньше чем или равен -1. В этом случае значением по умолчанию является [1,-1].

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

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

Задайте начальные значения КИХ адаптивные коэффициенты фильтра как скаляр или вектор длины, равной значению Length свойство.

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

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

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

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

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

Синтаксис

Описание

пример

[y,err] = ftf(x,d) фильтрует вход x, использование d как желаемый сигнал, и возвращает отфильтрованный выходной параметр в y и ошибка фильтра в err. Системный объект оценивает, что веса фильтра должны были минимизировать ошибку между выходным сигналом и желаемым сигналом.

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

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

Сигнал, который будет отфильтрован быстрым трансверсальным фильтром. Вход, x, и желаемый сигнал, d должен иметь тот же размер и тип данных.

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

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

Быстрый трансверсальный фильтр адаптирует свои веса фильтра, wts, минимизировать ошибку, err, и сходитесь входной сигнал x к желаемому d сигнала максимально тесно. Можно получить доступ к текущим весам фильтра путем вызова ftf.Coefficients, где ftf быстрый трансверсальный объект фильтра.

Вход и желаемый сигнал должны иметь тот же размер и тип данных.

Желаемый сигнал может быть сигналом переменного размера. Можно изменить число элементов в вектор-столбце, даже когда объект заблокирован. Системный объект блокирует, когда вы вызываете объект запустить его алгоритм.

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

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

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

Фильтрованный выходной параметр, возвращенный как скаляр или вектор-столбец. Объект адаптирует свои веса фильтра, чтобы сходиться входной сигнал x совпадать с желаемым d сигнала. Фильтр выводит сходившийся сигнал.

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

Различие между выходным сигналом y и желаемый d сигнала, возвращенный как скаляр или вектор-столбец. Тип данных err совпадает с типом данных y. Цель адаптивного фильтра состоит в том, чтобы минимизировать эту ошибку. Объект адаптирует свои веса, чтобы сходиться к оптимальным весам фильтра, которые производят выходной сигнал, который соответствует тесно с желаемым сигналом.

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

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

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

release(obj)

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

msesimПредполагаемая среднеквадратическая ошибка для адаптивных фильтров
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Примечание: Если вы используете R2016a или ранее, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

ftf1 = dsp.FastTransversalFilter(11,'ForgettingFactor',0.99);
filt = dsp.FIRFilter;
filt.Numerator = fir1(10,.25);
x = randn(1000,1);
d = filt(x) + 0.01*randn(1000,1);
[y,e] = ftf1(x,d);
w = ftf1.Coefficients;
subplot(2,1,1);
plot(1:1000,[d,y,e])
title('System Identification of an FIR filter');
legend('Desired','Output','Error');
xlabel('time index');
ylabel('signal value');
subplot(2,1,2); 
stem([filt.Numerator; w].');
legend('Actual','Estimated'); 
xlabel('coefficient #'); 
ylabel('coefficient value');

Ссылки

[1] Haykin, Саймон. Адаптивная теория фильтра, 4-й Эд. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2002

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

Введенный в R2013b