День 4: Фільтрація даних — очищення сигналів з усмішкою
Лектор: Андрій Ніколаєв, кандидат технічних наук, старший науковий співробітник, лабораторія навігаційних систем
Дата: березень 2003 року
Вступ до фільтрації: дані теж люблять порядок
Уявіть, що ви на кухні готуєте навігаційний суп — так, суп, який допоможе вашому супутнику не загубитися в космосі! У День 3 студенти прийшли вчасно, і Андрій провів коротку лекцію, де ми зібрали інгредієнти: взяли сирі дані, очистили їх, додали псевдодальності й навіть легенько присмачили корекціями Саньяка. Натхненний цим успіхом, Андрій продовжив у День 4, показуючи, як зробити дані ще кращими. Сьогодні ми зануримося у фільтрацію: видалимо весь шум, щоб дані стали гладкими, як шовк, і обчислимо, наскільки вони «шумні». Час брати космічні ополоники — починаємо!
Фільтрація даних: математична швабра
1. Що ми фільтруємо і чому? Рятуємо псевдодальності
Беремо наші улюблені псевдодальності (\(S_{C/A}\), \(S_{L1}\), \(S_{L2}\)) та їхні швидкості (\(\dot{S}_{C/A}\), \(\dot{S}_{L1}\), \(\dot{S}_{L2}\)), а також фазові псевдодальності (\(\varphi_{L1}\), \(\varphi_{L2}\)) і їхні похідні. Це «космічні мірки», що допомагають нам зрозуміти, де перебуває супутник і з якою швидкістю він рухається. Деталі того, що саме ми фільтруємо, наведені в розділі 6.1. Але дані поводяться як норовлива дитина: вони стрибають або потрапляють у розриви першого порядку. Наприклад, \(S_{C/A}\) може раптово «впасти зі скелі», і нам потрібно це вловити.
Для цього у нас є спеціальний детектор — «Ой, щось пішло не так»:
де:
- \(\Delta S\) — різниця між поточним значенням і очікуваним
- \(\delta t\) — інтервал часу
- \(c\) — швидкість світла
- Функція округлення вниз \(\lfloor \cdot \rfloor\) повертає цілу частину
Якщо виявлено розрив, ми його латаємо, щоб сигнали не сіпались, як кіт, що випив кави на дискотеці. А якщо дані недостовірні (flag = 1), ми обнуляємо їх — жодного сміття в нашому супі!
2. Згладжування: робимо дані шовковисто гладкими
Тепер виймаємо нашу чарівну математичну швабру — фільтр, що згладжує дані. Беремо кожну пару (наприклад, \(S_{C/A}\) і \(\dot{S}_{C/A}\)) і починаємо їх «вичісувати». Матриця \(R\) показує нам, наскільки шумні дані — її значення задаються оператором, як шеф-кухар, що додає сіль:
Потім ми використовуємо поліном із коефіцієнтами \(a_0, a_1, \ldots\), щоб дані поводилися добре. Результат: \(\eta = a_0\), \(\dot{\eta} = a_1\). Ми уточнюємо рецепт із надходженням нових даних!
3. Уточнення коефіцієнтів: «Усе під контролем!»
На початку ми встановлюємо \(a_0\) рівним поточній псевдодальності, \(a_1\) — швидкості, а решту (\(a_2, \ldots\)) — нулю — «не будемо поки ускладнювати». Потім перевіряємо достовірність:
де \(\varepsilon\) — різниця між вимірюванням і прогнозом. Якщо різниця велика, ми позначаємо це (flag = 1) і пропускаємо. Якщо все гаразд, оновлюємо коефіцієнти за допомогою матриць — наш фільтр не дозволить супутнику брехати!
4. Вимірюємо шум: статистика на сторожі
Вишенька на торті — обчислення того, наскільки шумні дані. Середньоквадратичне відхилення (СКВ):
Чим менше СКВ, тим спокійніший наш суп — і точніший шлях супутника!
Епілог: «Чистота — основа навігації!»
Завдяки фільтрації ми перетворили шумні дані на гладкий навігаційний бульйон. Розриви залатані, нерівності згладжені, а шум вимірений — деталі в розділі 6.4. Супутник летить упевнено, а Андрій і я по-справжньому заслужили чашку чаю — чи супу? 😄
Технічні деталі фільтрації
6.1. Фільтрація вимірюваних параметрів
Фільтрація вимірюваних параметрів виконується окремо для кожного приймача GNSS і кожного космічного апарата. Згладжені оцінки формуються на опорний час останнього кадру \(t\).
Фільтрація застосовується до таких груп параметрів:
Для стислості індекси, що вказують номер приймача, номер супутника та тип, опущено. Використовується таке позначення:
Для вимірювань, позначених як недостовірні (flag = 1), відповідні значення псевдодальності та швидкості встановлюються в нуль.
Під час згладжування усуваються розриви першого порядку \(S_{C/A}\).
Для виявлення розривів використовується:
де
Тильда (~) позначає останню попередню точку з достовірними значеннями \(S_{C/A}\) та \(\dot{S}_{L1}\).
6.2. Параметри згладжування
— апріорна матриця коваріації шуму (значення \(D_{\eta}\) та \(D_{\dot{\eta}}\) задаються оператором).
Згладжені значення \((\eta_{i,j,k,1}\) та \(\dot{\eta}_{i,j,k,1})\), отримані приймачем \(i\) для космічного апарата \(j\) на поточний момент часу, дорівнюють:
Обернена матриця \(2 \times 2\) обчислюється як:
6.3. Початкові оцінки та уточнення коефіцієнтів
Наведені нижче рівняння коваріації та уточнення коефіцієнтів слідують класичній традиції фільтра Калмана, запровадженій Рудольфом Е. Калманом у 1960 році — загальновідомим математичним методом, який згодом широко використовувався в аерокосмічній навігації та добре документований в алгоритмах приймачів GPS/GNSS.
Початкові коефіцієнти встановлюються рівними вимірюваним значенням на початковий момент часу:
Коефіцієнти уточнюються з надходженням достовірних даних відповідно до:
a) Перевірка достовірності:
де
Якщо умова не виконується, точка відхиляється (прапорці \(\text{Pr}_{\eta_{i,j,k}}\), \(\text{Pr}_{\dot{\eta}_{i,j,k}}\) = 1). Кроки b) і c) пропускаються.
b) Оновлення коваріації:
c) Уточнення вектора коефіцієнтів:
6.4. Обчислення СКВ флуктуаційних похибок
Значення СКВ флуктуаційних похибок параметрів вимірювань обчислюються як:
Ці значення дають кількісну оцінку якості фільтрації та залишкового шуму в згладжених параметрах.