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