msepred

Предсказанная среднеквадратическая ошибка для адаптивного фильтра LMS

Описание

пример

[mmseemse] = msepred(lmsFilt,x,d) предсказывает установившиеся значения в сходимости минимальной среднеквадратической ошибки, mmse, и избыточная среднеквадратическая ошибка, emse, учитывая вход и желаемый ответ сигнализируют о последовательностях в x и d и количества в dsp.LMSFilter Система object™, lmsFilt.

пример

[mmseemse,meanw,mse,tracek] = msepred(lmsFilt,x,d) также вычисляет meanw, последовательность средних значений векторов коэффициентов, mse, последовательность среднеквадратических ошибок и tracek, последовательность общих содействующих ошибочных степеней.

пример

[mmseemse,meanw,mse,tracek] = msepred(lmsFilt,x,d,m) задает дополнительный фактор децимации для вычисления meanw, mse, и tracek. Если m > 1, каждый mожидаемое значение th каждой из этих последовательностей сохранено. Если не использовано, значение m значение по умолчанию, которое является тем.

Примеры

свернуть все

Среднеквадратическая ошибка (MSE) измеряет среднее значение квадратов ошибок между желаемым сигналом и первичным входом сигнала к адаптивному фильтру. Сокращение этой ошибки сходится первичный входной параметр к желаемому сигналу. Определите ожидаемое значение MSE и симулированное значение MSE в каждый раз мгновенное использование msepred и msesim функции. Сравните эти значения MSE друг с другом и относительно минимального MSE и установившихся значений MSE. Кроме того, вычислите сумму квадратов содействующих ошибок, данных трассировкой содействующей ковариационной матрицы.

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

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

Создайте dsp.FIRFilter Система object™, который представляет неизвестную систему. Передайте сигнал, x, к КИХ-фильтру. Выход неизвестной системы является желаемым сигналом, d, который является суммой выхода неизвестной системы (КИХ-фильтр) и аддитивный шумовой сигнал, 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; 

Фильтр LMS

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

l = 32;
mu = 0.008;
m  = 5;

lms = dsp.LMSFilter('Length',l,'StepSize',mu);
[mmse,emse,meanW,mse,traceK] = msepred(lms,x,d,m);
[simmse,meanWsim,Wsim,traceKsim] = msesim(lms,x,d,m);

Постройте результаты MSE

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

nn = m:m:size(x,1);
semilogy(nn,simmse,[0 size(x,1)],[(emse+mmse)...
    (emse+mmse)],nn,mse,[0 size(x,1)],[mmse mmse])
title('Mean Squared Error Performance')
axis([0 size(x,1) 0.001 10])
legend('MSE (Sim.)','Final MSE','MSE','Min. MSE')
xlabel('Time Index')
ylabel('Squared Error Value')

Предсказанный MSE следует за той же траекторией как симулированный MSE. Обе этих траектории сходятся с установившимся (итоговым) MSE.

Постройте содействующие траектории

meanWsim среднее значение симулированных коэффициентов, данных msesim. meanW среднее значение предсказанных коэффициентов, данных msepred.

Сравните симулированные и предсказанные средние значения коэффициентов фильтра LMS 12,13,14, и 15.

plot(nn,meanWsim(:,12),'b',nn,meanW(:,12),'r',nn,...
meanWsim(:,13:15),'b',nn,meanW(:,13:15),'r')
PlotTitle ={'Average Coefficient Trajectories for';...
            'W(12), W(13), W(14), and W(15)'}
PlotTitle = 2x1 cell array
    {'Average Coefficient Trajectories for'}
    {'W(12), W(13), W(14), and W(15)'      }

title(PlotTitle)
legend('Simulation','Theory')
xlabel('Time Index')
ylabel('Coefficient Value')

В устойчивом состоянии оба сходятся траектории.

Сумма содействующих ошибок в квадрате

