exponenta event banner

dsp. FilteredXLMSFilter

Отфильтрованный фильтр XLMS

Описание

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

Для реализации объекта адаптивного фильтра FIR:

  1. Создать dsp.FilteredXLMSFilter и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

fxlms = dsp.FilteredXLMSFilter возвращает объект системы адаптивного фильтра FIR с наименьшим квадратом с фильтром x, fxlms. Этот системный объект используется для вычисления отфильтрованного выходного сигнала и ошибки фильтра для данного входного сигнала и требуемого сигнала.

пример

fxlms = dsp.FilteredXLMSFilter(len) возвращает FilteredXLMSFilter Системный объект, fxlms, с Length свойство имеет значение len.

пример

fxlms = dsp.FilteredXLMSFilter(Name,Value) возвращает FilteredXLMSFilter Системный объект, fxlms, каждое указанное свойство имеет заданное значение. Заключите каждое имя свойства в отдельные кавычки. Неопределенные свойства имеют значения по умолчанию.

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Укажите длину вектора коэффициентов КИХ-фильтра как положительное целое значение. Это свойство не настраивается.

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

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

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

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

Укажите коэффициент утечки, используемый в адаптивном фильтре утечки, как числовое значение между 0 и 1, оба включительно. Если значение меньше 1объект System реализует дырявый адаптивный алгоритм. Значение по умолчанию: 1обеспечение отсутствия утечки в способе адаптации.

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

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

Укажите коэффициенты модели фильтра вторичного пути как числовой вектор. Вторичный тракт соединяет выходной исполнительный механизм и датчик ошибки. Значением по умолчанию является вектор, представляющий коэффициенты фильтра нижних частот КИХ 10-го порядка.

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

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

Укажите оценку модели фильтра вторичного пути как числовой вектор. Вторичный тракт соединяет выходной исполнительный механизм и датчик ошибки. Значение по умолчанию равно SecondayPathCoefficients значение свойства. Это свойство невозможно настроить.

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

Укажите начальные значения коэффициентов адаптивного фильтра FIR как скаляр или вектор длины, равный значению Length собственность.

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

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

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

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

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

Синтаксис

Описание

пример

[y,err] = fxlms(x,d) фильтрует вход x, использование d в качестве требуемого сигнала и возвращает отфильтрованный выходной сигнал y и ошибка фильтра err. Объект System оценивает весовые коэффициенты фильтра, необходимые для минимизации ошибки между выходным сигналом и требуемым сигналом. Вы можете получить доступ к этим коэффициентам, обращаясь к Coefficients свойства объекта. Это можно сделать только после вызова объекта. Например, для доступа к оптимизированным коэффициентам fxlms фильтр, вызов fxlms.Coefficients после передачи входного и требуемого сигнала объекту.

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

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

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

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

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

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

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

Требуемый сигнал, d, может быть сигналом переменного размера. Можно изменить количество элементов в векторе столбца, даже если объект заблокирован. Объект System блокируется при вызове объекта для выполнения его алгоритма.

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

Создание шума, создание модели системы первичного тракта FIR, формирование шума наблюдения, фильтрация выходных данных модели системы первичного тракта с добавлением шума и создание модели системы вторичного тракта FIR.

x  = randn(1000,1);
g  = fir1(47,0.4);
n  = 0.1*randn(1000,1);
d  = filter(g,1,x) + n;
b  = fir1(31,0.5);

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

mu = 0.008;
fxlms = dsp.FilteredXLMSFilter(32, 'StepSize', mu, 'LeakageFactor', ...
     1, 'SecondaryPathCoefficients', b);
[y,e] = fxlms(x,d);

Постройте график результатов.

plot(1:1000,d,'b',1:1000,e,'r');
title('Active Noise Control of a Random Noise Signal');
legend('Original','Attenuated');
xlabel('Time Index'); ylabel('Signal Value');  grid on;

Figure contains an axes. The axes with title Active Noise Control of a Random Noise Signal contains 2 objects of type line. These objects represent Original, Attenuated.

Определите неизвестную систему, выполнив активное управление шумом с использованием алгоритма filtered-x LMS. Целью адаптивного фильтра является минимизация сигнала ошибки между выходом адаптивного фильтра и выходом неизвестной системы (или системы, которая должна быть идентифицирована). Как только сигнал ошибки минимален, неизвестная система сходится к адаптивному фильтру.

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

Инициализация

Создать dsp.FIRFilter Системный объект, представляющий идентифицируемую систему. Передайте сигнал, x, к фильтру FIR. Выход неизвестной системы является требуемым сигналом, d, которая является суммой выходного сигнала неизвестной системы (FIR-фильтр) и аддитивного шумового сигнала, n.

num = fir1(31,0.5);
fir = dsp.FIRFilter('Numerator',num);  
iir = dsp.IIRFilter('Numerator',sqrt(0.75),...
        'Denominator',[1 -0.5]);
x = iir(sign(randn(2000,25))); 
n = 0.1*randn(size(x));           
d = fir(x) + n;                   

Адаптивный фильтр

Создать dsp.FilteredXLMSFilter Системный объект для создания адаптивного фильтра, использующего алгоритм filtered-x LMS. Установите длину адаптивного фильтра равной 32 отводам, размер шага - 0,008, а коэффициент прореживания для анализа и моделирования - 5. Переменная simmse представляет ошибку между выходами неизвестной системы, dи выходной сигнал адаптивного фильтра.

l = 32;                         
mu = 0.008;                     
m  = 5;                         
fxlms = dsp.FilteredXLMSFilter(l,'StepSize',mu); 
[simmse,meanWsim,Wsim,traceKsim] = msesim(fxlms,x,d,m);
plot(m*(1:length(simmse)),10*log10(simmse))
xlabel('Iteration')
ylabel('MSE (dB)')
title('Learning curve for Filtered-x LMS filter used in system identification')

Figure contains an axes. The axes with title Learning curve for Filtered-x LMS filter used in system identification contains an object of type line.

При каждой итерации адаптации значение simmse уменьшается до минимального значения, указывая, что неизвестная система сошлась с адаптивным фильтром.

Ссылки

[1] Куо, С.М. и Морган, Д.Р. Активные системы управления шумом: алгоритмы и реализации DSP. Нью-Йорк: John Wiley & Sons, 1996.

[2] Уидроу, Б. и Стернс, С.Д. Адаптивная обработка сигналов. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1985.

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

.
Представлен в R2013b