ГЛОБАЛЬНОЕ СПУТНИКОВОЕ ПОЗИЦИОНИРОВАНИЕ С РАЗГРУЗКОЙ В ОБЛАКО
CLOUD-OFFLOADED GLOBAL SATELLITE POSITIONING

Уровень техники
[0001] Системы Глобального Позиционирования (GPS) обычно состоят из устройства, включающего в себя GPS-приемник, и множества GPS-спутников. GPS-приемник выполнен с возможностью приема и декодирования GPS-сигналов, широковещательно передаваемых от GPS-спутников, с целью определения местоположения устройства. Каждый из сигналов GPS-спутника передается со специфической для спутника кодировкой, которая может использоваться GPS-приемником для идентификации широковещательного GPS-спутника. GPS-приемник способен вычислять местоположение устройства посредством декодирования спутникового сигнала, идентификации широковещательных GPS-спутников и выполнения последовательности вычислений над данными, извлеченными из декодированных сигналов.
[0002] Многие современные устройства включают в себя GPS-приемники и поддерживают приложения, которые предоставляют основанные на местоположении услуги. Как правило, GPS-системы производят выборку GPS-сигнала в диапазоне 30 секунд с целью точного декодирования GPS-сигнала и идентификации широковещательных GPS-спутников. К сожалению, выборка GPS-сигналов является энергоемким процессом, и многим основанным на местоположении приложениям, доступным сегодня на мобильных устройствах, требуется регулярное или непрерывное определение местоположения. Таким образом, несмотря на то, что GPS-приемники зачастую обеспечивают самую точную и достоверную информацию о местоположении, доступную мобильному устройству, часто возникают случаи, когда предпочтительными являются другие источники. Например, мобильные устройства могут получать информацию о местоположении из одного из множества источников, включающих в себя GPS-приемники, сигналы с вышки сотовой связи, FM-радиосигналы и/или WiFi-подписи.
Сущность изобретения
[0003] Данный раздел «Сущность изобретения» предоставлен для ввода выбора понятий в упрощенной форме, которые дополнительно описаны ниже в разделе «Подробное описание». Данный раздел «Сущность изобретения» не предназначен для идентификации ключевых признаков или существенных признаков заявляемого объекта изобретения, и при этом он не предназначен для использования в качестве средства для определения объема заявляемого объекта изобретения.
[0004] В данном документе раскрыты варианты реализации мобильного устройства, включающие в себя систему (GPS) глобального позиционирования, которая может быть использована для определения местоположение мобильного устройства. В одном примере мобильное устройство использует сервер для содействия в определении местоположения. Например, мобильное устройство включает в себя GPS-приемник и интерфейс связи, осуществляющий связь с сервером. Мобильное устройство может производить выборку GPS-сигналов с использованием GPS-приемника и направлять выборки на сервер для обработки. В одном примере мобильное устройство выполнено с возможностью выборки GPS-сигналов в одном или более участков в несколько миллисекунд (мс) и сервер выполнен с возможностью обработки упомянутых участков и определения местоположения мобильного устройства.
Краткое описание чертежей
[0005] Раздел «Подробное описание» описан со ссылкой на сопроводительные фигуры. На фигурах самая(ые) крайняя(ие) левая(ые) цифра(ы) ссылочной позиции идентифицирует(ют) фигуру, на которой данная ссылочная позиция появляется в первый раз. Одни и те же ссылочные позиции используются по всем чертежам для обозначения одинаковых признаков и компонентов.
[0006] На Фиг.1 показан графический вид примера GPS-системы согласно некоторым вариантам реализации.
[0007] На Фиг.2 показана блок-схема примерной платформы GPS-системы согласно некоторым вариантам реализации.
[0008] На Фиг.3 показана блок-схема примерной платформы мобильного устройства согласно некоторым вариантам реализации.
[0009] На Фиг.4 показана блок-схема последовательности операций примерного процесса для оценивания местоположения мобильного устройства согласно некоторым вариантам реализации.
[0010] На Фиг.5 показана блок-схема последовательности операций примерного процесса для идентификации набора видимых спутников согласно некоторым вариантам реализации.
[0011] На Фиг.6 показана блок-схема последовательности операций примерного процесса для выбора набора хороших спутников из набора видимых спутников согласно некоторым вариантам реализации.
[0012] На Фиг.7 показана блок-схема последовательности операций примерного процесса для оценивания местоположения мобильного устройства согласно некоторым вариантам реализации.
Осуществление изобретения
[0013] Раскрываемые методики описывают варианты реализации GPS-системы для определения местоположений, относящихся к мобильным устройствам. В характерной системе, когда GPS-приемник приведен в действие, GPS-приемник выполняет последовательность энергоемких этапов для определения и удержания местоположения мобильного устройства. Во-первых, GPS-приемник входит в фазу сбора. В фазе сбора GPS-приемник производит выборку и декодирует GPS-сигнал от каждого видимого GPS-спутника. GPS-сигналы включают в себя временную отметку и эфемеридные данные (данные, относящиеся к местоположению и траектории передающего спутника). Во-вторых, GPS-приемник выполняет последовательность вычислений на основе временной отметки и эфемеридных данных, извлеченных из декодированных GPS-сигналов, для определения начального местоположения. В-третьих, GPS-приемник входит в фазу отслеживания для удержания местоположения мобильного устройства.
[0014] Для выборки и декодирования всего сигнала от одного или более GPS-спутников GPS-приемник включается на некоторый интервал, обычно в пределах 30 секунд. GPS-приемник остается включенным в течение такого длительного периода времени частично потому, что GPS-спутники выполнены с возможностью передачи данных на очень низкой скорости, обычно в пределах 50 бит в секунду (бит/с), и для восстановления данных, содержащихся в GPS-сигналах, используется приблизительно 32 000 выборок.
[0015] Затем, GPS-приемник пытается идентифицировать все GPS-спутники с точки зрения мобильного устройства (то есть, GPS-спутники, которые передают принимаемые GPS-сигналы). Это осуществляется посредством выявления присутствия одного или более специфических для спутника кодов Грубого/Сбора (C/A-кодов) в GPS-сигналах. Каждый GPS-приемник хранит шаблон C/A-кода, который включает в себя C/A-код для всех GPS-спутников. C/A-коды разработаны ортогональными друг другу так, чтобы когда шаблон сравнивался с GPS-сигналом, C/A-коды, соответствующие видимым GPS-спутникам, вызывали пиковый скачок сигнала. Таким образом, GPS-приемник может сравнивать C/A-шаблон с принятыми GPS-сигналами для определения того, какие GPS-спутники инициируют широковещательные передачи.
[0016] Однако, при сравнении шаблона C/A-кода с GPS-сигналами GPS-приемник компенсирует доплеровские сдвиги в GPS-сигнале, вызываемые перемещением как спутников, так и GPS-приемника. Например, подходящий GPS-спутник (спутник, входящий в область обзора мобильного устройства) перемещается со скоростью до 800 метров в секунду (м/с) к GPS-приемнику, вызывая сдвиг частоты в 4,2 килогерц (кГц). Аналогично, уходящий GPS-спутник (спутник, покидающий область обзора мобильного устройства) перемещается со скоростью до 800 м/с от GPS-приемника, взывая сдвиг частоты в -4,2 кГц. GPS-приемнику необходимо компенсировать доплеровский сдвиг в границах некоторого предела погрешности (например, в пределах 500 Гц) для правильной идентификации широковещательных GPS-спутников с использованием шаблона C/A-кода. Поэтому, для компенсации движения GPS-приемника в дополнение к перемещению спутников GPS-приемник часто выполняет много вычислений доплеровского сдвига и соответствующих сравнений C/A-кода перед завершением определения видимых GPS-спутников.
[0017] Для идентификации начального местоположения GPS-приемник также определяет расстояние между мобильным устройством и каждым из видимых GPS-спутников, которое называется «псевдодальностью». Псевдодальность может быть вычислена с использованием задержки на распространение GPS-сигналов. Задержка на распространение разбита на две части: миллисекундную часть и субмиллисекундную часть, называемую «сдвигом кода». Миллисекундная часть может быть декодирована из пакетных кадров, а сдвиг кода может быть определен посредством слежения за одномилисекундным повторением C/A-кода в GPS-сигналах.
[0018] Как только GPS-приемник идентифицировал видимые спутники, декодировал GPS-сигналы и вычислил псевдодальности, GPS-приемник вычисляет начальное местоположение. После того, как начальное местоположение определено, GPS-приемник переключается на фазу отслеживания для удержания местоположения мобильного устройства. В течение фазы отслеживания GPS-приемник пытается регулировать доплеровские частоты и задержки на распространение для компенсации этих сдвигов, вызванных дополнительным перемещением спутников и мобильного устройства с течением времени. Посредством выполнения отслеживания GPS-приемник способен быстро и недорого (при относительно низкой скорости потребления мощности) оценивать изменения положения.
[0019] Однако, если GPS-приемник не выполняет вычисления отслеживания постоянно, то GPS-приемнику приходится снова выполнять фазу сбора, которая, как описано выше, является энергоемкой и отнимает много времени. Поэтому, большинство GPS-приемников выполнено с возможностью постоянного нахождения в действующем состоянии и не задействуются периодически мобильным устройством.
[0020] На Фиг.1 показан графический вид примера GPS-системы 100 согласно некоторым вариантам реализации. GPS-система 100 включает в себя мобильное устройство 102 и GPS-спутники 104, 106, 108, 110 и 112, от которых мобильное устройство может принимать GPS-сигналы 114. GPS-система 100 также включает в себя сервер 116 и сеть 118. В целом, мобильное устройство 102 передает и принимает данные в и от сервера 116 через сеть 118. Мобильное устройство 102 может осуществлять связь с сетью 118 через беспроводные сети, такие как беспроводная локальная сеть (WLAN), беспроводная сеть ближнего действия, такая как Bluetooth, или мобильные сети, предоставляемые через вышки сотовой связи, например, через системы множественного доступа с кодовым разделением (CDMA).
[0021] Мобильное устройство 102 может быть любым поддерживающим GPS устройством, таким как сотовый телефон, смартфон, навигационное устройство, датчик отслеживания, GPS-датчик, или любые другие устройства, включающие в себя GPS-приемник. В настоящем примере мобильное устройство 102 изображено в качестве смартфона.
[0022] GPS-спутники 104-112 могут содержать любой из спутников, относящихся к системе GPS-спутниковой навигации (sat-nav-системе). Дополнительно, несмотря на то, что изображено пять спутников, навигационные спутники 104-112 представлены любым количеством навигационных спутников, от которых мобильное устройство 102 может принимать GPS-сигнал. GPS-спутники 104-112 уникально идентифицируются посредством специфического для спутника C/A-кода, как описано выше. В целом, GPS-спутники 104-112 передают GPS-сигналы, полезные для геопространственного позиционирования. GPS-сигналы 114 являются закодированными и включают в себя основанную на времени информацию, полезную для вычисления положения.
[0023] Мобильное устройство 102 принимает GPS-сигналы 114 от GPS-спутников, которые являются видимыми для мобильного устройства 102 из текущего местоположения мобильного устройства 102 (находятся на линии визирования мобильного устройства 102). В некоторых случаях GPS-сигналы 114, принятые мобильным устройством 102, могут быть преломленными, отраженными и/или ослабленными различными препятствиями.
[0024] Мобильное устройство 102 включает в себя GPS-приемник, который выполнен с возможностью выборки GPS-сигналов 114 от спутников 104-112 для генерирования выборки GPS-сигнала. Выборка GPS-сигнала содержит одно или более смежных измерений GPS-сигнала 114, каким он захвачен мобильным устройством 102. Каждый отдельный смежный диапазон внутри выборки называется «участком» и имеет продолжительность по меньшей мере 1 мс. Если внутри выборки присутствует более одного участка, то должен быть некоторый подходящий интервал выборки между ними. В некоторых примерах мобильное устройство 102 может быть выполнено с возможностью сжатия, обработки или иного манипулирования выборками GPS-сигнала до направления данных 120 сигнала на сервер 116. Например, мобильное устройство 102 может предоставлять серверу 116 необработанные GPS-сигналы 114, сжатую версию GPS-сигналов 114 или данные, полученные из GPS-сигналов 114, такие как идентификаторы (ID) видимых спутников и/или сдвиги кода и доплеровские частоты, относящиеся к видимым спутникам.
[0025] Мобильное устройство 102 направляет данные 120 GPS-сигнала на сервер 116 через сеть 118. В некоторых примерах мобильное устройство 102 является GPS-датчиком или GPS-устройством отслеживания, которое не включает в себя интерфейс беспроводной или мобильной связи, и поэтому мобильное устройство 102 неспособно направлять данные 120 GPS-сигнала на сервер 116 в реальном времени (с приемом GPS-сигнала). В данном примере мобильное устройство 102 может хранить данные 120 GPS-сигнала в качестве данных на считываемом компьютером носителе хранения информации, встроенном в мобильное устройство 102. Данные выгружаются на сервер 116 в более позднее время, так чтобы предыдущее(ие) местоположение(я) мобильного устройства 102 могло(и) быть определено(ы) или восстановлено(ы) во время выгрузки.
[0026] Как только сервер 116 принимает данные 120 GPS-сигнала от мобильного устройства 102, сервер 116 определяет начальное местоположение мобильного устройства 102 и возвращает информацию 122 о местоположении через сеть 118 в мобильное устройство 102. Посредством использования сервера 116 для определения начального местоположения мобильное устройство 102 способно сберегать энергию, обычно потребляемую в течение энергоемкой фазы сбора, увеличивая полное время функционирования от батареи.
[0027] В данном примере мобильное устройство 102 направляет данные 120 GPS-сигнала на сервер 116 в качестве необработанных GPS-выборок без предварительной обработки, заранее выполняемой на мобильном устройстве 102. В альтернативном примере мобильное устройство 102 может декодировать, зашифровать или сжать данные 120 GPS-сигнала перед направлением их на сервер 116.
[0028] Когда сервер 116 принимает данные 120 GPS-сигнала, сервер 116 выполняет сбор на упомянутых участках для идентификации набора видимых спутников, таких как спутники 104-112. В одном частном примере для идентификации видимых спутников 104-112 из таких малых участков сервер 116 использует методику, которая называется восстановление разреженного сигнала. В данном примере сервер 116 сначала инициализирует набор видимых спутников в качестве пустого набора (то есть, первоначально сервер 116 не идентифицировал ни одного из шаблонов C/A-кодов в участках, принятых от мобильного устройства). Затем сервер 116 осуществляет поиск GPS-сигнала 114 по всем возможным идентификаторам (ID) спутников, сочетания сдвигов кода и доплеровской частоты для выбора спутника с самым сильным GPS-сигналом, выбранным мобильным устройством 102. Например, сервер 116 может итерационно перебирать шаблоны C/A-кодов на возможных доплеровских частотах и сдвигах кода для каждого спутника с целью идентификации самого сильного GPS-сигнала.
[0029] Как только спутник выбран, сервер 116 удаляет GPS-сигнал, относящийся к выбранному спутнику, из участка и добавляет выбранный спутник в набор видимых спутников. Например, сервер 116 может удалить GPS-сигнал, относящийся к выбранному спутнику, из исходного участка посредством выполнения проецирования на подходящее подпространство сигналов, определенное шаблонами C/A-кодов выбранных спутников. Сервер 116 продолжает процесс выбора спутника с самым сильным сигналом и удаления сигнала, относящегося к выбранному спутнику, пока либо не будет удовлетворен критерий остановки (например, идентифицировано достаточное количество спутников, чтобы можно было вычислить местоположение мобильного устройства 102), либо не будут идентифицированы все видимые спутники, либо оставшиеся сигналы станут не достаточно сильными, чтобы достоверно идентифицировать широковещательные спутники.
[0030] После определения набора видимых спутников сервер 116 сопоставляет набор видимых спутников со множеством участков. Поскольку участки настолько малы (например, длиною в 2 мс), неожиданные радиопомехи или другие помехи могут сильно ухудшить GPS-сигнал при сборе мобильным устройством 102 и вызвать неправильное выявление спутников внутри одного участка. Таким образом, собирая множество участков с различными промежутками и сравнивая идентифицированные спутники в каждом участке, общая точность определенного местоположения 122 может быть улучшена.
[0031] Поэтому, каждый спутник в наборе видимых спутников, идентифицированных с использованием одного участка, может быть хорошим (то есть, видимым спутником), плохим (то есть, ложной идентификацией) или неизвестным (то есть, не может быть классифицирован в качестве либо хорошей, либо плохой идентификации). В одном примере, сервер 116 устанавливает каждому спутнику в наборе видимых спутников для каждого участка GPS-сигнала 114 статус «неизвестный». Сервер 116 определяет хорошие и плохие спутники посредством сравнения данных, относящихся к каждому спутнику по всем участкам. Например, в одном варианте реализации, сервер 116 вычисляет разности сдвигов кода, выявляемых для каждого спутника во всех участках, и если эти разности меньше первой пороговой величины, то сервер идентифицирует спутник в качестве «хорошего», а если эти разности больше второй пороговой величины, то идентифицирует спутник в качестве «плохого». Оставшиеся спутники и любой спутник, который был видимым только в одном участке, затем помечаются в качестве «неизвестных».
[0032] Используя хорошие спутники, может быть оценено местоположение 122. Например, сервер 116 может вычислить местоположение мобильного устройства 102, используя время, за которое участки были собраны, идентификаторы (ID) хороших спутников, эфемериду, относящуюся к хорошим спутникам (которая может быть получена из орбитальной базы данных NASA или декодирована из GPS-сигнала 114), и псевдодальности.
[0033] Несмотря на описание в отношении GPS любая из методик, описанных в данном документе, может быть реализована совместно с другими глобальными или региональными спутниковыми навигационными системами. В некоторых случаях, эти методики используются с sat-nav-приемниками, выполненными с возможностью приема сигналов от двух или более различных спутниковых навигационных систем. В качестве примера, другие глобальные и/или региональные спутниковые навигационные системы могут включать в себя Глобальную Навигационную Спутниковую Систему (GLONASS), Galileo, BeiDou, Compass, Индийскую Региональную Навигационную Спутниковую Систему (IRNSS) или Квази-зенитную Спутниковую Систему (QZSS) в том числе.
[0034] На Фиг.2 показана блок-схема примерной платформы GPS-системы 200 согласно некоторым вариантам реализации. GPS-система 200 включает в себя мобильное устройство 102, сервер 116, базу 202 данных API высот Геологической Службы Соединенных Штатов (USGS) и базу 204 орбитальных данных NASA.
[0035] Мобильное устройство 102 включает в себя один или более GPS-приемников для выборки GPS-сигналов и один или более интерфейсов связи для направления данных 120 GPS-сигнала на сервер 116 и приема информации 122 о местоположении в ответ. Сервер 116 включает в себя один или более процессоров 206, интерфейс 208 связи и считываемый компьютером носитель 210 хранения информации. Интерфейсы 208 связи доступны процессорам 206 для передачи данных в и от мобильного устройства 102 по сети, такой как сеть 118 с Фиг.1.
[0036] На считываемом компьютером носителе 210 хранения информации может быть сохранено любое количество программных модулей, приложений или компонентов, включающих в себя, в качестве примера, команды 212 фильтрации местоположения, команды 214 идентификации спутника и команды 216 классификации спутника. Команды 212 фильтрации местоположения хранятся на считываемом компьютером носителе 210 хранения информации и исполняются процессорами 206 для предписания серверу 116 определять местоположение мобильного устройства 102 на основе набора хороших спутников. Команды 214 идентификации спутника исполняются процессорами 206 для предписания серверу 116 идентифицировать набор видимых спутников из данных 120 GPS-сигнала. Команды 216 классификации спутника исполняются процессорами 206 для предписания серверу 116 идентифицировать набор хороших спутников из набора видимых спутников, определенных командами 214 идентификации спутника.
[0037] Используемый в данном документе «считываемый компьютером носитель» включает в себя компьютерный носитель информации и среду связи. Компьютерный носитель информации включает в себя съемные и несъемные носители кратковременного хранения и долговременного хранения, реализованные любым способом или технологией для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерный носитель информации включает в себя, но не ограничивается этим, Запоминающее Устройство с Произвольным Доступом (RAM), Постоянное Запоминающее Устройство (ROM), Электрически Стираемое Программируемое Постоянное Запоминающее Устройство ROM (EEPROM), флэш-память или другую технологию хранения, Постоянное Запоминающее Устройство на Компакт-Диске ROM(CD-ROM), Цифровые Универсальные Диски (DVD) или другое оптическое хранилище, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные устройства хранения или любой другой материальный носитель, который может использоваться с целью хранения информации для доступа посредством вычислительного устройства.
[0038] Напротив, среда связи может воплощать считываемые компьютером команды, структуры данных, программные модули или другие данные в модулируемом сигнале данных, таком как несущая волна. Заданный в данном документе компьютерный носитель информации не включает в себя среду связи.
[0039] База 202 данных API высот USGS доступна серверу 116 через интерфейсы 208 связи так, чтобы сервер 116 был способен извлекать данные о высоте, относящиеся к местоположению, определенному сервером 116. Как правило, сервер 116 направляет координаты по широте и долготе в базу 202 данных API высот USGS и в ответ принимает данные о высоте, относящиеся к этим координатам.
[0040] База 204 орбитальных данных NASA также доступна серверу 116 через интерфейсы 208 связи и используется для извлечения данных альманаха и эфемеридных данных, относящихся к GPS-спутникам 104-112. Данные альманаха относятся к грубой орбите и статусу спутников на Земной орбите. Эфемеридные данные относятся к положению и траектории спутников.
[0041] База 202 данных API высот USGS и база 204 орбитальных данных NASA являются двумя примерами множества баз данных, из которых сервер 116 может извлекать данные о высоте, данные альманаха и эфемеридные данные. Например, Геодезическая Служба США вычисляет орбиты, положение и траекторию GPS-спутников и делает орбиты, положение и траекторию общедоступными в Интернете.
[0042] В одном примере мобильное устройство 102 направляет данные 120 GPS-сигнала, включающие в себя множество участков необработанного GPS-сигнала и временные отметки, соответствующие тому, когда GPS-сигнал был выбран, на сервер 116 через по меньшей мере один из интерфейсов 208 связи. В некоторых случаях, данные 120 GPS-сигнала загружаются с мобильного устройства 102, а в других, данные 120 GPS-сигнала принимаются через беспроводную или мобильную сеть от мобильного устройства 102.
[0043] Как только данные 120 GPS-сигнала приняты, команды 212 фильтрации местоположения предписывают процессорам 206 определять местоположение мобильного устройства 102. Для вычисления местоположения мобильного устройства 102 серверу 116 нужно определить время, когда GPS-сигнал был выбран, широковещательные (видимые) GPS-спутники, эфемериду, относящуюся к видимым спутникам, и псевдодальности.
[0044] В одном примере сервер 116 идентифицирует то, какие GPS-спутники видимы мобильному устройству 102, посредством исполнения команд 214 идентификации спутника и команд 216 классификации спутника. При исполнении команды 214 идентификации спутника выполняют сбор на каждом из участков, принятых в данных 120 GPS-сигнала, для идентификации набора видимых спутников. В одном варианте реализации команды 214 идентификации спутника сначала инициализируют набор видимых спутников в качестве пустого набора для каждого участка, так как первоначально мобильное устройство 102 не выявило ни одного из шаблонов C/A-кодов. Затем, для каждого участка, команды 214 идентификации спутника осуществляют поиск GPS-сигнала по всем возможным идентификаторам (ID) спутников, сочетаниям доплеровской частоты и сдвигов кода с целью выбора спутника с самым сильным сигналом, выбранным мобильным устройством 102. Как описано выше, команды 214 идентификации спутника могут итерационно перебирать шаблоны C/A-кодов на возможных доплеровских частотах и сдвигах кодов для каждого спутника для идентификации самого сильного сигнала.
[0045] Как только спутник выбран, GPS-сигнал, относящийся к выбранному спутнику, удаляется из участка, и выбранный спутник добавляется в набор видимых спутников. Например, команды 214 идентификации спутника могут удалить GPS-сигнал, относящийся к выбранному спутнику, из участка посредством выполнения проецирования на подходящее подпространство сигналов, определенное шаблонами C/A-кодов выбранных спутников.
[0046] Команды 214 идентификации спутника повторяют процесс выбора самого сильного сигнала, пока не будет удовлетворен критерий остановки. Например, критерий остановки может быть удовлетворен, когда достигнута идентификация предварительно определенного количества спутников (например, идентифицировано достаточное количество спутников, чтобы могло быть вычислено местоположение мобильного устройства 102), все видимые спутники идентифицированы и/или оставшиеся сигналы в участке не достаточно сильны для достоверной идентификации широковещательных спутников. Примерами данной процедуры являются алгоритмы согласованного преследования и ортогонального согласованного преследования. По такому принципу набор видимых спутников может быть определен для каждого участка GPS-сигнала 114, предоставленного мобильным устройством 102.
[0047] После определения набора видимых спутников команды 216 классификации спутника предписывают серверам 116 сопоставлять набор видимых спутников со множеством участков. Поскольку участки настолько малы (например, длиною в 2 мс), то неожиданные радиопомехи или другие помехи могут сильно ухудшить GPS-сигнал и вызвать неправильное выявление спутников внутри одной выборки. Таким образом, посредством сбора множества участков с различными промежутками и сравнения идентифицированных спутников в каждом участке может быть улучшена общая точность определяемого местоположения 122.
[0048] Как описано выше, каждый спутник в наборе видимых спутников, идентифицированных с использованием одного участка, может быть хорошим (то есть, видимым спутником), плохим (то есть ложной идентификацией) или неизвестным (то есть может не быть классифицирован в качестве либо хорошей, либо плохой идентификации). В одном примере команды 216 классификации спутника устанавливают каждому спутнику в наборе видимых спутников для каждого участка, принятого в качестве части данных 120 GPS-сигнала, статус «неизвестный».
[0049] Команды 216 классификации спутника определяют хорошие и плохие спутники посредством сравнения данных, относящихся к каждому спутнику, по всем участкам. Например, в одном варианте реализации команды 216 классификации спутника предписывают серверу 116 вычислить разности сдвигов кода, выявленных для каждой выборки, соответствующего конкретному спутнику. Если разности меньше первой пороговой величины, то спутник классифицируется в качестве «хорошего», а если разности больше второй пороговой величины, то спутник классифицируется в качестве «плохого». Оставшиеся спутники (то есть, спутники, большие первой пороговой величины, но меньшие второй пороговой величины) и любой спутник, который был видим только в одной выборке, классифицируются в качестве «неизвестных». Для оценки местоположения 122 с использованием «хороших» спутников сервер 116 сначала определяет время, в которое каждый GPS-сигнал был выбран мобильным устройством 102, эфемериду, относящуюся к хорошим спутникам и псевдодальности.
[0050] В одном варианте реализации время принимается от мобильного устройства 102 в качестве временной отметки, предоставляемой мобильным устройством 102, в качестве части данных 120 GPS-сигнала. В другом варианте реализации время может быть извлечено из GPS-сигнала. Время, извлеченное из GPS-сигнала, обычно более точно, однако, временная отметка, примененная мобильным устройством 102 во время выборки, достаточна для вычисления начального местоположения 122 внутри разумного диапазона (то есть, внутри нескольких метров).
[0051] Эфемерида может быть извлечена сервером 116 из базы 204 орбитальных данных NASA. В одном конкретном варианте реализации сервер 116 может извлекать эфемериду из базы 204 орбитальных данных NASA периодически и сохранять информацию в считываемом компьютером носителе 210 хранения информации для использования в более позднее время, например, в случае, когда GPS-сигналы были выбраны и сохранены на мобильном устройстве 102 и загружены на сервер 116 после некоторого промежутка времени. В других вариантах реализации команды 212 фильтрации местоположения могут предписывать серверу 116 декодировать GPS-сигнал для определения эфемеридных данных.
[0052] Как только эфемерида и время идентифицированы сервером 116, команды 212 фильтрации местоположения предписывают серверу 116 вычислить псевдодальность (то есть, сдвиги кода и задержку на распространение) для каждого из хороших спутников с использованием эфемеридных данных и GPS-сигналов. Например, сервер 116 может определить задержку на распространение с использованием методики, называемой Навигация по Грубому Времени (CTN), если может быть идентифицировано опорное местоположение (такое как вышка сотовой телефонной связи) в пределах 150 километров (км) от местоположения 122 мобильного устройства 102.
[0053] После того как определены временные отметки, сдвиги кода и задержки на распространение для каждого спутника, команды 212 фильтрации местоположения предписывают серверу 116 оценить местоположение 122 мобильного устройства 102. Однако, в некоторых случаях может быть идентифицировано слишком малое количество хороших спутников для точной оценки местоположения 122 мобильного устройства 102. Если для определения местоположения 122 идентифицировано слишком малое количество хороших спутников, то команды 212 фильтрации местоположения проходят по видимым спутникам, классифицированным в качестве «неизвестных», и добавляют каждый из них в набор хороших спутников и пытаются идентифицировать местоположение 122. Местоположение, оцененное с использованием плохих (то есть, неправильно идентифицированных) спутников, будет иметь ошибочное, невозможное или неправильное положение (например, на высотах намного выше или ниже поверхности Земли). Таким образом, команды 212 фильтрации местоположения проверяют местоположение 122, оцененное после добавления каждого спутника, для устранения ошибочных местоположений. Например, ограничение местоположения 122 до диапазона высот около поверхности Земли, например, между 500-8000 метров (м), приводит в результате к устранению многих ошибочных местоположений.
[0054] К сожалению, как таковое применение диапазона высот может не выявлять все ошибочные местоположения. Для устранения оставшихся ошибочных местоположений команды 212 фильтрации местоположения могут предписать серверу 116 осуществить доступ к базе 202 данных API высот USGS через интерфейсы 208 связи. Сервер 116 извлекает истинную высоту Земной поверхности для каждого из оставшихся оцененных местоположений 122 с использованием координат по долготе и широте. Команды 212 фильтрации местоположения сравнивают определенную высоту с истинной высотой и устраняют любое местоположение при не соответствии высот. Однако, когда высота соответствует данным высот USGS, то фактическое местоположение 122 мобильного устройства 102 в то время, когда GPS-сигналы были выбраны, оказывается идентифицированным и может быть возвращено в мобильное устройство 102 в качестве местоположения 122. Следует понимать, что использование базы 202 данных API высот USGS и сравнение высот является одной возможной методикой для идентификации ошибочных местоположений, и что могут быть использованы другие методики.
[0055] В некоторых случаях, может быть идентифицировано достаточное количество хороших спутников для осуществления оценки местоположения 122, при том, что некоторые спутники все еще помечены в качестве «неизвестных». Посредством использования этих неизвестных спутников может быть улучшена точность оцениваемого местоположения 122. Например, каждый из неизвестных спутников может быть добавлен в набор хороших спутников при одновременной оценке и проверке нового местоположения, например, с использованием данных о высоте USG, как это обсуждалось выше. В другом примере новое местоположение, оцененное с использованием неизвестного спутника, может быть сравнено с подлинным местоположением, и если эти два местоположения находятся внутри порогового расстояния, то неизвестный спутник может посчитаться «хорошим», и новое местоположение может возвратиться в мобильное устройство 102 в качестве местоположения 122. Данный процесс может быть продолжен, пока не будут проверены все оставшиеся неизвестные спутники, которые могут быть помечены в качестве «хороших».
[0056] После идентификации окончательного местоположения 122 мобильного устройства 102 местоположение 122 предоставляется в мобильное устройство 102. В альтернативном варианте реализации местоположение 122 может быть сохранено на считываемом компьютером носителе хранения информации для более позднего анализа или предоставлено на устройство отображения для использования, например, в научном исследовании.
[0057] На Фиг.3 показана блок-схема примерной платформы 300 мобильного устройства 102 согласно некоторым вариантам реализации. Мобильное устройство 102 включает в себя один или более процессоров 302, один или более интерфейсов 304 связи, GPS-приемник 306, часы 308 и считываемый компьютером носитель 310 хранения информации. Считываемый компьютером носитель 310 хранения информации изображен в качестве хранящего команды 312 фильтрации местоположения, команды 314 идентификации спутника, команды 316 классификации спутника и одну или более выборок 318 GPS-сигнала.
[0058] Интерфейсы 304 связи используются для обмена данными с сервером, таким как сервер 116 с Фиг.1 и 2. Интерфейсы 304 связи выполнены с возможностью осуществления связи с беспроводными сетями, такими как беспроводная локальная сеть (WLAN), беспроводные сети ближнего действия, такие как Bluetooth, мобильной сетью, предоставляемой через вышки сотовой связи, например, через CDMA-системы, или по проводному соединению, такому как через USB-интерфейс (интерфейс универсальной последовательной шины (USB)).
[0059] GPS-приемник 306 выполнен с возможностью приема GPS-сигналов от одного или более спутников, таких как спутники 104-112. Несмотря на то, что GPS-приемник 306 изображен объединенным с мобильным устройством 102, он может быть внешним, но локальным. Внешний GPS-приемник может осуществлять связь с мобильным устройством 102 по проводному (например, USB) или беспроводному интерфейсу (например, Bluetooth). В некоторых случаях, GPS-приемник 306 объединен с одним из интерфейсов 304 связи. Данный объединенный модуль предоставляет возможность соединения сотовой связи и GPS-функциональность. В некоторых примерах антенна объединенного модуля совместно используется подсистемами GPS и сотовой связи.
[0060] Часы 308 выполнены с возможностью предоставления временной отметки, которая относится ко времени, в которое выборка GPS-сигнала принята GPS-приемником 306. В одном примере часы 308 являются WWVB-приемником. WWVB является радиостанцией, которая широковещательно передает сигналы всемирного времени по всему миру через непрерывную несущую волну на 60 кГц, извлекаемые из набора атомных часов, расположенных на передающих площадках.
[0061] В одном примере GPS-приемник 306 периодически выбирает GPS-сигналы от спутников 104-112, и каждая из выборок 318 GPS-сигнала маркируется временем часами 308. Маркированные временем выборки 318 GPS-сигнала либо сохранятся в считываемом компьютером носителе 310 хранения информации, либо направляются на сервер 116 через интерфейсы 304 связи, в качестве данных 120 GPS-сигнала. Если выборки 318 GPS-сигнала направляются на сервер 116, то в ответ мобильное устройство 102 может принимать местоположение от сервера 116. Если выборки 318 GPS-сигнала сохраняются, то сигналы 318 могут быть загружены или направлены на сервер 116 в более позднее время, либо мобильное устройство 102 может использовать эти выборки для идентификации местоположения.
[0062] В некоторых вариантах реализации выборки 318 GPS-сигнала направляются на сервер 116 в качестве необработанных выборок. В других вариантах реализации обработка местоположения может быть разделена между сервером 116 и мобильным устройством 102, и набор видимых спутников и относящиеся к ним сдвиги кодов и доплеровские частоты могут быть направлены на сервер 116. В некоторых случаях, выборки 318 GPS-сигнала или данные сигнала могут быть сжаты перед передачей.
[0063] Мобильное устройство 102 может использоваться в окружении или в конфигурации универсальных или специализированных вычислительных систем. Примеры включают в себя персональный компьютер, карманное устройство или портативное устройство, планшетное устройство, многопроцессорную систему, основанную на микропроцессоре систему, программируемое пользовательское электронное устройство, сетевой PC или другие устройства с основанными на местоположении системами.
[0064] В одном конкретном варианте реализации мобильное устройство 102 может идентифицировать местоположение без помощи сервера. Например, GPS-приемник 306 может выбирать GPS-сигнал, широковещательно передаваемый одним или более видимыми спутниками. Выборки 318 GPS-сигнала могут быть очень короткими. Мобильное устройство 102 снабжает временной отметкой каждую выборка 318 GPS-сигнала, используя часы 308, и после сбора достаточного количества выборок мобильное устройство распределяет выборки 318 GPS-сигнала по малым участкам (например, длиною в 1 или 2 мс) и выполняет сбор на этих участках для идентификации набора видимых спутников.
[0065] Для каждого участка мобильное устройство исполняет команды 314 идентификации спутника для идентификации набора видимых спутников. Мобильное устройство 102 сначала инициализирует набор видимых спутников в качестве пустого набора (то есть, первоначально ни один из шаблонов C/A-кодов не выявлен в участке). Затем мобильное устройство 102 осуществляет в участке поиск всех возможных идентификаторов (ID) спутников, сочетаний доплеровской частоты и сдвигов кода с целью выбора спутника с самым сильным GPS-сигналом. Например, мобильное устройство 102 может итерационно перебирать шаблоны C/A-кодов на возможных доплеровских частотах и сдвигах кода для каждого спутника с целью идентификации самого сильного GPS-сигнала.
[0066] Как только спутник выбран, мобильное устройство 102 удаляет GPS-сигнал, относящийся к выбранному спутнику, из участка и добавляет выбранный спутник в набор видимых спутников. Например, мобильное устройство 102 может удалить GPS-сигнал, относящийся к выбранному спутнику, из участка посредством выполнения проецирования на подходящее подпространство сигналов, определенное шаблонами C/A-кода выбранных спутников. Мобильное устройство 102 продолжает процесс выбора самого сильного сигнала и удаления сигнала, относящегося к спутнику, широковещательно передающему самый сильный сигнал, пока не будет удовлетворен критерий остановки. Например, критерий остановки может быть удовлетворен, когда предварительно определенное количество спутников классифицировано в качестве «хороших» (например, идентифицировано достаточное количество спутников для того, чтобы могло быть вычислено местоположение мобильного устройства 102), рассмотрены все видимые спутники, или оставшиеся сигналы в участке не достаточно сильны для достоверной идентификации широковещательных спутников. Примерами данной процедуры являются алгоритмы согласованного преследования и ортогонального согласованного преследования.
[0067] Как только набор видимых спутников определен, мобильное устройство 102 исполняет команды 316 классификации спутника для сопоставления набора видимых спутников со множеством участков. В одном примере, мобильное устройство 102 устанавливает каждому спутнику в наборе видимых спутников статус «неизвестный». Затем мобильное устройство 102 определяет хорошие и плохие спутники посредством сравнения данных, относящихся к каждому спутнику, по всем участкам. Например, в одном варианте реализации, мобильное устройство 102 вычисляет разности сдвигов кода, выявленных для каждого спутника, по всем участкам, и если разности меньше первой пороговой величины, то сервер идентифицирует спутник в качестве «хорошего», а если разности больше второй пороговой величины, то идентифицирует спутник в качестве «плохого». Оставшиеся спутники (которые больше первой пороговой величины и меньше второй пороговой величины) и любые спутники, которые были выявлены только в одном участке, классифицируются в качестве «неизвестных».
[0068] Используя «хорошие» спутники, мобильное устройство 102 определяет местоположение посредством исполнения команд 212 фильтрации местоположения. Например, мобильное устройство 102 может вычислить местоположение с использованием временных отметок, предоставленных часами 308, набора идентификаторов (ID) хороших спутников, эфемериды, относящейся к видимым спутникам (которая может быть получена из базы орбитальных данных NASA или декодирована из выборок 318 GPS-сигнала), и псевдодальности. Например, задержка на распространение может быть вычислена с использованием эфемериды, опорного местоположения (такого как вышка сотовой телефонной связи) в пределах 150 км от мобильного устройства 102 и временной отметки с использованием методики, называемой Навигацией по Грубому Времени (CTN).
[0069] На Фиг.4-7 показаны блок-схемы последовательностей операций примерных процессов для определения местоположения мобильного устройства, такого как мобильное устройство 102 с Фиг.1-3. Данные процессы изображены в качестве совокупности блоков в блок-схеме последовательности логических операций, которые представляют собой последовательность действий, некоторые или все из которых могут быть реализованы в аппаратном обеспечении, программном обеспечении или их сочетании. В контексте программного обеспечения эти блоки представляют собой исполняемые компьютером команды, сохраненные на одном или более считываемых компьютером носителях, которые, при исполнении одним или более процессорами, выполняют упомянутые действия. В целом, исполняемые компьютером команды включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и им подобное, которые выполняют конкретные функции или реализуют конкретные абстрактные типы данных.
[0070] Порядок, в котором описаны действия, не должен рассматриваться в качестве ограничения. Любое количество описанных блоков может быть объединено в любом порядке и/или выполнено параллельно для реализации процесса, или альтернативных процессов, и не все блоки необходимо исполнять. В целях описания, процессы в данном документе описаны со ссылкой на платформы, конструкции и окружения, описанные в примерах в данном документе, несмотря на то, что данные процессы могут быть реализованы в большом разнообразии других платформ, конструкций или окружений.
[0071] На Фиг.4 показана блок-схема последовательности операций примерного процесса 400 для оценивания местоположения мобильного устройства (такого как мобильное устройство 102 с Фиг.1-3) согласно некоторым вариантам реализации. На этапе 402 сервер принимает множество выборок GPS-сигнала и временную отметку для каждой выборки от мобильного устройства. Например, мобильное устройство может собрать и передать множество участков необработанных GPS-сигналов, выбранных на различных интервалах. В некоторых случаях, длина выборки и/или интервалов может изменяться. Например, сервер может принимать одну или более длинных выборок GPS-сигнала, которые сервер разделяет на участки. В некоторых вариантах реализации серверы могут загружать выборки GPS-сигнала из мобильного устройства во время, отличающееся от времени, когда выборки GPS-сигнала были собраны.
[0072] На этапе 404 сервер идентифицирует набор видимых спутников из участков. Например, сервер может осуществлять в каждом участке поиск всех возможных идентификаторов (ID) спутников, сочетаний доплеровской частоты и сдвигов кодов для выбора спутников с самым сильным сигналом. Например, сервер может итерационно перебирать шаблоны C/A-кодов на возможных доплеровских частотах и сдвигах кода для каждого спутника для идентификации самого сильного сигнала.
[0073] Как только самый сильный спутник выбран, сервер удаляет GPS-сигнал, относящийся к самому сильному спутнику, из участка и добавляет выбранный спутник в набор видимым спутников. Например, сервер может удалить GPS-сигнал, относящийся к выбранному спутнику, посредством выполнения проецирования на подходящее подпространство сигналов, определенное шаблонами C/A-кодов выбранных спутников. Сервер продолжает повторять процесс выбора спутника с самым сильным сигналом и удаления сигнала, относящегося к такому спутнику, либо пока не будет удовлетворен критерий остановки (например, идентифицировано достаточное количество спутников для того, чтобы могло быть вычислено местоположение мобильного устройства, пока не будут идентифицированы все видимые спутники, или пока оставшиеся сигналы в участке не станут достаточно сильными для достоверной идентификации широковещательных спутников). Примерами данной процедуры являются алгоритмы согласованного преследования и ортогонального согласованного преследования. По такому принципу набор видимых спутников может быть определен для каждого участка.
[0074] На этапе 406 сервер идентифицирует набор хороших спутников из набора видимых спутников. Сервер идентифицирует хорошие спутники посредством сопоставления набора видимых спутников со множеством участков и классификации каждого видимого спутника в качестве любо хорошего (то есть, видимого спутника), плохого (то есть ложной идентификации), либо неизвестного (то есть не может быть классифицирован в качестве либо хорошего, либо плохого). Например, сервер может первоначально установить каждому видимому спутнику статус «неизвестный». Сервер определяет хорошие и плохие спутники посредством сравнения данных, относящихся к каждому спутнику, по всем участкам. Например, сервер может вычислить разности между сдвигами кода каждого из участков. Сервер может сравнить разности для первой пороговой величины, и если разности меньше первой пороговой величины, то сервер может идентифицировать спутник в качестве «хорошего». Однако, если разности больше первой пороговой величины, то сервер может сравнить разности со второй пороговой величиной, и если разности больше второй пороговой величины, то идентифицировать спутник в качестве «плохого». Сервер может классифицировать оставшиеся спутники (то есть, спутники с разностями сдвига кода, большими первой пороговой величины и меньшими второй пороговой величины), а также любой спутник, который был видим только в одном участке, в качестве «неизвестных».
[0075] На этапе 408 сервер извлекает эфемеридные данные из Базы Орбитальных Данных NASA. В одном конкретном примере сервер может извлекать данные эфемериды и альманаха из базы орбитальных данных NASA периодически и сохранять информацию в запоминающем устройстве, таком как считываемый компьютером носитель 310 хранения информации, для использования в более позднее время. Хранение данных эфемериды и альманаха в частности полезно, когда выборки GPS-сигнала собираются, хранятся на мобильном устройстве в течение некоторого промежутка времени и загружаются на сервер позже.
[0076] На этапе 410 сервер может оценить местоположение мобильного устройства из эфемериды, набора хороших спутников, временных отметок и псевдодальностей. Например, сервер может вычислить задержку на распространение посредством вычисления CNT c использованием опорного местоположения. Затем сервер может направить местоположение обратно в мобильное устройство или одну или более баз данных для научного исследования.
[0077] На Фиг.4 представлен примерный процесс 400 для оценивания местоположения мобильного устройства посредством идентификации набора спутников из последовательности участков выборок GPS-сигнала. На Фиг.5 и 6 более подробно представлены возможные варианты реализации для идентификации набора спутников.
[0078] На Фиг.5 показана блок-схема последовательности операций примерного процесса 500 для идентификации набора видимых спутников согласно некоторым вариантам реализации. На этапе 502 сервер инициализирует набор видимых спутников в качестве пустого набора (то есть, первоначально сервер не идентифицировал ни одного из шаблонов C/A-кодов в участках GPS-сигнала, принятых от мобильного устройства).
[0079] На этапе 504 сервер осуществляет в одном из участков GPS-сигнала поиск всех возможных идентификаторов спутников, сочетаний доплеровской частоты и сдвигов кода и выбирает лучшее согласование. Лучшее согласование может быть выбрано посредством идентификации спутника с самым сильным сигналом внутри участка. Например, сервер может итерационно перебирать шаблоны C/A-кодов на возможных доплеровских частотах и сдвигах кода для каждого спутника для идентификации самого сильного сигнала.
[0080] На этапе 506 сервер добавляет лучшее согласование (то есть, спутник с самым сильным сигналом в выборке) в набор видимых спутников. Например, набор видимых спутников может быть выражен следующим образом:
,
X
x
k
(k)
(k)
где  обозначает набор видимых спутников, является лучшим согласованием, а  является количеством итераций по процессу 500.
[0081] На этапе 508 сервер удаляет GPS-сигнал, относящийся к лучшему согласованию, из участка. Например, сервер может удалить GPS-сигнал, относящийся к выбранному спутнику, посредством выполнения проецирования на подходящее подпространство сигналов, определенное шаблонами C/A-кодов выбранных спутников.
r
r
(k)
(k-1)
[0082] В согласованном преследовании новый сигнал, , может быть вычислен с использованием предыдущей выборке, , следующим образом:
,
x
k
r
r
(k)
(k)
(k-1)
где снова является лучшим согласованием, и  является количеством итераций по процессу 500. В ортогональном согласованном преследовании новый сигнал, , может быть вычислен с использованием предыдущей выборки, , следующим образом:
,
P
k
x
(
k
)
где  является ортогональной проекцией на подпространство, охваченное всеми предварительно идентифицированными шаблонами C/A-кодов вплоть до текущей итерации .
[0083] На этапе 510 сервер определяет, удовлетворен ли критерий остановки. Например, критерий остановки может быть предварительно определенным количеством идентификаций спутников (то есть, идентифицировано достаточное количество спутников так, чтобы могло быть вычислено местоположение мобильного устройства), идентифицированы все видимые спутники, или оставшиеся сигналы в участках не достаточно сильны для достоверной идентификации широковещательных спутников. Если критерий остановки удовлетворен, то процесс 500 переходит на этап 512, и сервер выводит набор видимых спутников, иначе процесс 500 возвращается на этап 504 для идентификации другого лучшего согласования.
[0084] На Фиг.6 показана блок-схема последовательности операций примерного процесса 600 для выбора набора хороших спутников из набора видимых спутников согласно некоторым вариантам реализации. На этапе 602 сервер принимает набор видимых спутников. Например, набор видимых спутников может быть принят от мобильного устройства или сгенерирован сервером с использованием процесса 500, как описано выше.
[0085] На этапе 604 сервер инициализирует каждый из видимых спутников со статусом «неизвестный». Каждый видимый спутник может быть классифицирован в качестве хорошего (то есть, видимого спутника), плохого (то есть ложной идентификации) или неизвестного (то есть не может быть классифицирован в качестве либо хорошей, либо плохой идентификации). Спутники инициализируются в качестве «неизвестных», потому что вследствие малого размера участков неожиданные радиопомехи или другие помехи могут сильно ухудшить GPS-сигнал и вызвать неправильное выявление спутников.
D
CP
CP
1
k
n
n
1
k
1
2
[0086] На этапе 606 сервер вычисляет разность между сдвигами кода каждого спутника по множеству GPS-выборок. Например, разности, , в сдвиге кода, с  по , для спутников, с  по , выявленные в двух GPS-выборках, с  по , могут быть вычислены следующим образом:
D
если спутник фактически видим мобильному устройству, когда GPS-сигнал выбран, то разности, , в сдвигах кода между участками относительно малы.
[0087] На этапе 608 сервер сравнивает разности в сдвигах кода для каждого спутника с пороговой величиной и добавляет спутник в набор «хороших» спутников, если разность меньше пороговой величины. Если, однако, сдвиг кода спутника больше пороговой величины, то сервер может оставить спутник в наборе неизвестных спутников или сравнить разность со второй пороговой величиной, и если разность больше второй пороговой величины, то добавить спутник в набор плохих спутников.
[0088] На Фиг.4-6 представлены примерные процессы для идентификации набора спутников из последовательности или участков выборок GPS-сигнала. На Фиг.7 показан примерный процесс для оценивания местоположения с использованием набора спутников.
[0089] На Фиг.7 показана блок-схема последовательности операций примерного процесса 700 для оценивания местоположения мобильного устройства согласно некоторым вариантам реализации. На этапе 702 сервер принимает набор хороших спутников. Например, набор хороших спутников может быть определен согласно процессам 500 и 600, описанным выше. В некоторых вариантах реализации сервер может также принять набор неизвестных спутников и набор видимых спутников (то есть, полный набор спутников, идентифицированных в процессе 500, включающий в себя спутники, классифицированные в качестве плохих).
[0090] На этапе 704 сервер оценивает местоположение с использованием набора хороших спутников. Как описано выше, сервер может оценить местоположение на основе моментов времени, в которые GPS-сигнал был выбран, идентификаторов (ID) хороших спутников, данных эфемериды и альманаха (которые могут быть получены из базы орбитальных данных NASA или декодированы из выборок GPS-сигнала), и псевдодальностей.
[0091] На этапе 706 сервер определяет, способен ли сервер оценить местоположение из набора хороших спутников. Например, в некоторых примерах, меньше минимального количества спутников, необходимых для определения местоположения, может оказаться классифицировано в качестве хороших, и оцененное местоположение может быть недостоверным или ошибочным. Если сервер неспособен оценить местоположение, то процесс 700 переходит на этап 708, и сервер добавляет каждый из других спутников в наборе видимых спутников по одному за раз в набор хороших спутников и повторно оценивает местоположение. Иначе, если сервер смог оценить местоположение, то процесс переходит на этап 710 и сервер пытается улучшить точность первоначально оцененного местоположения посредством использования оставшихся неизвестных спутников.
[0092] На этапе 708 сервер определяет, имеются ли непроверенные спутники. Если нет никаких непроверенных спутников и сервер все еще неспособен оценить местоположение, то процесс 700 переходит на этап 712, и сервер выводит отказ (то есть, никакое местоположение не может быть оценено из GPS-выборок, принятых от мобильного устройства). Если все еще присутствуют непроверенные спутники, то сервер временно добавляет один из непроверенных спутников в набор хороших спутников, и процесс 700 переходит на этап 714.
[0093] На этапе 714 сервер пытается повторно оценить местоположение с использованием обновленного набора хороших спутников. Местоположение, оцененное с использованием плохих (то есть, неправильно идентифицированных) спутников, будет иметь ошибочное, невозможное или неправильное положение (такое как на высотах намного выше или ниже поверхности Земли). Таким образом, сервер проверяет местоположение, оцененное после добавления каждого непроверенного спутника, с целью устранения ошибочных местоположений. Например, сервер может ограничить действительные местоположения диапазоном высот около поверхности Земли, например, между 500-8000 м, что приводит в результате к отклонению многих из местоположений, оцененных с использованием плохих спутников. В других примерах сервер может осуществить доступ к базе данных API высот USGS для извлечения истинной высоты Земной поверхности для каждого из местоположений, оцененных с использованием обновленного набора хороших спутников. Посредством использования истинных высот, которые могут быть извлечены из базы данных API высот USGS, сервер способен идентифицировать как ошибочные местоположения, так и фактические местоположения мобильного устройства.
[0094] На этапе 716, если сервер способен оценить местоположение, то процесс 700 переходит на этап 718, и сервер выводит местоположение в качестве местоположения мобильного устройства. Например, когда база данных API высот USGS согласует высоту на долготе и широте местоположения, оцененного с использованием обновленного набора хороших спутников, то сервер способен оценить местоположение. Если, однако, сервер все еще неспособен оценить местоположение с использованием обновленного набора хороших спутников, то сервер удаляет спутник, добавленный в набор хороших спутников, и возвращается на этап 708 и повторяет этапы 708, 712, 714 и 716. Сервер продолжает добавлять непроверенные спутники в набор хороших спутников и повторно оценивать местоположения, пока либо не останется каких-либо спутников непроверенными, либо не сможет быть выведено действительное местоположение.
[0095] Как показано на этапе 706, если местоположение было первоначально оценено с использованием набора хороших спутников, то процесс 700 переходит на этап 710. На этапе 710 сервер, используя информацию о положении, относящуюся к местоположению, проверяет, не могут ли какие-либо оставшиеся спутники быть добавлены в набор хороших спутников. Например, как описано выше, сервер может повторно оценить местоположение с использованием обновленных наборов хороших спутников и сравнить высоту нового местоположения с высотой, извлеченной из базы данных API высот USGS, на долготе и широте нового местоположения. В других примерах сервер может сравнить расстояние между исходным местоположением и недавно оцененным местоположением и определить, что новое местоположение действительно, если расстояние меньше порогового расстояния.
[0096] На этапе 722 сервер пополняет набор хороших спутников идентифицированными спутниками. Например, сервер может добавить некоторые из спутников, которые были первоначально классифицированы в качестве неизвестных, в набор хороших спутников на основе анализа информации о положении, как описано выше.
[0097] На этапе 724 сервер повторно оценивает местоположение с использованием обновленного набора хороших спутников, и на этапе 718 сервер выводит новое местоположение в качестве местоположения мобильного устройства. Например, сервер может вывести местоположение обратно в мобильное устройство или сохранить местоположение в базе данных для анализа или исследования.
Заключение
[0098] Несмотря на то, что объект изобретения был описан на языке, специфическом для структурных признаков и/или методологических действий, следует понимать, что объект изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен описанными специфическими признаками или действиями. Вернее, эти специфические признаки и действия раскрыты в качестве примерных форм реализации формулы изобретения.