Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Корреляционная матрица
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
otshelnik86
Можно ли использовать фильтр Винера в качестве адаптивного фильтра, т.е. обновлять корреляционную матрицу и вектор взаимных корреляций непрерывно для каждого отсчёта?

Стоит задача подавления шума с помощью адаптивного фильтра.

Нашел один автореферат к диссеру - там приведены алгоритмы. Автор пишет, что для подавления шума использовал следующие алгоритмы:
- МНС (методу наискорейшего спуска);
- НОМ (непосредственного обращения ковариационной матрицы);
- МСКО (миним. среднеквадратической ошибки).

МНС понятно - алгоритм LMS для стационарного сигнала. А вот НОМ - это как раз то, что я спросил, т.е. непрерывное обновление коэф. фильтра за счет обновления корреляц. матрицы? МСКО - это вообще критерий... Или есть алгоритм?

Как найти корреляц. матрицу для стационарного процесса я знаю, а как для нестационарного?

Спасибо.
DRUID3
Цитата(otshelnik86 @ Mar 3 2009, 21:00) *
Можно ли использовать фильтр Винера в качестве адаптивного фильтра, т.е. обновлять корреляционную матрицу и вектор взаимных корреляций непрерывно для каждого отсчёта?


Фильтр Винера это и есть истинный адаптивный фильтр если так можно выразиться - никаких ложных оптимумов. smile.gif . Все остальные - это компромисс. Но почему же на него идут? Ну а Вы в состоянии "прикинуть в уме" вычислительную сложность фильтра Винера?

Цитата(otshelnik86 @ Mar 3 2009, 21:00) *
Стоит задача подавления шума с помощью адаптивного фильтра.

Круто... Это как в курилке вопрос "а используете ли вы математику..." Это я к тому что ужасно общий вопрос. Шум шуму рознь, если можно так выразиться. И в отдельном конкретном случае уменьшение вычислительной сложности может быть просто астрономически-качественным. Собственно тем и промышляем rolleyes.gif ...

Цитата(otshelnik86 @ Mar 3 2009, 21:00) *
Нашел один автореферат к диссеру - там приведены алгоритмы. Автор пишет, что для подавления шума использовал следующие алгоритмы:
- МНС (методу наискорейшего спуска);
- НОМ (непосредственного обращения ковариационной матрицы);
- МСКО (миним. среднеквадратической ошибки).

МНС понятно - алгоритм LMS для стационарного сигнала. А вот НОМ - это как раз то, что я спросил, т.е. непрерывное обновление коэф. фильтра за счет обновления корреляц. матрицы? МСКО - это вообще критерий... Или есть алгоритм?

Не знаю не читал, тяжело понять с "пересказа" что хотел сказать аФФтАр. Если можно - ссылочку.

Цитата(otshelnik86 @ Mar 3 2009, 21:00) *
Как найти корреляц. матрицу для стационарного процесса я знаю, а как для нестационарного?

ммм...!? wacko.gif 07.gif
Цитата(otshelnik86 @ Mar 3 2009, 21:00) *
Спасибо.

Нифигасе... а деньги де? 07.gif Шютка...
otshelnik86
Цитата(DRUID3 @ Mar 3 2009, 21:20) *
Фильтр Винера это и есть истинный адаптивный фильтр если так можно выразиться - никаких ложных оптимумов. smile.gif . Все остальные - это компромисс. Но почему же на него идут? Ну а Вы в состоянии "прикинуть в уме" вычислительную сложность фильтра Винера?

я так и представлял. Согласен, вычислительная сложность просто сумасшедшая.

Цитата(DRUID3 @ Mar 3 2009, 21:20) *
Круто... Это как в курилке вопрос "а используете ли вы математику..." Это я к тому что ужасно общий вопрос. Шум шуму рознь, если можно так выразиться. И в отдельном конкретном случае уменьшение вычислительной сложности может быть просто астрономически-качественным. Собственно тем и промышляем rolleyes.gif ...

пространственная обработка. Основной канал - с сигналом и помехой и дополнительный канал - с помехой.

Цитата(DRUID3 @ Mar 3 2009, 21:20) *
Не знаю не читал, тяжело понять с "пересказа" что хотел сказать аФФтАр. Если можно - ссылочку.

