Как стать автором
Обновить

Комментарии 4

Оценить метод мне вот так с наскока сложно. Надо углубляться в математику. Выскажу только общие соображения, исходя из своего опыта работы с разными сигналами на протяжении жизни.

В параметрических методах спектральной оценки (Юла-Уолкера, Берга, уравнения линейного предсказания) я как-то разочаровался. Да, они дают интересные результаты при малой доступной продолжительности записи сигнала. Но этим результатам трудно придать реальный физический смысл, они подвержены искажениям. Ну и, если исходный сигнал не является авторегрессионным процессом (к примеру, физическая модель другая) — то тоже результаты сомнительные.

В последнее время я придерживаюсь следующего подхода при спектральном анализе:

1) Если запись длинная, и сигнал стационарный — то использовать периодограмму Вельха (Welch Periodogram), оконная функция не критична, если только не требуется выжать из этого метода последние крохи разрешения. Тогда можно еще её поварьировать и посмотреть на результаты.

2) Если запись короткая — то обычно это означает, что сигнал нестационарный. Понятие спектрального анализа вообще неприменимо к таким сигналам, и попытка схитрить (=параметрические методы) является по сути гаданием на кофейной гуще. Для нестационарных сигналов применимы методы времячастотного анализа — Wavelet, Reassigned Spectrogram, Cohen's class и т.д.

3) Всегда стараться получить по возможности точную математическую модель конкретного процесса. И оценивать реальный спектр и другие характеристики сигнала уже по ней.

О методе MUSIC я читал в книге С.Л. Марпл-мл. «Цифровой спектральный анализ и его приложения», но как-то не впечатлило даже по описанию. Может быть, вы подскажете какие-нибудь преимущества данного метода над остальными (АР и т.д.)? И вообще у Марпла много ошибок в книге. Ошибки имеются как в фортран-программах, так и в тестовых наборах исходных данных и результатах их обработки. Когда учился в вузе, то я не знал, как вообще искать такие ошибки в программах, реализующих численные методы. Потерял кучу времени на отладку, но так и не получил обещанных алгоритмов. А недавно поднял старые архивы, позапускал программы, сравнил данные с обработкой в Матлабе и таблицы из книги, и понял, что дело швах.
MUSIC работает на довольно специфических процессах — типа суммы нескольких синусоид и очень незначительные шумы. Он очень-очень сходен с АР. Грубо говоря, работает, когда «авторегрессионность» процесса «зашкаливает».
Вот никогда готовые скрипты из Марпла (и не из Марпла) не рисковал использовать — лучше самому сначала вникнуть, потом скрипт писать.
Спасибо Вам за дополнения! :)

Небольшой ответный комментарий:
По поводу RootMUSIC я и не предполагал «сэкономить» на вычислениях собственных векторов — основная разница между MUSIC и RootMUSIC, насколько я понимаю, состоит в способе нахождения оных.

image

Haykin S. S., Liu K. J. R. Handbook on array processing and sensor networks. – New York: Wiley, 2009. – c. 51-52.

Да, это в большей степени вопрос теории; на практике, как вы правильно, отметили достаточно найти пики (максимумы), а уж спект перед нами или псевдоспектр — дело не самое важное. Поправьте, если я не прав — честно признаюсь, с RootMUSIC я знаком шапочно.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.