Saya telah menciptakan sistem TDOA yang cukup sederhana yang menggunakan sinyal ultrasonik yang dipancarkan dari dua speaker ke ponsel geolocate (relatif ke speaker). Kedua sinyal dipisahkan oleh frekuensi.
Sistem memiliki batasan-batasan berikut:
- Sinyal harus tidak terdengar. Untuk itu kami tetap menggunakan frekuensi di atas 17 kHz. Beberapa orang masih bisa mendengarnya, tetapi kebanyakan tidak.
- Tingkat sampel adalah 44,1 kHz.
- Musik biasanya akan diputar, sehingga ada banyak gangguan pada frekuensi yang lebih rendah.
- Kami tidak memiliki kontrol atas seberapa baik speaker dan mikrofon bekerja pada frekuensi atas, jadi kami menjaga batas atas kami sekitar 20 kHz.
Sinyal khusus yang saya gunakan adalah BPSK memodulasi kode 13-bit Barker karena sifat autokorelasi yang baik. Autokorelasi seperti berikut-
Ketika saya berkorelasi silang sinyal yang diharapkan dengan sinyal yang diterima dalam kehidupan nyata, apa yang saya dapatkan biasanya terlihat seperti ini-
Biru adalah korelasi silang dengan sinyal speaker 1, dan merah adalah korelasi silang dengan sinyal speaker 2. Tampaknya gema itu penting dan, sayangnya, sering kali lebih kuat daripada sinyal jalur langsung karena penguatan arah mikrofon.
Saya mencoba mendeteksi penampilan sinyal yang paling awal karena kemungkinan itu adalah jalur langsung. Pendekatan ini sangat sensitif terhadap ambang yang saya gunakan untuk memutuskan kapan sinyal hadir dan tidak kuat sama sekali.
Saya ingin pendekatan yang kuat untuk menentukan waktu kedatangan "sebenarnya" dari sinyal - yaitu waktu kedatangan sinyal jalur langsung. Mungkin beberapa bentuk estimasi saluran dan dekonvolusi? Jika demikian, bagaimana cara kerjanya?
Data / Kode: Saya ingin memperjelas bahwa saya tidak mengharapkan siapa pun untuk menganalisis data atau memeriksa kode saya. Saya telah membuatnya tersedia jika Anda ingin melakukannya. Saya sebagian besar tertarik pada ide.
Saya membuat sinyal mentah yang diterima dan sinyal yang diharapkan termodulasi tersedia untuk diunduh. Mereka semua sampel pada 44,1 kHz. Mengaitkan sinyal yang diterima dengan sinyal yang diharapkan akan menghasilkan sesuatu yang serupa tetapi tidak identik dengan gambar di atas karena saya memindahkan sinyal yang diterima ke baseband dan memusnahkan sebelum berkorelasi dengan sinyal yang diharapkan.
Skrip Matlab Skrip Matlab memiliki skrip pembuatan sinyal (genLocationSig.m) dan skrip penerimaan / pemrosesan (calcTimingOffset.m).