к сожалению он в бумаге...((

а как насчет корреляц. матрицы нестац. процесса?
alex_os
Цитата(otshelnik86 @ Mar 3 2009, 22:00) *
- МСКО (миним. среднеквадратической ошибки).


скорее всего это LMS.

Цитата(otshelnik86 @ Mar 3 2009, 22:00) *
Как найти корреляц. матрицу для стационарного процесса я знаю, а как для нестационарного?


Для не стационарного сигнала нужно бить его на блоки такого размера, чтобы можно было считать сигнал стационарным в пределах блока. Оценивать корреляционные матрицы и считать коэф. фильтра один раз на
блок.
otshelnik86
Цитата(alex_os @ Mar 3 2009, 21:47) *
скорее всего это LMS.

но насколько я понимаю, метод наискорейшего спуска - это и есть LMS... В принципе, это не суть...

Цитата(alex_os @ Mar 3 2009, 21:47) *
Для не стационарного сигнала нужно бить его на блоки такого размера, чтобы можно было считать сигнал стационарным в пределах блока. Оценивать корреляционные матрицы и считать коэф. фильтра один раз на
блок.

если например, фильтр порядка 32. Это ведь можно считать блоком? Т.е. получается, находить матрицу как для стационарного процесса?
DRUID3
Цитата(otshelnik86 @ Mar 3 2009, 21:37) *
пространственная обработка. Основной канал - с сигналом и помехой и дополнительный канал - с помехой.

Опять же - канал с помехой абсолютной той которая идет в основной канал? Или просто позволяет дать оценку(например средняя мощность на интервале) помехе основного канала? Здесь тоже пропасть...

Цитата(otshelnik86 @ Mar 3 2009, 21:37) *
к сожалению он в бумаге...((

тайны мадридского двора, я понимаю wink.gif
Цитата(otshelnik86 @ Mar 3 2009, 21:37) *
а как насчет корреляц. матрицы нестац. процесса?

ммм... я немного не понимаю как Вы себе это представляете. Окно (1-D, 2-D... n-D) движется. С приходом каждого нового (и потерей выбывающего) отсчета абсолютно все пересчитывается заново - включая корреляционную матрицу. Очевидно, что при нестационарном процессе все будет постоянно пересчитываться. Если же намереваетесь для уменьшения количества вычислений сделать какую либо "оценку" то это уже будет не Винер...

Цитата(alex_os @ Mar 3 2009, 21:47) *
Для не стационарного сигнала нужно бить его на блоки такого размера, чтобы можно было считать сигнал стационарным в пределах блока.

При этом половина фильтра переносится в моСК самого проектировщика и теряет связь с понятием фильтра Винера.
Цитата(alex_os @ Mar 3 2009, 21:47) *
Оценивать корреляционные матрицы и считать коэф. фильтра один раз на
блок.

Почему это блок? Скорее всего у Вас была задача которую можно так было решить.(как, например, поступают в голосовых вокодерах - делая это в ущерб качеству но ущерб допустимый, подобранный экспериментальным путем) Но все-таки на каждый новый семпл (отсчет) а не блок...
otshelnik86
Цитата(DRUID3 @ Mar 3 2009, 21:57) *
Опять же - канал с помехой абсолютной той которая идет в основной канал? Или просто позволяет дать оценку(например средняя мощность на интервале) помехе основного канала? Здесь тоже пропасть...

да, с той же помехой. Две антенны - одна направленная - для полезного сигнала и помехи, принимаемой по боковым лепесткам и вторая - ненаправленная - для принятия помехового сигнала. В аналоговой форме - это классический автокомпенсатор помех. Возникла идея использовать адаптивный алгоритм для компенсации помех. (Диплом rolleyes.gif )

Цитата(DRUID3 @ Mar 3 2009, 21:57) *
тайны мадридского двора, я понимаю wink.gif

да нет, я просто накопал его в библиотеке и отксерил.

Цитата(DRUID3 @ Mar 3 2009, 21:57) *
ммм... я немного не понимаю как Вы себе это представляете. Окно (1-D, 2-D... n-D) движется. С приходом каждого нового (и потерей выбывающего) отсчета абсолютно все пересчитывается заново - включая корреляционную матрицу. Очевидно, что при нестационарном процессе все будет постоянно пересчитываться. Если же намереваетесь для уменьшения количества вычислений сделать какую либо "оценку" то это уже будет не Винер...

скорее всего я чего-то не понимаю(((.
Судя из ваших слов, для стационарного сигнала мы можем рассчитать КМ только один раз, определить коэф. фильтра и всё. Т.е. можно не пересчитывать коэф.? Т.е. матрица будет постоянна для стац. сигнала?
Для нестационарного же КМ будет постоянно меняться? Именно поэтому мы и должны её рассчитывать на каждом отсчете?
DRUID3
Цитата(otshelnik86 @ Mar 3 2009, 22:05) *
...Диплом rolleyes.gif ...

Епрст... biggrin.gif
Нельзя так пугать людей... biggrin.gif
Цитата(otshelnik86 @ Mar 3 2009, 22:05) *
скорее всего я чего-то не понимаю(((.
Судя из ваших слов, для стационарного сигнала мы можем рассчитать КМ только один раз, определить коэф. фильтра и всё. Т.е. можно не пересчитывать коэф.? Т.е. матрица будет постоянна для стац. сигнала?
Для нестационарного же КМ будет постоянно меняться? Именно поэтому мы и должны её рассчитывать на каждом отсчете?

Да, потому, что постоянно будет меняться "ситуация" на интервале рассмотрения - по сути все время это уже новая функция.
otshelnik86
Цитата(DRUID3 @ Mar 3 2009, 22:08) *
Да, потому, что постоянно будет меняться "ситуация" на интервале рассмотрения - по сути все время это уже новая функция.

ок))) уже появляется свет)))
а как матрица будет выглядеть и как её посчитать?
Ведь для стац. проц. - это тёплицева матрица. А для нестац.? Или она тоже будет иметь такой же вид, но просто постоянно обновляться?
alex_os
Цитата(DRUID3 @ Mar 3 2009, 22:57) *
При этом половина фильтра переносится в моСК самого проектировщика и теряет связь с понятием фильтра Винера.

Почему это блок? Скорее всего у Вас была задача которую можно так было решить.(как, например, поступают в голосовых вокодерах - делая это в ущерб качеству но ущерб допустимый, подобранный экспериментальным путем) Но все-таки на каждый новый семпл (отсчет) а не блок...


Если нельзя считать сигнал стационарным на каком-либо отрезке, то скорее всего задача не решаемая smile.gif, либо чтобы посчитать корреляционную матрицу нужно знать многомерную PDF smile.gif. Насчет того что упоминать всуе Винера здесь не корректно полностью согласен.


Цитата(otshelnik86 @ Mar 3 2009, 23:12) *
ок))) уже появляется свет)))
а как матрица будет выглядеть и как её посчитать?
Ведь для стац. проц. - это тёплицева матрица. А для нестац.? Или она тоже будет иметь такой же вид, но просто постоянно обновляться?

