Прогнозируемая среднеквадратичная ошибка для адаптивного фильтра LMS
[ предсказывает установившиеся значения при сходимости минимальной среднеквадратичной ошибки, mmseemse] = msepred(lmsFilt,x,d)mmseи избыточная среднеквадратическая ошибка, emse, учитывая входные и требуемые последовательности сигналов отклика в x и d и количества в dsp.LMSFilter object™ системы, lmsFilt.
[ указывает дополнительный коэффициент прореживания для вычисления 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')

Прогнозируемый 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')

В установившемся состоянии обе траектории сходятся.
Сумма ошибок квадратного коэффициента
Сравните сумму квадратичных ошибок коэффициента, заданных 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')

lmsFilt - объект системы адаптивного фильтра LMSdsp.LMSFilterАдаптивный фильтр LMS, указанный как dsp.LMSFilter Системный объект.
x - Входной сигналВходной сигнал, заданный как скаляр, вектор столбца или матрица. Столбцы матрицы x содержат отдельные последовательности входных сигналов. Вход, xи требуемый сигнал, d, должны иметь одинаковый размер, тип данных и сложность.
Типы данных: single | double
d - Требуемый сигналТребуемый ответный сигнал, заданный как скаляр, вектор столбца или матрица. Столбцы матрицы d содержат индивидуальные желаемые сигнальные последовательности. Вход, xи требуемый сигнал, d, должны иметь одинаковый размер, тип данных и сложность.
Типы данных: single | double
m - Коэффициент прореживания1 (по умолчанию) | положительный скалярКоэффициент прореживания, заданный как положительный скаляр. Каждый mзаписывают в соответствующие выходные аргументы третье предсказанное значение выхода 3-й, 4-й и 5-й предсказанных последовательностей, meanw, mse, и tracek. Если m равно 1, каждое значение этих последовательностей сохраняется.
m должен быть коэффициентом размера входного кадра.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
mmse - Минимальная среднеквадратичная ошибкаМинимальная среднеквадратичная ошибка (mmse), возвращаемая в виде скаляра. Этот параметр оценивается с помощью фильтра Винера. Фильтр Винера минимизирует среднеквадратичную ошибку между требуемым сигналом и входным сигналом, отфильтрованным фильтром Винера. Большое значение среднеквадратичной ошибки указывает на то, что адаптивный фильтр не может точно отслеживать требуемый сигнал. Минимальное значение среднеквадратичной ошибки гарантирует оптимальность адаптивного фильтра. Минимальную среднеквадратичную ошибку между конкретным кадром требуемого сигнала и отфильтрованным сигналом вычисляют как дисперсию между двумя кадрами сигналов. msepred функция выводит среднее значение значений mmse для всех кадров. Дополнительные сведения о том, как рассчитывается этот параметр, см. в разделе Алгоритмы.
Типы данных: single | double
emse - Среднеквадратическая погрешность превышения в установившемся состоянииПревышение среднеквадратичной ошибки, возвращаемое как скаляр. Эта ошибка представляет собой разность между среднеквадратичной ошибкой, вносимой адаптивными фильтрами, и минимальной среднеквадратичной ошибкой, создаваемой соответствующим фильтром Винера. Дополнительные сведения о том, как рассчитывается этот параметр, см. в разделе Алгоритмы.
Типы данных: single | double
meanw - Последовательность векторных средств коэффициентовПоследовательность векторных средств коэффициентов адаптивного фильтра в каждый момент времени возвращается в виде матрицы. Столбцы этой матрицы содержат предсказания средних значений коэффициентов адаптивного фильтра LMS в каждый момент времени. Если коэффициент прореживания, m равно 1, размеры meanw M-by-N. M - размер кадра (количество строк) входного сигнала, x. N - длина вектора весов КИХ-фильтра, определяемая Length имущества lmsFilt Системный объект. Если m > 1, размеры meanw M/m-по-Н.
Дополнительные сведения о том, как рассчитывается этот параметр, см. в разделе Алгоритмы.
Типы данных: double
mse - Последовательность среднеквадратичных ошибокПрогнозы среднеквадратичной ошибки адаптивного фильтра LMS в каждый момент времени возвращаются в виде вектора столбца. Если коэффициент прореживания, m равно 1, длина mse равен размеру кадра (количеству строк) входного сигнала, М. Если m > 1, длина mse равно M/m.
Дополнительные сведения о том, как рассчитывается этот параметр, см. в разделе Алгоритмы.
Типы данных: double
tracek - Последовательность значений суммарной погрешности коэффициентаПрогнозы суммарной мощности ошибки коэффициента адаптивного фильтра LMS в каждый момент времени возвращаются в виде вектора столбца. Если коэффициент прореживания, m равно 1, длина tracek равен размеру кадра (количеству строк) входного сигнала, заданному размером (x,1). Если m > 1, длина tracek равно отношению размера входного кадра и коэффициента прореживания, m.
Дополнительные сведения о том, как рассчитывается этот параметр, см. в разделе Алгоритмы.
Типы данных: double
msepred функция вычисляет минимальную среднеквадратичную ошибку (mmse), используя следующее уравнение:
xi)) N
где,
N -- количество кадров во входном сигнале, x.
di - i-й кадр (столбец) требуемого сигнала.
xi - i-й кадр (столбец) входного сигнала.
W (xi) - выход фильтра Винера.
var - Отклонение
msepred функция вычисляет среднеквадратическую ошибку превышения в установившемся состоянии с использованием следующих уравнений:
мк2 (Lam2 (kurt + 2) + λ λ').
где,
K - окончательные значения вариаций преобразованных коэффициентов.
λ -- Вектор столбца, содержащий собственные значения входной автокорреляционной матрицы.
λ '- транспонирование λ.
B - управляющий термин анализа MSE.
L - длина адаптивного фильтра FIR, заданная lmsFilt.Length.
I (L) - L-на-L единичная матрица.
A - матрица перехода анализа MSE.
λ -- Размер шага, заданный lmsFilt.StepSize.
Lam - диагональная матрица, содержащая собственные значения.
kurt - среднее значение куртоза фильтруемых собственным вектором сигналов.
msepred функция вычисляет каждый элемент последовательности векторных средств коэффициентов, используя следующие уравнения:
мкR, D = мкР.
где,
meanw -- Начальное значение meanw задается lmsFilt.InitialConditions.
T - Переходная матрица для анализа средних коэффициентов.
I (L) - L-на-L единичная матрица.
λ -- Размер шага, заданный lmsFilt.StepSize.
R -- Входная автокорреляционная матрица размера L-by-L.
D - Управляющий термин для анализа средних коэффициентов.
P - вектор взаимной корреляции размера 1-by-L.
kurt - среднее значение куртоза фильтруемых собственным вектором сигналов.
msepred функция вычисляет каждый элемент последовательности среднеквадратичных ошибок, используя следующие уравнения:
', D = мк2λ'.
где,
mmse - минимальная среднеквадратичная ошибка.
dk - диагональные записи ковариационной матрицы коэффициентов. Начальное значение dk задаётся 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.
msepred функция вычисляет каждый элемент последовательности суммарных коэффициентов мощности ошибки. Эти значения задаются следом ковариационной матрицы коэффициентов. Диагональные записи ковариационной матрицы коэффициентов задаются dk в следующих уравнениях:
', D = мк2λ'.
След ковариационной матрицы коэффициентов задается следующим уравнением:
dk).
[1] Хейс, М.Х. Статистическая цифровая обработка и моделирование сигналов. Нью-Йорк: John Wiley & Sons, 1996.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.