Кросс – функция неопределенности: два способа получения

В применении к задачам пассивной радиолокации, в конечном счете двумерное изображение радиолокационной обстановки формируется с помощью кросс – функции неопределенности (ФН):

\Psi(\tau,f) = \sum_{t}\,s(t + \tau)\, r^*(t)\,e^{j2\pi ft} (1)

Приставка “кросс” означает, что в отличие от классической ФН одного сигнала, выражение содержит взаимную функцию неопределенности сигнала s(Δt, Δf), переотраженного от цели с приобретенной задержкой Δt и доплеровским сдвигом частоты Δf, и опорного сигнала r(), формируемого местным радиоокружением (базовой станцией).

Каким образом посчитать это выражение? Существует два подхода к этой задаче; они определяются тем, каким образом мы представляем физический смысл этого соотношения. Рассмотрим два варианта группировки элементов выражения (1) – A и B, которая отражает наше представление о том, каким образом производится обработка сигналов:

Кросс - функция неопределенности, Cross Ambiguity Function

План A: перебор в частотной области

Начнем с представления A. В этом представлении, помеченным синим цветом, формула представляет собой в чистом виде запись корреляционной функции двух сигналов. Первый сигнал – это сигнал цели s(), сдвинутый по частоте на величину f с помощью экспоненциального множителя. Второй сигнал – комплексно-сопряженный опорный r().

Тогда алгоритм нахождения двумерной кросс-ФН получается таким: для каждой частоты f находим корреляционную функцию сигнала цели, смещенного на частоту f, и опорного сигнала. Набор таких корреляционных функций в пространстве частот f составит 2D пространство кросс-ФН.

Поскольку наш алгоритм рано или поздно заземлится на определенной аппаратной платформе, что предусматривает наличие эффективного вычислителя БПФ, будем искать корреляционные функции не в лоб, а с использованием преобразования Фурье. Псевдокод на Питоне/numpy, соответствующий сценарию A, будет выглядеть следующим образом:

БПФ для опорного сигнала ref вычисляется только один раз, поскольку он не меняется по ходу действа. Сдвинутый по частоте сигнал rot подвергается преобразованию Фурье и перемножается с комплексно – сопряженным БПФ опорного сигнала. Корреляционная функция находится как обратное БПФ этого произведения.

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

В результате, матрица af будет содержать набор корреляционных функций для каждой частоты f, то есть кросс – функцию неопределенности. Данный метод можно назвать методом с перебором в частотной области.

План B: перебор во временной области

У нас в запасе есть еще план B, отмеченный красным цветом. При такой группировке произведение s()r() выглядит как самостоятельная функция, и тогда все выражение до боли напоминает преобразование Фурье от этой функции. Да что там напоминает – так оно и есть. Мы должны выполнить столько БПФ, сколько временных задержек сигнала мы собираемся рассматривать. При этом никакого обратного БПФ выполнять не нужно.

Алгоритм на псевдокоде будет использовать перебор во временной области:

В данном сценарии, БПФ используется столько раз, сколько используется временных задержек сигнала, представляющих интерес.

A vs B

С точки зрения быстродействия сценарий B выглядит поинтереснее, хотя с точки зрения физического смысла выполняемой обработки сигнала он не такой прозрачный, как сценарий A. Мы упустили из виду еще один существенный фактор, влияющий на время выполнения: размер выборки для операции БПФ.

Для плана A размер выборки – это длительность сигнала на временной оси, для плана B – пространство наблюдаемых доплеровских сдвигов частоты. Соотношение размеров этих выборок будет определяться тем, какие диапазоны дальности и скорости целей будут представлять для нас интерес, а какие необходимо будет исключить.

И в этой ситуации сопоставление эффективности этих сценариев становится не таким простым делом…

 

