Модель окружения алгоритма оценивания отношения сигнал-шум — различия между версиями
Korogodin (обсуждение | вклад) (→Пример исполнения) |
Korogodin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 14: | Строка 14: | ||
|repository = [http://code.google.com/p/gnss-qcno-estimator/ Google Code] | |repository = [http://code.google.com/p/gnss-qcno-estimator/ Google Code] | ||
|category1 = Коррелятор | |category1 = Коррелятор | ||
− | |category2 = | + | |category2 = НИИ КП |
− | |category3 = | + | |category3 = Оценивание сигнал/шум |
|category4 = | |category4 = | ||
|category5 = | |category5 = |
Текущая версия на 15:07, 25 апреля 2013
![]() | |
---|---|
![]() | |
Описание | Тестбенч для алгоритма оценивания сигнал/шум + реализация алгоритма на Си |
Автор(ы) | 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
, а так же добавить команды вызова функции инициализации, когерентного накопления и управления приемником по результатам измерений в проект.