Show HN: GPS alıcısı yapma projesi
(axleos.com)- gypsum, GPS sinyallerini sıfırdan çözüp konum elde etmeyi amaçlayan bir alıcı yapma projesi; dört bölümlük serinin 1. bölümü, gürültünün altına gömülü uydu sinyallerini bulmaya odaklanıyor
- GPS, yaklaşık 30 uydunun Dünya geneline gönderdiği yayın tipi bir sinyal olduğundan, uydular kimin dinlediğini bilemez ve bir veri merkezi kullanıcının radyo sinyali alımını onun yerine yapamaz
- Yeryüzündeki antene ulaşan GPS sinyali, ortam gürültüsünden 100.000 kat daha düşük güçte olabilir ve tipik bir hücresel sinyalden 100 milyon kat daha zayıf olduğundan olduğu gibi neredeyse görünmez
- Alıcı, hem uydunun hem de alıcının bildiği C/A kodunu tekrar tekrar karşılaştırarak rastgele gürültüyü ortalamayla bastırır ve 1 Mbps PRN kodunun üzerinde 50 bps veri sinyalini bulur
- Edinim (acquisition), uyduya özel PRN’i, ±5 kHz Doppler kaymasını ve kod fazını birlikte tarayarak görünen uyduları ve yaklaşık zaman gecikmesini/bağıl hızı bulmaya yönelik hesaplama yoğun bir aşamadır
GPS sinyalini doğrudan dinleme projesi
- gypsum, sıfırdan yapılan bir GPS alıcısı projesidir
- Dört bölümlük seri, GPS sinyallerini çözerek konum elde etme sürecini ele alıyor; 1. bölüm sinyali bulma ve uyduları edinme aşamasına karşılık geliyor
- GPS’te yaklaşık 30 uydu tüm Dünya’ya sinyal gönderir; bu sinyal irtifadan veya hava durumundan bağımsız olarak her zaman çevremizde bulunur
- GPS 1978’de başladı ve yazının kaleme alındığı tarih itibarıyla 45 yıl geçmişti
Sessiz beacon’lar ve sunucuyla ikame edilemeyen konum hesaplama
- GPS uydu sinyalleri yayınlandığında bir ev ampulüne benzer güçtedir, ancak yeryüzüne ulaştığında son derece zayıflar
- GPS, send-and-forget yaklaşımına yakındır; uydu kimin dinlediğini bilemez
- FM radyo ve yayın TV de benzer özelliklere sahiptir
- Bu yapı nedeniyle kimsenin GPS erişiminin kendisi için ücret alması zordur
- Konum hesaplama, bir web servisinin işlemi kullanıcı adına yapıp sonucu indirdiği yapıya uymaz
- GPS’te kullanıcının bulunduğu yere ulaşan radyo dalgalarını doğrudan dinlemek gerekir
- Veri merkezi, kullanıcının konumunda gelen radyo dalgalarını onun yerine dinleyemez
SDR ile GPS frekansını keşfetmek
- GPS sinyalini yazılımla almak ve sonradan işlemek için ayarlanabilir bir RF alıcısı gerekir; bu ekipman yazılım tanımlı radyo (SDR) olarak adlandırılır
- Spektrumu keşfetmek için SDR++ kullanılıyor
- SDR kullanırken bazı kavramlara ihtiyaç var
- bias tee: SDR iç devresi, SMA ile bağlanan antene DC güç sağlar. Kullanılan SDR’de bu varsayılan olarak kapalıydı ve elle açılması gerekiyordu
- automatic gain control (AGC): Zayıf sinyalleri yükselterek alınan verinin sinyal-gürültü oranını (SNR) iyileştirmeye çalışan bir donanım devresi veya yazılım özelliğidir
- IQ samples: I in-phase, Q ise quadrature veya imaginary bileşendir; zaman, genlik ve polarite açısından işlem yapılmasını sağlar
- SDR, ayarlanan merkez frekansta büyük bir sıçrama oluşturur
- Yeni başlayanlara, nereye bakarlarsa baksınlar güçlü bir sinyal varmış gibi görünebilir
- Merkez frekanstan biraz saparak ayarlamak veya yazılımın IQ correction özelliğini kullanmak bu sıçramayı azaltabilir
Gürültünün altına gömülü sinyali bulma yöntemi
- Yeryüzündeki antende GPS sinyali, çevredeki enerji ve sinyallerden 100.000 kat daha düşük güçte ulaşır
- GPS sinyali, thermal noise floor’un 50 dB kadar altında olabilir
- Modern GPS uyduları, alıcıya yaklaşık -130 dBm seviyesinde ulaşacak sinyaller gönderecek şekilde tasarlanmıştır
- C/A bant genişliğinde tipik bir konut ortamının thermal noise floor’u yaklaşık -110 dBm’dir
- Karşılaştırma için hücresel sinyal yaklaşık -50 dBm’dir ve GPS sinyalinden 100 milyon kat daha güçlüdür
- GPS, gürültünün altına bu şekilde gömülen sinyali tanımlamak ve çözmek için yayılı spektrum (spread-spectrum) tekniğini kullanır
C/A kodu ve PRN ile duyulmayan sinyali duymak
- GPS uyduları, alıcının bilmediği verilerle birlikte hem uydunun hem de alıcının bildiği bir sinyal gönderir
- Bu sinyale C/A code, PRN code veya chipping code denir ve uydu bunu saniyede 1.000 kez tekrarlar
- C/A, coarse acquisition ifadesinin kısaltmasıdır
- Başlangıçta askeri amaçlı tasarlanan GPS’te C/A kodu, daha hassas P code’a kilitlenmek için düşük çözünürlüklü bir aşamaydı
- Günümüzde C/A kodu çoğu sivil GPS’in temelidir; P code ise hâlâ yalnızca askeri kullanım için erişilebilirdir
- Sivil alıcıların P code kullanamamasının nedeni chipping sequence değerlerini bilmemeleridir
- P code üretim formülü açık olsaydı, C/A koduyla aynı teknik kullanılarak ona kilitlenilebilirdi
- P code’un daha hassas olmasının nedeni daha yüksek bir chipping rate ile çalışmasıdır
- Alıcı, beklenen PRN ile gerçekte alınan sinyali tekrar tekrar toplar ve karşılaştırır
- Rastgele gürültü zamanla 0’a doğru ortalanır
- PRN sinyali ise birikmeye devam ederek büyür
- GPS, birden çok uyduyu aynı anda ele almak için code-division multiple access (CDMA) kullanır
- Gerçek veri sinyali PRN koduna karıştırılarak iletilir
- PRN kodu 1 Mbps hızında çalışır
- Veri sinyali çok daha yavaş olan 50 bps hızında iletilir
- Düşük veri hızı sayesinde PRN kodu görece uzun süre boyunca kararlı bir referans sinyali olarak kalır
Uyduya özel C/A kodu üretimi
- Birden fazla uydu olduğu için alıcının hangi uyduların göründüğünü bilmesi gerekir
- Her GPS uydusunun benzersiz ve kararlı bir PRN kodu vardır
- Bu kod, sivil GPS spesifikasyonu olan IS-GPS-200L içindeki
Table 3-I (Code Phase Assignments)bölümünde tanımlanmıştır - Çevrimiçi olarak PRN kodu üretimini açıklayan çok sayıda kaynak var, ancak tüm PRN kodunu karşılaştırmaya yarayacak yeniden üretilebilir materyal fazla değildi
Edinim aşaması: görünen uyduları bulmak
- GPS alıcısı, gökyüzünde görünen uyduları bulmak için her uydunun yaydığı PRN’in bir kopyasını üretir ve antenden toplanan veride ilgili PRN’i arar
- Bu aşama acquisition olarak adlandırılır; amaç kullanıcının üzerindeki uydulara kilitlenmektir
- Alıcı, yaklaşık 1 saniyelik kısa bir anten verisi anlık görüntüsü yakalar ve her çoğaltılmış PRN ile korelasyon (correlation) hesaplar
- Çoğaltılmış PRN ile gerçek veri arasında güçlü bir korelasyon varsa, ilgili PRN’e sahip uydunun yukarıdan sinyal gönderdiği anlaşılır
- Gerçekte alınan sinyal ideal PRN’den farklıdır
- GPS sinyali Dünya atmosferinden geçerken zayıflar
- Uydu hızlı hareket ettiği için alınan sinyal Doppler kaymasına uğrar
- GPS uydularının yörünge hızı iyi bilindiğinden beklenen Doppler kayması aralığı da bellidir
- Yaklaşan uydu en fazla +5 kHz frekans artışı oluşturur
- Uzaklaşan uydu -5 kHz frekans azalması oluşturur
- Alımın başlatıldığı zaman rastgele olduğundan PRN iletiminin ortasından dinlemeye başlanabilir
- Edinim aşaması üç ekseni aynı anda tarar
- Her uydunun PRN kodu
- Beklenen Doppler kayması aralığı
- Alınan PRN ile eşleştirmek için çoğaltılmış PRN’in kaydırıldığı faz
- Hesaplama miktarı büyüktür, ancak doğru parametreler bulunduğunda korelasyon sıçraması belirgin şekilde ortaya çıkar
Uygulama yöntemi ve 1. bölümün sonucu
- Uygulama, her PRN’i zaman alanından frekans alanına dönüştürür ve gelen uydu verisinin frekansı ile her PRN kodunun spektrumunu korele eder
- Bu yöntem frekans alanında cross correlation işlemine karşılık gelir
- Zaman alanındaki faz ofseti frekans bileşenlerinin kaymasına dönüştüğü için Doppler kayması taraması ve faz taraması aynı hesaplamada işlenebilir
- Doppler kayması, görünen her uydu için en güçlü korelasyon sıçramasını veren değeri bulacak şekilde binary search’e benzer bir yöntemle yakınsatılır
-
- bölümün sonucu olarak, o anda kullanıcının üzerindeki GPS uyduları belirlenir ve her uydu için yaklaşık phase/time delay ile Doppler shift/relative velocity elde edilir
- Sonraki aşama Part 2: Tracking Pinpricks ile devam ediyor
1 yorum
Hacker News yorumları
GPS için yeterince hızlı doğrudan RF örnekleme veya doğrudan RF dönüşümlü alıcılar bulunabiliyor. Örnekler: Xilinx RFSoc https://www.mouser.com/datasheet/2/903/ds889_zynq_usp_rfsoc_..., National Instruments yazısı https://www.ni.com/en/solutions/aerospace-defense/radar-elec..., ilgili hazır donanım https://www.ni.com/en-us/shop/category/flexrio-custom-instru...
NI'nin doğrudan RF dönüşümünü maliyet açısından verimli görüp ekipmanı 30 bin dolara satması biraz tuhaf, ama 3GHz civarında faz tutarlılığı olan geniş bant alımı prototiplemek ve düzgün bir laboratuvarla bütçeye sahip olmak durumunda birkaç tane alınabilir. Seri üretim içinse özel kart maliyetlerinin daha da düşmesini bekler ya da bunun geleneksel heterodin alıcılarla yapılıp yapılamayacağına bakardım
Askeri kullanımda gelişmiş RF takip silahları endişe kaynağıysa doğrudan dönüşümlü alıcılar iyi olabilir. Çünkü düşman ekipmanının tespit edebileceği bir yerel osilatör sızıntısı yoktur
“from scratch” ifadesini görünce bunun gerçekten ne kadar sıfırdan yapıldığını merak ediyor insan; donanımın RTL-SDR olduğunu görünce biraz hayal kırıklığı yaşadım. Yine de protokol çözümleme kısmı çok ilginç ve sonuçlar da harika
GPS 1978'de başladı ama 2000'e kadar “selective availability” adlı yöntemle sinyal bilerek bozuluyordu. Bu yüzden birçok kullanım için GPS fiilen işe yaramazdı, yol navigasyonu için kesinlikle uygun değildi, vahşi doğa keşfi veya deniz navigasyonu içinse sınırlı ölçüde yararlıydı
gypsum'un anten sinyalini bir dakikadan az dinleyerek soğuk başlangıçta konumu ve doğru saati bulabilmesi çok etkileyici; hatta günümüz ticari alıcılarından bile daha iyi görünüyor. 2000'lerin başında araba yolculuklarında, yola çıkmadan önce yol kenarında GPS alıcısının konum bulması için 15-20 dakika beklemek gerekirdi; olmazsa kâğıt haritaya bakarak yola çıkardık
46 yıl sonra bile fiziksel katman tam ileri ve geri uyumluluğu koruyor; ilk konum sabitleme süresi ve kullanıcı eşdeğer menzil hatası gibi temel ölçütler, protokol uyumsuz değişiklikler olmadan 10 ila 1000 kat iyileşti
Tüm dünyaya hizmet veren toplam RF iletim gücü, tipik bir ABD hanesinin elektrik tüketiminden daha düşük; 5G, TV ve AM/FM radyodan çok daha zayıf ve gürültü tabanının altında. Bu, üst üste bindirilmiş Gold kodlarının kullanımı sayesinde mümkün oluyor
Galileo gibi rakip sistemlerle frekans paylaşımı da mümkün olacak şekilde tasarlanmış; mobil ağlarda pek görülen bir şey değil. Modülasyon verisi ile taşıyıcının fazı sabit olduğu için taşıyıcı fazı çözümleme gibi şeyler de mümkün hale geliyor; bu da daha iyi sözde mesafe ve doğruluk sağlıyor
Genel olarak tasarımcılar ya inanılmaz bir öngörüye sahipti ya da inanılmaz derecede şanslıydı; muhtemelen ikisi de
Buradaki anlam, GPS hakkında hiçbir şey bilmeyen donanımdan, yani yalnızca elektromanyetik alanı örnekleyebilen bir aygıttan başlayıp alıcıyı katman katman inşa etmekti
Eski donanımlardaki ilk konum sabitleme süresinin yavaş olmasının sebebi esasen işlem gücündeki gelişmelerle ilgili. Geleneksel GPS alıcılarının tüm uyduların ‘almanak’ verisini indirmesi gerekiyordu ve GPS veri aktarım biçimi ile hızı nedeniyle, koşullar uygun olsa bile bu en az 12,5 dakika sürüyordu
Modern işlem gücü sayesinde alıcılar, gypsum dahil, havadan gelen ipuçlarını beklemek yerine arama uzayını kaba kuvvetle tarayarak görünür uyduları bulabiliyor. Bu teknik 1. bölümün sonunda açıklanan yöntemdi
1999'da Delorme Earthmate Hyperformance GPS alıcısının RS-232 sürümünü Toughbook'a bağlayıp Delorme Street Atlas USA 6.0 civarında bir sürümü çalıştırarak araba yolculuğu yaptım
Ülkeyi bir uçtan bir uca geçerken yeterince kullanışlı yol tarifi sağladı. Şerit yönlendirmesi yoktu ama her dönüşten önce sokak adıyla birlikte dönüş talimatı veriyordu
O sürümde ses tanıma da vardı; “Daha var mı?” gibi bir şey söylediğinizde bir sonraki durak ve nihai varış noktası için tahmini varış zamanını ve mevcut konumu söylüyordu; oldukça eğlenceliydi
Selective availability altında tipik en kötü dairesel hata olasılığı yaklaşık 30 m ise, çok yoğun bölgeler dışında bu yol navigasyonu için yeterince doğrudur. Böyle yerlerde de haritaya bir kez bakmak yeterli olurdu; açık yollarda ise harikaydı
Eski GPS alıcıları takip kanalı sayısını pazarlama unsuru yapardı; düşük maliyetli alıcılarda yalnızca 6-8 uyduyu izleyebilecek donanım varken pahalı alıcılar 12 uyduyu izleyebiliyordu
Dolayısıyla bu yazılım tanımlı alıcı, normalde donanıma ait olacak epey fazla kısmı gerçekleştiriyor ve görünür olan tüm uyduları takip edebiliyor
Yazılım tanımlı yaklaşımın güçlü avantajları var. Örneğin ilk uydu edinimi, alınan sinyal ile çeşitli Gold kodları arasındaki çapraz korelasyonu hesaplar; bunu Fourier uzayında yaparsanız sinyali oldukça hızlı edinebilirsiniz
Transistör seviyesine kadar inen hardcore bir DIY GPS alıcısı istiyorsanız, https://lea.hamradio.si/~s53mv/navsats/theory.html keyifle okunur gibi duruyor. 1990’lar usulü bir DIY GPS alıcısı; elde çizilmiş devre şemaları, elde çizilmiş PCB ve hatta el yapımı antene kadar her şey var
Üstelik 1990’ların sonunda sıkışık kentsel ortamlarda ideal olmasa da — ki bu, modern alıcıların da zaman zaman zorlandığı bir alan — araç tipi diferansiyel GPS düzeltmesi de mümkündü. NYC gibi kıyıdaki büyük ve yoğun nüfuslu şehirlerde kullanılabiliyordu
Eski araç navigasyonları hantaldı ve harita verileri de genel olarak berbattı, ama seçici kullanılabilirlik yüzünden “kesinlikle işe yaramazdı” demek de doğru olmaz
Elbette epey kötü olduklarını kabul ediyorum. Yine de seçici kullanılabilirlik yalnızca etkenlerden biriydi; bugünün işlem gücü ve daha iyi haritalarıyla, seçici kullanılabilirliğin konum hatası olsa bile bunu telafi etmek daha kolay olurdu
Güncellenmiş düzenlemenin https://www.space.commerce.gov/itar-controls-on-gps-gnss-rec... hukuki dili o kadar karmaşık ki bunun hâlâ geçerli olup olmadığını anlamak bile zor
SDR demişken, ITAR Kraken RF ekibinin yaptığı pasif radar GNU Radio modülünün kaldırılmasının da sebebiydi
Bununla birlikte bakması hoş, harika görseller içeren https://ciechanow.ski/gps/ sitesini de seviyorum
O interaktif grafiklerle yarışılmaz
Buna, analizi desteklemek ve nihai çözümü uygulamak için yazılım da geliştirebilme becerisi eklenince harika bir proje çıkmış. GPS’i uzun yıllardır mesleki olarak inceliyor ve kullanıyorum ama hâlâ her şeyi bilmiyorum. Koda bakmayı dört gözle bekliyorum
Geriye dönüp bakınca gerçekten iyi ki yapmışım diyorum. Artık RF alanını çok daha somut biçimde anlıyor ve bir araç gibi kullanabiliyor gibiyim. Bu bana bilgisayarların sevdiğim yanlarını hatırlatıyor
P kodunu üreten formül kamuya açık olsaydı, sivil GPS alıcıları da C/A kodunda kullanılan tekniklerin aynısıyla buna kilitlenebilirdi
Hepsini okumadım ama merak ettim: Daha hassas GPS için P kodu chipping sequence’ini brute force ya da başka bir yöntemle elde etmenin bir yolu var mı?
GPS’in geliştirilme öyküsü ilginizi çekiyorsa, Richard Easton’ın “GPS Declassified” kitabı bunu çok ilgi çekici biçimde anlatıyordu
GPS uçak modunda da, kelimenin tam anlamıyla uçağın içinde de çalışır. Hücresel hizmet ya da Wi-Fi olmadan da çalışır. ABD GPS uydu takımını kontrol ediyor ve gerektiğinde belirli bir bölgedeki GPS’i kapatabiliyor, hatta bunu gerçekten yaptı da. Bu yüzden başka ülkeler kendi GNSS uydu takımlarını fırlattı
GPS uydularının aşağıya gönderdiği şeyin konum değil yalnızca zaman olması da ilginç. Bunu telefonun aldığı verilerle yapmak gerçekten eğlenceli bir alıştırma ve telefon doğrudan uyduya bağlı
Ek olarak yakın zamanda yıldızlarla seyrüseferin temel ilkelerini öğrendim; tamamen farklı bir mekanizma olmasına rağmen onun da doğru zamanı korumaya büyük ölçüde dayanması ilginç bir simetri gibi geldi
Benim kullandığım ilk birkaç GPS alıcısı, veri bağlantısı hiç olmayan bağımsız cihazlardı; bu yüzden GPS’in veriye ihtiyaç duymaması bana gayet doğal geliyor
Ancak telefon gibi cihazlar, GPS veri aktarımını beklemekten çok daha hızlı oldukları için bu veriyi genellikle başka kaynaklardan alır
Belirli bir bölgedeki GPS’i keyfi olarak kapatabilme özelliği, benim anladığım kadarıyla daha yeni GPS uydularında artık yok; hatta şu anda faal olan bütün uydularda da olmayabilir
iPhone kullanırsanız, inişten sonra bu fotoğraflar çekildikleri andaki konumla ilişkilendirilir. Bu sayede tesadüfen gördüğünüz ilginç bir arazi şeklini daha sonra yeniden bulabilirsiniz.
Hatta kullanılan arama terimleri ve iç ses bile yer alıyor. Sadece balık tutmayı öğretmek yerine, bizzat olta makinesini yapmak için gereken parçaların nasıl bulunacağını göstermesi gibi; bu, benim en sevdiğim türde bir öğretici
Yine de bu yaklaşımı olumlu karşılamanıza gerçekten minnettarım