20 comments to Кросс – функция неопределенности: два способа получения

  • Евгений

    Лютый матан ;-).Я так пытаюсь пробовать автоматически контролировать радиоканалы по БПФ и прочему – и то голову сломал – а тут просто математическое вуду какое-то.

  • Lao

    Куда от него денешься )

    Контроль радиоканалов на соответствие того что ушло в антенну тому что сказали в микрофон? Помнится давно разрабатывал такую плату, делал на ней коррелятор. Возможности были ограничены – только логические микросхемы и операционники, но все работало. Проверял на стереопроигрывателе: режим стерео – горит красным, значит разные аудиопотоки, моно – горит зеленым )

  • Евгений

    Типа того ;-). Выход с мультиплексора с выходом приемника, + надо добавить кучу сигналов с приемника/передатчика – открытие ПШ/запуск ПРД(отслеживание помех). Как-то думается все сделать на компьютере(звуковая карта)+какая-то arduino, т.к. запись сама по себе желательна. Думал попробовать даже скормить какому то сервису распознавания речи (чтоб насторожиться если есть фраза “Как меня слышите?”), но тут пока результаты не очень, чисто отдельные слова удается распознать (хотя кач-во записи было сильно не очень), + проблема, что нужна будет языковая модель не английского или русского, а “русского английского” или даже “китайского английского”. Тут вроде только корреляция нужна, но и спектр там и там, чтоб отличать речь/помеху. Как-то так, школьная поделка.

  • Евгений

    Как бы вариант на ОУ весьма прост, дешев и нагляден (горит светодиод и все) + точно не будет проблем с синхронизацией(при записи на разные входа аудиокарт точно будет какое-то отличие в начале записи), правда я малость не понимаю как его сделать (просто ОУ с обратной связью и на какой-логике собирать выход с ОУ?), и проблема с просто приемом – т.е. есть нечто с приемника(его не с чем сравнить – нет варианта речи экипажа), надо определить помеха это или разговор и прочая.

  • 1slon

    Думается стоит начать с анализа огибающей, затем анализ спектра. Попробовать из реального радиообмена нарезать некоторые “маски”, которые потом накладывать.

    • Евгений

      Реальный радиообмен хоть и стандартизирован, но все таки сильно уж зависит от много чего. Как бы даже во радиобмене может быть вообще коктейль из разных языков. Иностранные пилоты в конце скажут “До свиданья” по русски, наши диспетчера могут и на иврите чего-либо назад ответить. Поздравления с праздниками и т.д. и т.п. Радиобмен с вертолетами часто на фоне гула турбины двигателя и т.д. Надо пробовать ;-).

    • Lao

      Да, это хороший вариант, по этому поводу отписался ниже

  • Lao

    Да, когда не знаешь что должно уйти в эфир- задачка усложняется )

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

    Тогда распознавание речи можно было выполнить небольшим количеством фильтров, сделанных на блоках БПФ, каждый из которых выделял определенный спектр речи, а выход фильтров просто пропустить через пороговый детектор. Если к примеру таких фильтров – 4 штуки, то получим 4 логических выхода, уровни которых меняются во времени определенным образом. Путем практических экспериментов можно было определить сигнатуру, которая отличает речь от шума или помехи.

    Ардуино – легкая и доступная платформа, но если есть навыки программирования- лучше использовать Raspberry Pi: возможностей больше, к тому же можно сделать быстродействующую реализацию БПФ на видеочипе.

    • Евгений

      Каналов надо много контролировать (6-8 как минимум, резервные каналы надо тоже), т.е. все равно какую-то пачку АЦП ставить, мне так подумалось, что ардуина чисто пишет-цифрует и куда отправляет полученное, а там дальше хоть малинка, хоть что-то из разряда miniITX или как там.
      Сервисов по распознаванию речи много(и с цепями Маркова вроде), и так я проверял только работу экипажа ВС, распознавалось плохо. Но сильно кач-во записи плохое было + это был вертолет, сильно шумно было(шум так же перед распознаванием как-то убирают, хотя можно и самому обработать запись). Т.е. надо дорабатывать напильником.

      • Lao

        При полосе 3400 Гц в тракте приема частота выборки АЦП будет около 7 кГц. Это достаточно низкое значение, можно оставить всего один АЦП на частоту выборки положим 7х16 = 112 кГц и к нему аналоговый коммутатор, который будет подключать выходы 16-ти радиоприемных устройств к АЦП последовательно.

        Эта задача под силу звуковой карте с частотой выборки 192 кГц.

        В таком варианте увеличение канальности не ведет к избыточности оборудования, просто у мультиплексора добавляется определенное количество входов.

        • Евгений

          Вот не очень нравиться кач-во записи по такой схеме(комплексы документирования так и делаются вроде(или делались) – хотя там вместо аудиокарты плата более серьезного АЦП стоит). Хотя, возможно, я столкнулся с неудачной реализацией этой схемы или запись сильному сжатию подвергалась(что скорее всего, 2004 года оборудование). Тут главное идею на готовых записях в виде звуковых файлов откатать(записать на звуковую карту приемник-мультиплексор) – а выбор аппаратной реализации можно отложить.

          • Lao

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

            Также можно сделать множество роликов с записью сигналов и помех и поэкспериментировать на PC, прежде чем выбирать аппаратную реализацию

  • Lao

    Вот еще вспомнил, у Texas Instruments есть аналогичная технология, которая использует их процессоры. Технология основана на другом подходе – цепях Маркова (помню когда-то изучали в курсе теории вероятности).

    Только здесь уже не определение факта присутствия речи, а действительное распознавание.

    Описание на англ.:
    http://www.ti.com/lit/an/spra100/spra100.pdf

  • Евгений, уточните, пожалуйста, задачу. Что необходимо – фиксировать факт радиообмена на контрольных приёмниках, распознавать смысл фраз, организовать контроль исправности локального АМ передатчика?

  • Евгений

    Завязка все в кучу – есть “тангента” должно быть открытие ПШ (проверка что тракт передачи работает), сравниваем сигнал до приемника и после спектральным анализом/корреляцией – делаем выводы (какие возможны, к примеру просто, фантазия бурная у меня). Открытие ПШ должно чередоваться с “тангентой” – иначе или отказ канала, или не отвечает борт (здесь смотрим по АРП, чередование пеленга на радиостанцию и ВС), или помеха. Распознавание речи – сразу подступиться не удалось (плоховато распознается, но я тему не развил), пока хватит и спектрального анализа(корреляции). Чувствую проблемы с языковыми моделями. В основном проверка радио-канала, фиксирование помех, аудио-запись радио-обмена чисто как бонус. Поделка ;-).

    • Евгений

      Программ-сервисов распознавания речи много, если будут качественные звуковые файлы записи радио-обмена(не какие-то закрытые форматы производителей комплексов документирования), то просто скриптом каким скормить их программе распознавания и как бы все. Модель языка натренировать попробовать – хотя тут проблем много будет, наверное.

  • ИМХО, надёжно будет работать только самоконтроль передатчика – сравнение сигнала с микрофона и контрольного приёмника просто по огибающей амплитуды, хотя можно и спектра.
    А вот контроль ответа борта и распознавание речи , в условиях радиопомех, может давать много ложных срабатываний.
    А цель далее какая будет? Распознавание речи – это понятно, для документирования. А нераспознанный ответ борта – к чему приведёт в Вашей системе?

    • Евгений

      Распознавание – сильно вторичная задача, ложных срабатываний будет много, это понятно – вроде по распознаванию – 80% где-то так(голосовые меню много лучше – но там набор фраз ограничен очень). Тут по принятому ответу борта можно более сложные критерии выстраивать – просто проверить ответ ВС на какие-либо статистические гипотезы – если явно не шум,то и ладно(хотя и помехи бывают тоном чисто). Если после ответа ВС диспетчер ответил(а там помех мало), и там нет фразы о переспросе(предположу, что распознается лучше, но сильно не факт) – то ок.
      Распознавание так – так, чисто модная, мало кому нужная, плохо работающая фишка ;-). Тут хотя бы контроль передатчика запилить.

  • Николай

    все классно разложил, а сумма которая есть в формуле где учтена в псевдокоде? ()

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">