exponenta event banner

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

Примеры

свернуть все

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

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

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

Создать dsp.FIRFilterСистемный object™, представляющий неизвестную систему. Передайте сигнал, 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; 

Фильтр 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.

Сравните смоделированные и прогнозируемые средние значения коэффициентов фильтра 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
    {'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

Коэффициент прореживания, заданный как положительный скаляр. Каждый mзаписывают в соответствующие выходные аргументы третье предсказанное значение выхода 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-по-Н.

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

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

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

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

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

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

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

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

Алгоритмы

свернуть все

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

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

mmse=∑i=1Nvar (di W (xi)) N

где,

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

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

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

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

  • var - Отклонение

Превышение среднеквадратичной ошибки (emse)

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

emse = , K = BI (L) A, B = мк2.ммс.λ ', A = I (L) 2мкЛам + мк2 (Lam2 (kurt + 2) + λ λ').

где,

  • K - окончательные значения вариаций преобразованных коэффициентов.

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

  • λ '- транспонирование λ.

  • B - управляющий термин анализа MSE.

  • L - длина адаптивного фильтра FIR, заданная lmsFilt.Length.

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

  • A - матрица перехода анализа MSE.

  • λ -- Размер шага, заданный lmsFilt.StepSize.

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

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

Значение вектора коэффициента (означает)

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

meanw = meanw.T.D, T = I (L) мкR, D = мкР.

где,

  • meanw -- Начальное значение meanw задается lmsFilt.InitialConditions.

  • T - Переходная матрица для анализа средних коэффициентов.

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

  • λ -- Размер шага, заданный lmsFilt.StepSize.

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

  • D - Управляющий термин для анализа средних коэффициентов.

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

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

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

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

mse=mmse+dk.λ,dk=dk∘diagA+mse.D,diagA= (1 2мкλ + мк2 (курт + 2) λ∘2) ', D = мк2λ'.

где,

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

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

  • meanw -- вектор коэффициента означает lmsFilt.InitialConditions.

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

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

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

  • dk◦diagA - Адамар или цельный продукт dk и diagA.

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

  • λ -- Размер шага, заданный lmsFilt.StepSize.

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

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

  • D - Управляющий термин для анализа MSE.

Суммарные мощности ошибок коэффициентов (tracek)

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

mse=mmse+dk.λ,dk=dk∘diagA+mse.D,diagA= (1 2мкλ + мк2 (курт + 2) λ∘2) ', D = мк2λ'.

След ковариационной матрицы коэффициентов задается следующим уравнением:

tracek = сумма (dk).

Ссылки

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

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