Сравните сумму содействующих ошибок в квадрате, данных msepred и msesim. Эти значения даны трассировкой содействующей ковариационной матрицы.

semilogy(nn,traceKsim,nn,traceK,'r')
title('Sum-of-Squared Coefficient Errors')
axis([0 size(x,1) 0.0001 1])
legend('Simulation','Theory')
xlabel('Time Index')
ylabel('Squared Error Value')

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

свернуть все

LMS адаптивный фильтр, заданный как dsp.LMSFilter Системный объект.

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

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

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

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

Фактор децимации, заданный как положительная скалярная величина. Каждый mожидаемое значение th 3-х, 4-х, и 5-х предсказанных последовательностей выход сохранено в соответствующие выходные аргументы, meanw, mse, и tracek. Если m равняется 1, каждое значение этих последовательностей сохранено.

m должен быть фактор размера входного кадра.

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

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

свернуть все

Минимальная среднеквадратическая ошибка (mmse), возвращенный как скаляр. Этот параметр оценивается с помощью Винеровского фильтра. Винеровский фильтр минимизирует среднеквадратическую ошибку между желаемым сигналом и входным сигналом, отфильтрованным Винеровским фильтром. Большое значение среднеквадратической ошибки указывает, что адаптивный фильтр не может точно отследить желаемый сигнал. Минимальное значение среднеквадратической ошибки гарантирует, что адаптивный фильтр оптимален. Минимальная среднеквадратическая ошибка между конкретной системой координат желаемого сигнала и отфильтрованным сигналом вычисляется как отклонение между двумя системами координат сигналов. msepred функционируйте выводит среднее значение mmse значений для всех систем координат. Для получения дополнительной информации о том, как вычисляется этот параметр, см. Алгоритмы.

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

Избыточная среднеквадратическая ошибка, возвращенная как скаляр. Эта ошибка является различием между среднеквадратической ошибкой, введенной адаптивными фильтрами и минимальной среднеквадратической ошибкой, произведенной соответствующим Винеровским фильтром. Для получения дополнительной информации о том, как этот параметр вычисляется, см. Алгоритмы.

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

Последовательность средних значений вектора коэффициентов адаптивного фильтра в каждый раз момент, возвращенный как матрица. Столбцы этой матрицы содержат прогнозы средних значений адаптивных коэффициентов фильтра LMS в каждый раз момент. Если фактор децимации, m равняется 1, размерности meanw M-by-N. M является форматом кадра (количество строк) входного сигнала, x. N является длиной КИХ-вектора весов фильтра, заданного Length свойство lmsFilt Системный объект. Если m > 1, размерности meanw M/m- N.

Для получения дополнительной информации о том, как этот параметр вычисляется, см. Алгоритмы.

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

Прогнозы среднеквадратической ошибки адаптивного фильтра LMS в каждый раз момент, возвращенный как вектор-столбец. Если фактор децимации, m равняется 1, длина mse равняется формату кадра (количество строк) входного сигнала, M. Если m > 1, длина mse равняется M/m.

Для получения дополнительной информации о том, как этот параметр вычисляется, см. Алгоритмы.

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

Прогнозы общей содействующей ошибочной степени адаптивного фильтра LMS в каждый раз момент, возвращенный как вектор-столбец. Если фактор децимации, m равняется 1, длина tracek равняется формату кадра (количество строк) входного сигнала, данного размером (x, 1). Если m > 1, длина tracek равняется отношению размера входного кадра и фактора децимации, m.

Для получения дополнительной информации о том, как этот параметр вычисляется, см. Алгоритмы.

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

Алгоритмы

свернуть все

Минимальная среднеквадратическая ошибка (mmse)

msepred функция вычисляет минимальную среднеквадратическую ошибку (mmse) использование следующего уравнения:

mmse=i=1Nvar(diW(xi))N

