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

image
Иллюстрация автора упомянутой статьи

«Постановка задачи»

Коротко: нам надо как-то определить, откуда (под каким углом) приходит сигнал на решетчатую антенну. Чтобы потом ее подстраивать по направлению — но это уже не в этой «песне».

«Моделирование принятого сигнала»

image

(не суть важно — по-видимому, «символ» везде надо читать, как «сигнал»)

Здесь — осторожнее. Автор, похоже, работает с неким комплексным сигналом (пространственным). Хотя X, да, мог бы быть, как написано, матрицей «комплексных амплитуд» (зависеть не от координаты, а от пространственной частоты), но, например, XXH — это «ковариации», а не «спектральные плотности».

На матрицу «комплексных амплитуд» больше похожа S, с помощью которой моделируются гармонические составляющие (полезный сигнал). Ни аддитивные шумы, ни, похоже, даже гармонические составляющие аналитическим сигналом здесь не являются. Хотя гармоники, с оговорками, очень близки к этому.

image

«# Общая формула:
# sqrt(N0/2)*(G1 + jG2),
# где G1 и G2 — независимые гауссовские процессы.»

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

Не исключено, что есть «первоисточник», где работали с действительными X (принятый сигнал). Например, автор, похоже, очень стремился «сделать» получаемые спектры симметричными (четными) — во всех рассмотренных случаях тестовые сигналы заданы приходящими симметрично слева и справа.

«Условия»

Определили диапазон углов ? прихода сигнала, в котором есть смысл искать. Правда, потом графики строим всё равно почему-то от +90 до -90 град.

«Немного теории о самом методе»

Дополнение. MUSIC получается из авторегрессионного оценивания (из уравнений Юла-Уолкера) практически сам по себе, в случае, если дисперсия условного белого шума пренебрежимо мала. Результаты практически совпадают. Решение СЛАУ даже несколько экономичнее, чем поиск собственных векторов, но, кстати, по ряду соображений спектральное разложение ковариационной матрицы при ее плохой обусловленности по-любому производить бы очень желательно.

EVD, вообще-то, это просто = «нахождение собственных значений и векторов», и не более того. Не алгоритм.

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

image

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

Но… главное… вот теперь(!), наконец-то(!), мы смогли бы, логарифмируя корни, численно определить комплексные «импедансы» (полюса модели)(в уравнении — это опять ?, что не очень хорошо), которые нам своей мнимой частью покажут этот самый угол, под которым сигнал пришел. Вот очень жаль, что автор этого не сделал.

«Моделирование»

image

Вот немножко настораживает — сначала рассчитана матрица ковариаций R= XXH, про которую почему-то тут же на некоторое время забыли и начали все снова — раскладываем на сингулярные числа и вектора X. Обещали-то по тексту- искать собственные значения и вектора R, что, конечно, то же самое, но как бы логичнее, когда R уже нашли. Непонятно, с какой проблемой автор столкнулся.

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

Реально же смущает вот что. Размер «шумового подпространства» в скрипте, похоже, назначен волевым порядком (равным d). А мы же в реальном-то случае не знаем, сколько там в сигнале гармоник, а сколько — шумов. Вот надо было эти собственные значения-то проанализировать — какие из них пренебрежимо малы, какие -нет.

В целом, работа очень интересная, и не только для радиолокации. У метода, я считаю, большой потенциал, именно вот для таких типов сигнала. Автор поработал очень даже неплохо, а некоторые досадные нестыковки не так уж сложно исправить. И главное — вот дополнить бы статью методом RootMUSIC.

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


  1. MichaelBorisov
    09.06.2019 14:19

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

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

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

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

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

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

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


  1. crowncork Автор
    09.06.2019 14:44

    MUSIC работает на довольно специфических процессах — типа суммы нескольких синусоид и очень незначительные шумы. Он очень-очень сходен с АР. Грубо говоря, работает, когда «авторегрессионность» процесса «зашкаливает».
    Вот никогда готовые скрипты из Марпла (и не из Марпла) не рисковал использовать — лучше самому сначала вникнуть, потом скрипт писать.


  1. ritchie_kyoto
    10.06.2019 09:23

    Спасибо Вам за дополнения! :)

    Небольшой ответный комментарий:
    По поводу 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 я знаком шапочно.


  1. crowncork Автор
    10.06.2019 11:49

    Спасибо вам. :)