А как Вы для стационарного процесса, эту самую, теплицеву матрицу собирались находить?
otshelnik86
Цитата(alex_os @ Mar 3 2009, 22:21) *
А как Вы для стационарного процесса, эту самую, теплицеву матрицу собирались находить?


имеем блок отсчетов входного сигнала x[n] длиной N.
Корр. матрица имеет вид:
____| rx(0) rx*(1) rx*(2) ... rx*(N-1) |
____|
____| rx(1) rx(0) rx*(1) ... rx*(N-2) |
____|
____| rx(2) rx(1) rx(0) ... rx*(N-3) |
____|
Rx = | ... ... ... ... ... |
____|
____| rx(N-1) rx(N-2) ... ... rx(0) |



где rx(m) = sum{x*[n] * x[m+n]} n=0...N-1
alex_os
Цитата(otshelnik86 @ Mar 3 2009, 23:31) *
имеем блок отсчетов входного сигнала x[n] длиной N.
Корр. матрица имеет вид
rx(0) rx*(1) rx*(2) ... rx*(N-1)....


Для нестационарного сигнала точно также считать, только размер блока удачно выбрать. Последовательный блоки могут перекрываться или там окно какое-нибудь наложить на x, вообщем, большой простор для творчества.
DRUID3
Цитата(alex_os @ Mar 3 2009, 22:21) *
Если нельзя считать сигнал стационарным на каком-либо отрезке, то скорее всего задача не решаемая smile.gif

Да, но условие стационарности "сверху" ограничивает частота Найквиста-Котельникова. Именно отсюда и минимально возможный(хотя и не всегда нужный) шаг адаптации в один отсчет. Но это вообще-то очевидно и я описываю общий "книжный" случай. smile.gif
Цитата(alex_os @ Mar 3 2009, 22:21) *
либо чтобы посчитать корреляционную матрицу нужно знать многомерную PDF smile.gif.

Именно, я об этом же...

Цитата(otshelnik86 @ Mar 3 2009, 22:12) *
Ведь для стац. проц. - это тёплицева матрица. А для нестац.? Или она тоже будет иметь такой же вид, но просто постоянно обновляться?

ммм... давайте скажем так - представьте, что с каждым новым отсчетом Вы работаете с совершенно независимым, стационарным сигналом - раз Вам так легче представлять. Это, разумеется, общий случай.

Но подождите ка, otshelnik86, я тут подумал и вообще потерял нить разговора. А что собственно "адаптировать"? wacko.gif wacko.gif wacko.gif Взяли сигнал помехи и вычли из сигнала простой операцией "-" умноженный на коэффициент 07.gif . Что должно адаптироваться? Антенны то (пусть даже сменные) в течении одного сеанса связи - стационарны. Или надо, например, "подобрать"(адаптировать) влияние угла поворота антенны с острой ДН на ДН(диполь, например) ненаправленной антенны? Просто иначе это будет адаптивный фильтр с одним отводом 07.gif типа S = Santpar - Santgp*h и вот это то h и надо подобрать, выходит? Тогда, легче перебрать с определенным шагом biggrin.gif . И Винер, Вам, скорее всего, задали именно чтобы не влезть в локальный минимум.

