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, каждый mth сохраняют предсказанное значение каждой из этих последовательностей. Если он опущен, значение 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')

Figure contains an axes. The axes with title Mean Squared Error Performance contains 4 objects of type line. These objects represent MSE (Sim.), Final MSE, MSE, Min. MSE.

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

Постройте график траекторий коэффициентов

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

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

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
    {'Average Coefficient Trajectories for'}
    {'W(12), W(13), W(14), and W(15)'      }

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

Figure contains an axes. The axes with title Average Coefficient Trajectories for W(12), W(13), W(14), and W(15) contains 8 objects of type line. These objects represent Simulation, Theory.

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

Сумма квадратов ошибок коэффициента

Сравните сумму квадратов ошибок коэффициента, заданную как 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')

Figure contains an axes. The axes with title Sum-of-Squared Coefficient Errors contains 2 objects of type line. These objects represent Simulation, Theory.

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

свернуть все

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

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

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

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

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

Десятикратное уменьшение коэффициент, заданный как положительная скалярная величина. Каждый m1-е предсказанное значение 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-by - 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 i - i-й система координат (столбец) желаемого сигнала.

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

  • 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-by- L.

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

Средние квадратичные невязки (mse)

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

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

где,

  • mmse -- Минимальная средняя квадратичная невязка.

  • dk - Диагональные элементы ковариационной матрицы коэффициента. Начальное значение dk задается как dk=((meanwWopt)Q)2.

  • meanw -- Векторные средства коэффициентов, заданные lmsFilt.InitialConditions.

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

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

  • diagA -- Фрагмент матрицы перехода анализа MSE.

  • dk ◦ diagA -- Адамар или 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] Хейс, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.

Введенный в R2012a