exponenta event banner

dsp. AdaptiveLatticeFilter

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

Описание

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

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

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

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

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

Создание

Описание

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

пример

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

пример

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

Свойства

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

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

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

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

Укажите метод, используемый для вычисления коэффициентов фильтра в качестве одного из 'Least-squares Lattice', 'QR-decomposition Least-squares Lattice', 'Gradient Adaptive Lattice'. Значение по умолчанию: 'Least-squares Lattice'. Алгоритмы, используемые для реализации этих трех различных методов, см. в разделе [1] . Это [2]свойство не настраивается.

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

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

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

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

Зависимости

Это свойство применяется только в том случае, если для свойства Method установлено значение 'Least-squares Lattice' или 'QR-decomposition Least-squares Lattice'.

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

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

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

Зависимости

Это свойство применяется только в том случае, если Method свойство имеет значение 'Gradient Adaptive Lattice'.

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

Укажите значение смещения для знаменателя StepSize нормирующий член как неотрицательный числовой скаляр. Ненулевое смещение помогает избежать условия деления на почти ноль, когда амплитуда входного сигнала очень мала.

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

Зависимости

Это свойство применяется только в том случае, если Method свойство имеет значение 'Gradient Adaptive Lattice'.

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

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

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

Зависимости

Используйте это свойство, только если Method свойство имеет значение 'Gradient Adaptive Lattice'.

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

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

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

Зависимости

Это свойство применяется только в том случае, если Method свойство имеет значение'Gradient Adaptive Lattice.

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

Укажите начальные значения для векторов ошибок прогнозирования как скалярное положительное числовое значение.

Если Method свойство имеет значение 'Least-squares Lattice' или 'QR-decomposition Least-squares Lattice', значением по умолчанию является 1.0. Если Method свойство имеет значение 'Gradient Adaptive Lattice', значением по умолчанию является 0.1.

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

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

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

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

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

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

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

Зависимости

Это свойство применимо только в том случае, если Method свойство имеет значение 'Gradient Adaptive Lattice'.

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

Синтаксис

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

Создать сигнал QPSK и шум, отфильтровать их для получения принятого сигнала и задержать принятый сигнал для получения требуемого сигнала.

D = 16;
b = exp(1i*pi/4)*[-0.7 1];
a = [1 -0.7];
ntr = 1000;
s = sign(randn(1,ntr+D)) + 1i*sign(randn(1,ntr+D));
n = 0.1*(randn(1,ntr+D) + 1i*randn(1,ntr+D));
r = filter(b,a,s) + n;
x = r(1+D:ntr+D);
d = s(1:ntr);

Используйте адаптивный решетчатый фильтр для вычисления отфильтрованного выходного сигнала и ошибки фильтра для входного и требуемого сигнала.

lam = 0.995;
del = 1;
alf = dsp.AdaptiveLatticeFilter('Length', 32, ...
    'ForgettingFactor', lam, 'InitialPredictionErrorPower', del);
[y,e] = alf(x,d);

Постройте график синфазных и квадратурных компонентов требуемых выходных сигналов и сигналов ошибок.

subplot(2,2,1); plot(1:ntr,real([d;y;e]));
title('In-Phase Components');
legend('Desired','Output','Error');
xlabel('time index'); ylabel('signal value');
subplot(2,2,2); plot(1:ntr,imag([d;y;e]));
title('Quadrature Components');
legend('Desired','Output','Error');
xlabel('time index'); ylabel('signal value');

Figure contains 2 axes. Axes 1 with title In-Phase Components contains 3 objects of type line. These objects represent Desired, Output, Error. Axes 2 with title Quadrature Components contains 3 objects of type line. These objects represent Desired, Output, Error.

Постройте графики рассеяния принятых и выровненных сигналов.

subplot(2,2,3); plot(x(ntr-100:ntr),'.'); axis([-3 3 -3 3]);
title('Received Signal Scatter Plot'); axis('square'); 
xlabel('Real[x]'); ylabel('Imag[x]'); grid on;
subplot(2,2,4); plot(y(ntr-100:ntr),'.'); axis([-3 3 -3 3]);
title('Equalized Signal Scatter Plot'); axis('square');
xlabel('Real[y]'); ylabel('Imag[y]'); grid on;

Figure contains 4 axes. Axes 1 with title In-Phase Components contains 3 objects of type line. These objects represent Desired, Output, Error. Axes 2 with title Quadrature Components contains 3 objects of type line. These objects represent Desired, Output, Error. Axes 3 with title Received Signal Scatter Plot contains an object of type line. Axes 4 with title Equalized Signal Scatter Plot contains an object of type line.

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

ha = fir1(31,0.5);
fir = dsp.FIRFilter('Numerator',ha); % FIR system to be identified 
iir = dsp.IIRFilter('Numerator',sqrt(0.75),...
        'Denominator',[1 -0.5]);
x = iir(sign(randn(2000,25))); 
n = 0.1*randn(size(x));             % Observation noise signal 
d = fir(x)+n;                   % Desired signal 
l = 32;                             % Filter length 
m  = 5;                             % Decimation factor for analysis
                                    % and simulation results 
ha = dsp.AdaptiveLatticeFilter(l); 
[simmse,meanWsim,Wsim,traceKsim] = msesim(ha,x,d,m);
plot(m*(1:length(simmse)),10*log10(simmse));
xlabel('Iteration'); ylabel('MSE (dB)');
title('Learning curve for Adaptive Lattice filter used in system identification')

Figure contains an axes. The axes with title Learning curve for Adaptive Lattice filter used in system identification contains an object of type line.

Ссылки

[1] Гриффитс, Ллойд Дж. «Непрерывно адаптивный фильтр, реализованный как решетчатая структура». Труды IEEE Int. Conf. on Acoustics, Speech, and Signal Processing, Hartford, CT, pp. 683-686, 1977.

[2] Хайкин, С. Теория адаптивных фильтров, 4th Ed. Upper Saddle River, NJ: Prentice Hall, 1996.

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

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