Только не говорите что я - прав и звено у требуемого фильтра только одно. Я не хочу знать смогу ли я пережить такой удар судьбы biggrin.gif ... шутка...
otshelnik86
Цитата(DRUID3 @ Mar 3 2009, 23:20) *
Да, но условие стационарности "сверху" ограничивает частота Найквиста-Котельникова. Именно отсюда и минимально возможный(хотя и не всегда нужный) шаг адаптации в один отсчет. Но это вообще-то очевидно и я описываю общий "книжный" случай. smile.gif

Именно я об этом же...


ммм... давайте скажем так - представьте, что с каждым новым отсчетом Вы работаете с совершенно независимым, стационарным сигналом - раз Вам так легче представлять. Это, разумеется, общий случай.

Но подождите ка, otshelnik86, я тут подумал и вообще потерял нить разговора. А что собственно "адаптировать"? wacko.gif wacko.gif wacko.gif Взяли сигнал помехи и вычли из сигнала простой операцией "-" умноженный на коэффициент 07.gif . Что должно адаптироваться? Антенны то (пусть даже сменные) в течении одного сеанса связи - стационарны. Или надо,например, "подобрать"(адаптировать) влияние угла поворота антенны с острой ДН на ДН(диполь, например) ненаправленной антенны? Просто иначе это будет адаптивный фильтр с одним отводом 07.gif типа S = Santpar - Santgp*h и вот это то h и надо подобрать, выходит? Тогда, легче перебрать с определенным шагом biggrin.gif . И Винер, Вам, скорее всего, задали именно чтобы не влезть в локальный минимум.

Только не говорите что я - прав и звено у требуемого фильтра только одно. Я не хочу знать смогу ли я пережить такой удар судьбы biggrin.gif ...

нет, я не настолько жестокий)))))

давайте тогда подробно попробую объяснить чего мне хочется)))) Винера мне не задали. Сам копаюсь.
===========================================
По Сергиенко "ЦОС" 2-е изд. Глава "Адаптивные фильтры". с.589 - 592

Входной сигнал x[n] - сигнал с доп. антенны (ДК) - содержит помеху;
образцовый сигнал d[n] - сигнал с основной антенны (ОК) - содержит слабый полезный сигнал и помеху, принимаемую по БЛ ДНА (бок. лепесткам диаграммы направленности антенны);
сигнал ошибки e[n] - насколько я понимаю, должен содержать выделенный полезный сигнал
....
приходим к уравнению Винера w = (R^-1) * p
R - квадратная матрица, являющаяся корреляционной матрицей сигнала. R = E{x(n) * xT(n)} (xT - транспонированный)
p - вектор-столбец взаимных корреляций между k-ым отсчетом образцового сигнала и содержимым линии задержки на k-ом шаге.
...
т.е. в этом случае мы получим минимум среднего квадрата ошибки e[n]. Сигнал ошибки фильтра Винера некоррелирован со входным и выходным сигналами фильтра (т.е. это полезный сигнал).

с.180 там же:
.... если процесс нестационарный, то элементы матрицы могут быть различными. В случае стационарного процесса КМ полностью определяется своими первыми строкой и столбцом.

===========================================
вот поэтому я и пришел к выводу, что можно промоделировать такой способ компенсации. Я не спорю, вычислительные затраты - сумасшедшие, надо на каждом шаге вычислять обратную КМ.
Компенсатор не для канала связи, а для РЛС кругового обзора. Постоянное сканирование пространства.

может я туплю и не совсем верно понимаю, но мне интересно...
petrov
А когда диплом то сдавать? ИМХО не время исследованиями заниматься, можно и не успеть. Данная задача наверняка решена, литературу просто поискать. Хотя бы Уидроу читали? Матрицы никто не обращает, есть куча всяких быстрых алгоритмов. Я так понимаю что алгоритм должен успевать настраиваться за поворотом антенны, а если помеха импульсная то переходный процесс по любому будет.
otshelnik86
Всем ОГРОМНОЕ СПАСИБО за помощь и внимание! Буду что-нить крутить, может, получится))))
DRUID3
Цитата(otshelnik86 @ Mar 6 2009, 00:06) *
Всем ОГРОМНОЕ СПАСИБО за помощь и внимание! Буду что-нить крутить, может, получится))))

biggrin.gif нет уж, постойте-постойте... Очень прошу в подробностях описать работу вашей системы. Я так и не догнал что и с какой скоростью будет адаптироваться... Диплом то не секретный, я так думаю...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.