dsp.AdaptiveLatticeFilter

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

Описание

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

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

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

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

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

Создание

Описание

alf = dsp.AdaptiveLatticeFilter возвращает основанного на решетке КИХ адаптивный Системный объект фильтра, 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 свойство установлено to'Gradient Adaptive Lattice.

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

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

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

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

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

Задайте начальные значения КИХ адаптивные коэффициенты фильтра как скаляр или вектор из длины, равной значению 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. Системный объект оценивает, что веса фильтра должны были минимизировать ошибку между выходным сигналом и желаемым сигналом. Можно получить доступ к этим коэффициентам путем доступа к Coefficients свойство объекта. Это может быть сделано только после вызова объекта. Например, чтобы получить доступ к оптимизированным коэффициентам alf отфильтруйте, вызовите alf.Coefficients после того, как вы передаете вход и желаемый сигнал к объекту.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Примечание: Если вы используете 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] Гриффитс, Ллойд Дж. “Постоянно Адаптивный Фильтр, Реализованный как Структура решетки”. Продолжения Конференции Int IEEE по Акустике, Речи, и Обработке сигналов, Хартфорду, CT, стр 683–686, 1977.

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

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

Введенный в R2013b