Я створив досить просту систему TDOA, яка використовує ультразвукові сигнали, що випромінюються з двох динаміків для геолокації (відносно колонок) мобільних телефонів. Два сигнали розділені за частотою.
Система має такі обмеження:
- Сигнали повинні бути не чутими. З цією метою ми дотримуємось частот понад 17 кГц. Кілька людей все ще можуть це почути, але більшість не може.
- Частота вибірки - 44,1 кГц.
- Музика, як правило, відтворюється, тому на низьких частотах є багато перешкод.
- Ми не маємо контролю над тим, наскільки добре працюють динаміки та мікрофони на верхніх частотах, тому ми зберегли верхню межу приблизно на рівні 20 кГц.
Сигнал, який я використовую, - це модульовані BPSK 13-бітні коди Баркера через їх хороші властивості автокореляції. Автокореляція виглядає так:
Однак, коли я перехрещую співвідношення очікуваного сигналу з прийнятим сигналом у реальному житті, те, що я отримую, зазвичай виглядає так:
Синій - це поперечна кореляція із сигналом 1 динаміка, а червоний - це поперечна кореляція із сигналом 2 динаміка. Здається, відлуння значні і, на жаль, часто сильніші, ніж сигнал прямого шляху внаслідок направленого посилення мікрофона.
Я намагався просто виявити якнайшвидшу появу сигналу, оскільки це, ймовірно, прямий шлях. Цей підхід дуже чутливий до порогу, який я використовую для вирішення, коли сигнал присутній, і тому він не є надійним.
Я хотів би надійний підхід до визначення "справжнього" часу прибуття сигналу, тобто часу прибуття сигналу прямого шляху. Можливо, якась форма оцінки каналу та деконволюція? Якщо так, то як би це працювало?
Дані / Код: Я хочу уточнити, що я не очікую, що хтось аналізуватиме дані чи перевірятиме мій код. Я зробив їх доступними у випадку, якщо ви хочете зробити це. Мене найбільше цікавлять ідеї.
Я зробив вихідний сигнал і модулював очікувані сигнали для завантаження. Всі вони беруть вибірку на частоті 44,1 кГц. Співвіднесення отриманого сигналу з очікуваними сигналами призведе до отримання подібного, але не тотожного малюнку вище, тому що я переміщую отримані сигнали до базової смуги і зменшується перед співвідношенням з очікуваними сигналами.
Сценарії Matlab Сценарії Matlab мають як сценарій генерації сигналу (genLocationSig.m), так і мій сценарій прийому / обробки (calcTimingOffset.m).