GnssMeasurement Yapı Referansı
#include < gps.h >
Veri alanları | |
size_t | boyut |
GnssÖlçümBayraklar | bayraklar |
int16_t | svid |
GnssConstellationType | takımyıldız |
çift | time_offset_ns |
GnssÖlçümDurumu | durum |
int64_t | alınan_sv_time_in_ns |
int64_t | alınan_sv_time_uncertainty_in_ns |
çift | c_n0_dbhz |
çift | pseudorange_rate_mps |
çift | pseudorange_rate_uncertainty_mps |
GnssBirikmişDeltaRangeState | birikmiş_delta_range_state |
çift | birikmiş_delta_range_m |
çift | birikmiş_delta_range_uncertainty_m |
batmadan yüzmek | taşıyıcı_frekans_hz |
int64_t | taşıyıcı_döngüler |
çift | taşıyıcı_faz |
çift | taşıyıcı_faz_belirsizliği |
GnssMultipathIndicator | multipath_indicator |
çift | snr_db |
Detaylı Açıklama
Bir GNSS Ölçümünü temsil eder, ham ve hesaplanmış bilgileri içerir.
Bağımsızlık - Bu yapıda rapor edilen tüm sinyal ölçüm bilgileri (örn. sv_time, pseudorange_rate, multipath_indicator) yalnızca GNSS sinyal ölçümlerine dayanmalıdır. Bilinen veya tahmin edilen konum, hız veya zamana dayalı olarak beklenen ölçümleri hesaplayarak veya raporlayarak ölçümleri sentezleyemezsiniz.
Saha Dokümantasyonu
çift birikmiş_delta_range_m |
Metre cinsinden son kanal sıfırlamasından bu yana birikmiş delta aralığı. Pozitif bir değer, SV'nin alıcıdan uzaklaştığını gösterir.
'Birikmiş delta aralığı'nın işareti ve bunun 'taşıyıcı faz' işaretiyle ilişkisi şu denklemle verilir: birikmiş delta aralığı = -k * taşıyıcı faz (burada k bir sabittir)
'Birikmiş delta aralığı durumu' != GPS_ADR_STATE_UNKNOWN ise bu değer doldurulmalıdır. Ancak, verilerin yalnızca şu durumlarda doğru olması beklenir: 'birikmiş delta aralığı durumu' == GPS_ADR_STATE_VALID.
GnssBirikmişDeltaRangeDurumu birikmiş_delta_range_state |
çift birikmiş_delta_range_uncertainty_m |
çift c_n0_dbhz |
int64_t taşıyıcı_döngüleri |
Uydu ve alıcı arasındaki tam taşıyıcı döngü sayısı. Referans frekansı 'carrier_frequency_hz' alanı tarafından verilir. Bu değerin birikimindeki olası döngü kaymalarının ve sıfırlamaların göstergeleri, birikmiş_delta_aralık_durumu bayraklarından çıkarılabilir.
Veri mevcutsa, 'bayraklar' GNSS_MEASUREMENT_HAS_CARRIER_CYCLES içermelidir.
yüzer taşıyıcı_frequency_hz |
çift taşıyıcı_faz |
[0.0, 1.0] aralığında alıcı tarafından algılanan RF fazı. Bu genellikle tam taşıyıcı faz ölçümünün kesirli kısmıdır.
Referans frekansı 'carrier_frequency_hz' alanı tarafından verilir. Değer, içinde 'taşıyıcı faz belirsizliğini' içerir.
Veriler mevcutsa, 'bayraklar' GNSS_MEASUREMENT_HAS_CARRIER_PHASE içermelidir.
çift taşıyıcı_faz_belirsizlik |
GnssConstellationType takımyıldızı |
GnssMeasurementFlags bayrakları |
GnssMultipathIndicator multipath_indicator |
Olayın 'çok yollu' durumunu gösteren bir numaralandırma.
Çok yollu Göstergenin, çarpık korelasyon tepe noktaları olarak ortaya çıkan örtüşen sinyallerin varlığını bildirmesi amaçlanmıştır.
- bozuk bir korelasyon tepe şekli varsa, çoklu yolun GNSS_MULTIPATH_INDICATOR_PRESENT olduğunu bildirin.
- bozuk bir korelasyon tepe şekli yoksa, GNSS_MULTIPATH_INDICATOR_NOT_PRESENT rapor edin
- sinyaller bu bilgiyi ayırt etmek için çok zayıfsa, GNSS_MULTIPATH_INDICATOR_UNKNOWN rapor edin
Örnek: standartlaştırılmış örtüşen Çok Yollu Performans testi (3GPP TS 34.171) yapılırken, Çok Yollu göstergesi, izlenen ve çok yol içeren sinyaller için GNSS_MULTIPATH_INDICATOR_PRESENT ve izlenen ve çok yol içermeyen sinyaller için GNSS_MULTIPATH_INDICATOR_NOT_PRESENT rapor etmelidir.
çift pseudorange_rate_mps |
m/s cinsinden zaman damgasındaki sözde aralık oranı. Belirli bir Sözde Aralık Hızı değerinin düzeltilmesi, alıcı ve uydu saat frekansı hataları için düzeltmeleri içerir. Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki açıklamaya bakın.)
'Düzeltilmemiş' 'sözde aralık oranı' sağlamak ve GpsClock 'kayma' alanını da sağlamak zorunludur (Düzeltilmemiş sözde aralık oranını sağlarken yukarıda açıklanan düzeltmeleri uygulamayın.)
Değer, içindeki 'sözde aralıklı oran belirsizliğini' içerir. Pozitif bir 'düzeltilmemiş' değer, SV'nin alıcıdan uzaklaştığını gösterir.
'Düzeltilmemiş' 'sözde aralık oranı'nın işareti ve bunun 'doppler kayması' işaretiyle ilişkisi şu denklemle verilir: sözde aralık oranı = -k * doppler kayması (burada k bir sabittir)
Bu, bu kanaldan alınan yeni sinyal ölçümlerine dayalı olarak mevcut en doğru sözde aralık oranı olmalıdır.
Bu değerin tipik taşıyıcı faz PRR kalitesinde (saniyede birkaç cm/sn belirsizlik veya daha iyi) sağlanması zorunludur - sinyaller yeterince güçlü ve kararlı olduğunda, örneğin >= 35 dB-Hz'de bir GPS simülatöründen gelen sinyaller.
çift pseudorange_rate_uncertainty_mps |
int64_t alınan_sv_time_in_ns |
Ölçüm zamanında, nanosaniye cinsinden alınan GNSS Haftanın Zamanı. Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki açıklamaya bakın.)
GPS ve QZSS için bu: Ölçüm zamanında, nanosaniye cinsinden Alınan GPS Haftanın Zamanı. Değer, mevcut GPS haftasının başlangıcına göredir.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şöyle olabilir: Aranıyor: [0]: GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [0 1ms]: GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Bit senkronizasyonu: [0 20ms] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı Alt çerçeve senkronizasyonu: [0 6s]: GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ayarlandı TOW kodu çözüldü: [0 1hafta]: GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
İyi not edin: tamsayı milisaniyede herhangi bir belirsizlik varsa, 'durum' alanında GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS buna göre ayarlanmalıdır.
'state' != GNSS_MEASUREMENT_STATE_UNKNOWN ise bu değer doldurulmalıdır.
Glonass için bu: Nanosaniye cinsinden ölçüm zamanında günün alınan Glonass saati.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şöyle olabilir: Aranıyor : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Sembol senkronizasyonu : [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlandı Bit senkronizasyonu: [0 20ms]: GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı Dize senkronizasyonu: [0 2s]: GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC ayarlandı: GÜNDÜ_ 0 0MS_STRING_SYNC, gün 0 saatinde : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı.
Beidou için bu: Nanosaniye cinsinden ölçüm zamanında, haftanın Beidou saatinde alındı.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şöyle olabilir: Aranıyor : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Bit senkronizasyonu (D2): [ 0 2ms]: gnss_measurement_state_bds_d2_bit_sync, bit senkronizasyonu (d1) ayarlandı: [0 20ms]: gnss_measurement_state_bit_syc, alt çerçeve (d2): [0 0.6s]: gnss_measurement_state_bes_sfes için [d2) set (d2) set (d2) set (d2) set (d2) hafta : [ 0 1hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
Galileo için bu şudur: Galileo haftanın alınan zamanı, nanosaniye cinsinden ölçüm zamanında.
E1BC kod kilidi : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ayarlandı E1C 2. kod kilidi: [0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ayarlandı
E1B sayfası : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ayarlandı Haftanın saati: [ 0 1hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
SBAS için bu: Alınan SBAS zamanı, nanosaniye cinsinden ölçüm zamanında.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şöyle olabilir: Aranıyor : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlanır Sembol senkronizasyonu : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlandı Mesaj: [0 1s]: GNSS_MEASUREMENT_STATE_SBAS_SYNC ayarlandı
int64_t alınan_sv_time_uncertainty_in_ns |
çift snr_db |
GnssMeasurementDurum durumu |
int16_t svid |
GnssSvInfo::svid'de tanımlandığı gibi uydu araç kimlik numarası Bu zorunlu bir değerdir.
double time_offset_ns |
Ölçümün nanosaniye cinsinden alındığı zaman farkı. Referans alıcının zamanı GpsData::clock::time_ns tarafından belirtilir ve GpsClock:: type ile belirtilen şekilde yorumlanmalıdır.
time_offset_ns işareti aşağıdaki denklemle verilir: ölçüm süresi = GpsClock::time_ns + time_offset_ns
Ölçüm için ayrı bir zaman damgası sağlar ve nanosaniye altı doğruluk sağlar. Bu zorunlu bir değerdir.
Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/içerme/donanım/ gps.h