Модель окружения алгоритма оценивания отношения сигнал-шум — различия между версиями
Korogodin (обсуждение | вклад) (→Ключевые элементы архитектуры) |
Korogodin (обсуждение | вклад) (→Пример исполнения) |
||
Строка 100: | Строка 100: | ||
== Пример исполнения == | == Пример исполнения == | ||
+ | |||
+ | [[File:20120128_qcno1.png|thumb|600px|Работа алгоритма в боевой прошивке НИИ КП (модель) при линейном снижении с/ш; артефакты при низком SNR - намечающийся срыв слежения; режим без учета ЦИ с 1мс когерентным накоплением]] | ||
== См. также == | == См. также == |
Версия 21:38, 28 января 2012
Модель окружения алгоритма оценивания отношения сигнал-шум | |
---|---|
Описание | Тестбенч для алгоритма оценивания сигнал/шум + реализация алгоритма на Си |
Автор(ы) | 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
запускает форму-интерфейс, в которой можно выбрать требуемый сценарий и передать его на выполнение в алгоритм оценивания отношения сигнал/шум.
Алгоритм оценивания
Описание алгоритма оценивания
Исследования показали эффективность скалярного метода оценивания отношения/сигнал шум. В данный момент его реализация заменила реализацию метода моментов.
Все оценки, для общности, приводятся к 1мс квадратурам. Оценка дисперсии квадратур устанавливается извне и дополнительно не оценивается - её ошибка не влияет на оценку квадрата амплитуды, а вклад в ошибку оценивания SNR мал.
Оценка квадрата амплитуды описывается моделью:
где
- эффективная амплитуда (приведенная к 1 мс) квадратур с учетом полного когерентного накопления ( - число 1мс когерентных накоплений) и разницы между скалярным произведением и квадратом, , - СВ с нулевым математическим ожиданием и дисперсией
- .
Скалярный метод дает смещенные оценки эффективной амплитуды. Смещение это вызвано тем, что мы измеряем не средний квадрат амплитуды квадратур, а среднее скалярное произведение векторов в соседние моменты времени. Отсюда возникает множитель в виде косинуса. Уменьшение эффективной амплитуды примерно такое же, как если бы мы увеличивали время когерентного накопления в 2.7 раза.
Тем не менее, даже при таком уменьшении можно было бы работать по 20мс отсчетам, если бы не цифровая информация и большие ошибки по частоте.
Реализация алгоритма
Для использования алгоритма к проекту следует подключить файлы PowerMeasure.cpp
и PowerMeasure.h
, а так же добавить команды вызова функции инициализации, когерентного накопления и управления приемником по результатам измерений в проект.