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).
sumber
Jawaban:
Ini bukan kode yang Anda cari ...
Seperti yang saya sebutkan di komentar, ada beberapa cara untuk melakukan TDOA yang kuat. (Korelasi silang dengan Kicauan Linier, Kicauan Eksponensial, dan metode tipe CDMA). Anda telah membangun sistem TDOA dengan menggunakan kode, (dan itu memang pilihan yang baik dibandingkan chirps linier jika Anda membutuhkan ketahanan terhadap doppler), namun Anda membatasi diri secara artifisial dalam dua cara:
Gunakan PN-Sequence:
Jadi, sangat sederhana, ubah kode yang Anda gunakan untuk memodulasi operator Anda dengan: Gunakan PN-Sequences sebagai gantinya. Kode-kode PN yang dihasilkan bisa sepanjang (hampir) sewenang-wenang, dan dapat dihasilkan melalui LFSR . (Mereka juga menggunakan nama 'pemutih' dalam beberapa teks). Berikut adalah tiga urutan PN panjang , , dan masing-masing.61 12731 61 127
Korelasi otomatis sirkuler dan linier dari urutan ditunjukkan di bawah ini. Mereka jelas akan menghasilkan spektrum putih, tetapi lebih dari itu, kita tidak lagi terbatas pada panjang chip. Faktanya, kode terakhir, PN_127, menghasilkan penguatan pengkodean dB gain di atas urutan barker, sambil memastikan spektrum putih.10 l o g [ 12713 10 log[12713]≈10
Mentransmisikan Pembukaan:
Dalam aplikasi khusus Anda, Anda menyebutkan bahwa Anda hanya mentransmisikan satu bit. Anda harus mencoba untuk menghindari ini jika Anda dapat membantunya, dan mengirimkan bit sebanyak yang diperbolehkan oleh aplikasi Anda, untuk mendapatkan penguatan kode lebih lanjut .
Cobalah salah satu atau kedua solusi itu, dan pasang hasilnya. Saya berharap akan ada perbaikan nyata yang bisa kita ulangi. (Pembentukan pulsa, urutan PN yang berbeda / lebih lama, dll).
sumber