где,

  • N Количество систем координат во входном сигнале, x.

  • d ii th система координат (столбец) желаемого сигнала.

  • x ii th система координат (столбец) входного сигнала.

  • W(xi) – Выход Винеровского фильтра.

  • var Дисперсия

Избыточная среднеквадратическая ошибка (emse)

msepred функция вычисляет установившуюся избыточную среднеквадратическую ошибку с помощью следующих уравнений:

emse=Kλ,K=BI(L)A,B=μ2.mmse.λ',A=I(L)2μLam+μ2(Lam2(kurt+2)+λλ').

где,

  • K Окончательные значения преобразованных содействующих отклонений.

  • λ – Вектор-столбец, содержащий собственные значения входной матрицы автокорреляции.

  • λ' – Транспонируйте λ.

  • B Аналитический срок управления MSE.

  • L Длина КИХ адаптивный фильтр, данный lmsFilt.Length.

  • I(L)L-by-L единичная матрица.

  • A Аналитическая матрица перехода MSE.

  • μ – Размер шага дан lmsFilt.StepSize.

  • Lam – Диагональная матрица, содержащая собственные значения.

  • kurt – Среднее значение эксцесса отфильтрованных собственным вектором сигналов.

Средства вектора коэффициентов (meanw)

msepred функция вычисляет каждый элемент последовательности средних значений вектора коэффициентов с помощью следующих уравнений:

meanw=meanw.T.D,T=I(L)μR,D=μP.

где,

  • meanw – Начальное значение meanw дано lmsFilt.InitialConditions.

  • T Матрица перехода для среднего содействующего анализа.

  • I(L)L-by-L единичная матрица.

  • μ – Размер шага дан lmsFilt.StepSize.

  • R Введите матрицу автокорреляции размера L-by-L.

  • D Управление термином для среднего содействующего анализа.

  • P Вектор взаимной корреляции размера 1 L.

  • kurt – Среднее значение эксцесса отфильтрованных собственным вектором сигналов.

Среднеквадратические ошибки (mse)

msepred функция вычисляет каждый элемент последовательности среднеквадратических ошибок с помощью следующих уравнений:

mse=mmse+dk.λ,dk=dkdiagA+mse.D,diagA=(12μλ+μ2(kurt+2)λ2)',D=μ2λ'.

где,

  • mmse – Минимальная среднеквадратическая ошибка.

  • dk – Диагональные элементы содействующей ковариационной матрицы. Начальным значением dk дают.

  • meanw – Средние значения вектора коэффициентов даны lmsFilt.InitialConditions.

  • Wopt – Оптимальные Винеровские коэффициенты фильтра.

  • Q L-by-L матрица, столбцы которой являются собственными векторами входной матрицы автокорреляции, R, так, чтобы R Q = Q Lam. Lam является диагональной матрицей, содержащей соответствующие собственные значения.

  • diagA – Фрагмент аналитической матрицы перехода MSE.

  • dkdiagA – Адамар или entrywise продукт dk и diagA.

  • λ – Вектор-столбец, содержащий собственные значения входной матрицы автокорреляции, R.

  • μ – Размер шага дан lmsFilt.StepSize.

  • kurt – Среднее значение эксцесса собственного вектора отфильтровало сигналы.

  • λ ◦2 – Адамар или entrywise степень вектор-столбца, содержащего собственные значения.

  • D Управление термином для анализа MSE.

Общие содействующие ошибочные полномочия (tracek)

msepred функция вычисляет каждый элемент последовательности общих содействующих ошибочных степеней. Эти значения даны трассировкой содействующей ковариационной матрицы. Диагональные элементы содействующей ковариационной матрицы даны dk в следующих уравнениях:

mse=mmse+dk.λ,dk=dkdiagA+mse.D,diagA=(12μλ+μ2(kurt+2)λ2)',D=μ2λ'.

Трассировка содействующей ковариационной матрицы дана следующим уравнением:

tracek=sum(dk).

Ссылки

[1] Hayes, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.

Представленный в R2012a