Cep telefonlarını coğrafi olarak konumlandırmak (hoparlörlere göre) için iki hoparlörden yayılan ultrasonik sinyalleri kullanan oldukça basit bir TDOA sistemi oluşturdum. İki sinyal frekans ile ayrılır.
Sistem aşağıdaki kısıtlamalara sahiptir:
- Sinyaller duyulmamalıdır. Bu amaçla 17 kHz üzerindeki frekanslara bağlı kalıyoruz. Birkaç kişi bunu duyabiliyor, ama çoğu duyamıyor.
- Örnekleme hızı 44,1 kHz'dir.
- Müzik genellikle çalınır, bu nedenle düşük frekanslarda çok fazla parazit vardır.
- Hoparlörlerin ve mikrofonların üst frekanslarda ne kadar iyi çalıştığı üzerinde kontrolümüz yoktur, bu nedenle üst sınırımızı yaklaşık 20 kHz'de tuttuk.
Kullandığım özel sinyal, iyi otokorelasyon özellikleri nedeniyle BPSK modülasyonlu 13 bit Barker kodlarıdır. Otokorelasyon aşağıdaki gibi görünür-
Gerçek hayatta alınan sinyale karşı beklenen sinyali çapraz olarak ilişkilendirdiğimde, tipik olarak aldığım şey şöyle görünüyor-
Mavi, hoparlör 1 sinyali ile çapraz korelasyon ve kırmızı, hoparlör 2 sinyali ile çapraz korelasyondur. Ekoların anlamlı olduğu ve maalesef mikrofonun yön kazancı nedeniyle doğrudan yol sinyalinden daha güçlü olduğu görülmektedir.
Doğrudan yol olması muhtemel olduğu için sinyalin en eski görünümünü tespit etmeyi denedim. Bu yaklaşım, sinyal bulunduğunda karar vermek için kullandığım eşik değerine çok duyarlıdır ve bu nedenle hiç de sağlam değildir.
Sinyalin "gerçek" varış zamanını, yani doğrudan yol sinyalinin varış zamanını belirlemek için sağlam bir yaklaşım istiyorum. Belki bir çeşit kanal tahmini ve dekonvolüsyon? Öyleyse, bu nasıl çalışır?
Veri / Kod: Kimsenin verileri analiz etmesini veya kodumu incelemesini beklemediğimi açıklığa kavuşturmak istiyorum. Bunu yapmak istemeniz durumunda onları kullanıma sundum. Çoğunlukla fikirlerle ilgileniyorum.
Ham alınan sinyali ve modüle edilmiş beklenen sinyalleri indirmeye hazır hale getirdim. Hepsi 44.1 kHz'de örneklenmiştir. Alınan sinyalin beklenen sinyallerle ilişkilendirilmesi yukarıdaki resimle benzer ancak özdeş olmayan bir şey üretecektir çünkü alınan sinyalleri taban bandına taşıyorum ve beklenen sinyallerle korelasyon yapmadan önce azalıyorum.
Matlab komut dosyaları Matlab komut dosyalarında hem sinyal oluşturma komut dosyası (genLocationSig.m) hem de alma / işleme komut dosyam (calcTimingOffset.m) bulunur.