Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Оценка параметров
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
RHnd
Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]

Доступны измерению Y и X. Теоретически, вектор Q постоянен. Но есть неприятность - измерения y и X шумят, да и на практике вектор параметров Q может обладать малым дрейфом. Теперь вопрос - как по измерениям (большому числу точек) получить оценку вектора Q(^), оптимальную, скажем, в смысле среднеквадратичной ошибки оценки y(^)=Q(^)*X. Ну или как-то еще оптимальную.

Заранее большое спасибо за помощь!
NickNich
Цитата(RHnd @ Sep 10 2008, 17:04) *
Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]


Например так: сначала пепеписать уравнение наблюдения в слегка измененном виде y = x*q, чтобы q - стал вектором столбцом, а не строкой. После этого набрать измерения y для различных значений вектора x (различные вектора x здесь имеют принципиальное значение):

y1 = x1*q
y2 = x2*q
...
yN = xN*q

эту систему равенств записывается в векторно-матричном виде

Y = X*q.

Вектор q находится через МНК в виде q = (X'*X)^-1*X'*Y, где X' - транспонированная матрица X. Если измерения Y разноточные, то целесообразно ввести весовую матрицу W, но это можно сделать потом. Тогда решение станет в виде:

q = (X'*Ц*X)^-1*X'*W*Y
RHnd
Цитата(NickNich @ Sep 10 2008, 17:27) *
Вектор q находится через МНК в виде q = (X'*X)^-1*X'*Y, где X' - транспонированная матрица X.

А чем эта запись отличается от простого X^-1*Y?


Хорошо, этот метод подходит для первых N точек. Пусть N у нас равен 5. Измерений же Y и X - несколько тысяч точек. По первым 5 мы получим одну оценку Q. По другим 5 - слегка другую оценку Q (шум, дрейф). Как нам 'усреднить' оценку Q по всем имеющимся измерениям? Интересует 'оптимальность' оценки именно на всем наборе точек.

PS:Так, понял, у Вас N - общее количество точек? Т.е. матрица X не квадратная? Спасибо, попробую.
Tanya
Цитата(RHnd @ Sep 10 2008, 17:04) *
Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]

Доступны измерению Y и X. Теоретически, вектор Q постоянен. Но есть неприятность - измерения y и X шумят, да и на практике вектор параметров Q может обладать малым дрейфом. Теперь вопрос - как по измерениям (большому числу точек) получить оценку вектора Q(^), оптимальную, скажем, в смысле среднеквадратичной ошибки оценки y(^)=Q(^)*X. Ну или как-то еще оптимальную.

Заранее большое спасибо за помощь!

Это очень научная запись скалярного произведения...
У Вас получается переопределенная система линейных уравнений. Копайте в эту сторону...
Google выдал множество ссылок. Первая - http://www.intuit.ru/department/calculate/calcmathbase/3/
NickNich
Цитата(RHnd @ Sep 10 2008, 17:43) *
А чем эта запись отличается от простого X^-1*Y?

Как выправильно заметили, матрица X - не квадратная. Поэтому просто так обратить ее не получится. Мриведенный метод - это решение задачи оценки вектора постоянных параметров по набору зашумленных измерений, при котором достигается минимум суммы квадратов ошибок. Т.е. обычный линейный МНК.

Цитата(RHnd @ Sep 10 2008, 17:43) *
Измерений же Y и X - несколько тысяч точек. По первым 5 мы получим одну оценку Q. По другим 5 - слегка другую оценку Q (шум, дрейф). Как нам 'усреднить' оценку Q по всем имеющимся измерениям? Интересует 'оптимальность' оценки именно на всем наборе точек.

Вот берите все несколько тыс. точек и рассчитывайте по ним оценку. Только всет строчки, образющие матрицу X должны быть различны, иначе получите плохо обусловленную систему уравнений. Если вектор параметров q дрейфует, то тут есть только два пути. Первый - расширить список оцениваемых параметров за счет модели систематического дрейфа. Второй - выделить во всем наборе данных отрезки, на которых вектор q почти стационарен и рассматривать оценку этого вектора только внутри тех отрезков, на которых она была получена.
RHnd
Хм. Возникает две подзадачи.
1) Есть матрица X размерностью N на M, где N- несколько тысяч отсчетов, M - число неизвестных. Как объяснить матлабу, что из матрицы X нужно выбрать подматрицу X0 размерностью не менее N0 на M, чтобы она была хорошо обусловлена?
2) Как можно модифицировать этот метод, чтоб он стал иттерационным и не требовал хранить в памяти все прошлые измерения? Т.е. получить Q(k+1) от Q(k), Y(k), X(k)?
NickNich
Цитата(RHnd @ Sep 10 2008, 19:03) *
Хм. Возникает две подзадачи.
1) Есть матрица X размерностью N на M, где N- несколько тысяч отсчетов, M - число неизвестных. Как объяснить матлабу, что из матрицы X нужно выбрать подматрицу X0 размерностью не менее N0 на M, чтобы она была хорошо обусловлена?

Можно прямым перебором. Выбираете подматрицу нужного размера, и передаете ее в функции типа rank() или cond() (насчет последней не уверен, нужно хелп читать). Если подматрица близка к вырождению, то выбираете следующий набор строк и так далее...

Цитата
2) Как можно модифицировать этот метод, чтоб он стал иттерационным и не требовал хранить в памяти все прошлые измерения? Т.е. получить Q(k+1) от Q(k), Y(k), X(k)?

Поищите в инете "последовательный МНК". Должно быть что-то вида:

q(k)= q(k-1) + K(y(k) - x(k)*q(k-1)), где K = R(k)*x(k)',
R(k) = (X(k-1)'*X(k-1)+x(k)'*x(k))^-1 =(R(k-1)^-1+x(k)'*x(k))^-1

Перед очередной итерацией нужно обновлять матрицу R.
petrov
Эта задача решается с помощью адаптивной фильтрации, вот простенький пример в симулинке:
http://electronix.ru/forum/index.php?s=&am...st&p=468489

Теория:

Уидроу Б.,Стринз С.
Адаптивная обработка сигналов.
http://lord-n.narod.ru/download/books/walla/dsp/uidrou.djvu

Paulo S.R. Diniz
Adaptive Filtering Algorithms and Practical Implementation
Third Edition
http://rapidshare.de/files/39623696/Adapti..._Diniz.pdf.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.