Модель окружения алгоритма оценивания отношения сигнал-шум

Материал из SRNS
Перейти к: навигация, поиск
Список всех моделей
Crystal Clear action run.png
Модель окружения алгоритма оценивания отношения сигнал-шум
20111122 SNR1.png
Описание Тестбенч для алгоритма оценивания сигнал/шум + реализация алгоритма на Си
Автор(ы) Korogodin (Korogodinобсуждение)
Последняя версия 1.0 (11.10.2011)
Загрузить no link
Хранилище Google Code
Категории Коррелятор, НИИ КП, Оценивание сигнал/шум


Содержание

Описание модели

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

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

На модель возлагаются следующие функции:

  • Имитировать поведение квадратурных сумм с учетом динамики отношения сигнал/шум, навигационной информации, ошибок следящих систем и т.п. (с помощью matlab-модели или телеметрии работы реального приемника)
  • Передавать результат имитации (квадратурные суммы с заданной разрядностью) в Си-программу, имитирующую поток исполнения в соответствующем приемнике, которая бы использовала универсальные функции блока оценивания сигнал/шум, а так же передавала в Матлаб результат вычислений.
  • С помощью матлаба обрабатывать результаты оценивания сигнал/шум, выводить характеристики по точности и т.п.

Алгоритм блока измерения отношения сигнал/шум предлагается максимально унифицировать.

Для этого:

  • Выделить блок установки режима и параметров
  • Выделить блок когерентного накопления
  • Выделить блок некогерентного накопления
  • Выделить блок расчета необходимых параметров и управления (платформозависимый).

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

Ключевые элементы архитектуры

  • Скрипт scen_gen.m запускает генерацию указанных в нем сценариев. Генераторы сценариев представляют представляют собой отдельные скрипты, лежащие в каталоге scen_gen_cores. Результатом работы генератора сценариев становятся .mat-файлы, содержащие выборки квадратурных компонент и набор прочих полезных векторов:
    • Вектор I размера 1xK;
    • Вектор Q размера 1xK;
    • Параметр K - размер векторов;
    • InSync - флаг наличия синхронизации для каждого k-го такта;
    • FirstSync - импульс символьной синхронизации на первом такте символа;
    • LastSync - импульс символьной синхронизации на последнем такте символа;
    • Параметр SyncTemp - длительность одного символа в тактах;
    • Description - текст описания сценария;
    • qcno_ist - вектор отношения сигнал/шум, при которых производилось моделирование;
    • EpsW - вектор ошибок по частоте;
    • A_IQ - вектор значение амплитуды квадратур без учета рассогласований по параметрам;
    • A_IQ_eff - вектор значение амплитуды квадратур с учетом рассогласований по параметрам;
    • stdn_IQ - СКО шума квадратур;
    • Tc - интервал накопления в корреляторе;
    • Tf - интервал работы фильтра;
    • H - полоса СС за доплером.
  • Скрипт testbench.m запускает форму-интерфейс, в которой можно выбрать требуемый сценарий и передать его на выполнение в алгоритм оценивания отношения сигнал/шум.


Алгоритм оценивания

Описание алгоритма оценивания

Исследования показали эффективность скалярного метода оценивания отношения/сигнал шум. В данный момент его реализация заменила реализацию метода моментов.

Эквивалентная "Схема Beaulieu", если нам нужно посчитать только амплитуду - усредненное скалярное произведение векторов

Все оценки, для общности, приводятся к 1мс квадратурам. Оценка дисперсии квадратур устанавливается извне и дополнительно не оценивается - её ошибка не влияет на оценку квадрата амплитуды, а вклад в ошибку оценивания SNR мал.

Оценка квадрата амплитуды описывается моделью:

A^2_{IQ1, est} = A^2_{IQ1, effcos} + n_A,

где

A^2_{IQ1, effcos} = A^2_{IQ1} sinc^2 \left( \delta \omega T_{1ms}  K_c / 2 \right) cos \left( \delta \omega T_{1ms}  K_c  \right)  \rho^2 \left( \delta \tau \right)

- эффективная амплитуда (приведенная к 1 мс) квадратур с учетом полного когерентного накопления (K_c - число 1мс когерентных накоплений) и разницы между скалярным произведением и квадратом, A_{IQ1} = AL_{1ms}/2, n_A - СВ с нулевым математическим ожиданием и дисперсией

D_{SM} = \frac{4 A^2_{IQ1} \sigma^2_{IQ1} }{K_n K_c} + \frac{2  \sigma^4_{IQ1} }{K_n K^2_c}.

Скалярный метод дает смещенные оценки эффективной амплитуды. Смещение это вызвано тем, что мы измеряем не средний квадрат амплитуды квадратур, а среднее скалярное произведение векторов в соседние моменты времени. Отсюда возникает множитель в виде косинуса. Уменьшение эффективной амплитуды примерно такое же, как если бы мы увеличивали время когерентного накопления в 2.7 раза.

Уменьшение среднего скалярного произведения при расстройке частоты

Тем не менее, даже при таком уменьшении можно было бы работать по 20мс отсчетам, если бы не цифровая информация и большие ошибки по частоте.


Реализация алгоритма

Для использования алгоритма к проекту следует подключить файлы PowerMeasure.cpp и PowerMeasure.h, а так же добавить команды вызова функции инициализации, когерентного накопления и управления приемником по результатам измерений в проект.

Пример исполнения

В прошивке НИИ КП

Работа алгоритма в боевой прошивке НИИ КП (модель) при линейном снижении с/ш; артефакты при низком SNR - намечающийся срыв слежения; режим без учета ЦИ с 1мс когерентным накоплением
Те же условия, но 22 дБГц

См. также

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты