Tôi đã tạo ra một hệ thống TDOA khá đơn giản, sử dụng tín hiệu siêu âm phát ra từ hai loa để định vị địa lý (so với loa) điện thoại di động. Hai tín hiệu được phân tách bằng tần số.
Hệ thống có các ràng buộc sau:
- Các tín hiệu phải không nghe được. Cuối cùng, chúng tôi sử dụng tần số trên 17 kHz. Một vài người vẫn có thể nghe thấy điều đó, nhưng hầu hết không thể.
- Tốc độ mẫu là 44,1 kHz.
- Âm nhạc thường sẽ được phát, do đó có nhiều nhiễu ở tần số thấp hơn.
- Chúng tôi không kiểm soát được loa và micrô hoạt động tốt như thế nào ở tần số cao hơn, vì vậy chúng tôi đã giữ giới hạn trên của mình ở khoảng 20 kHz.
Tín hiệu cụ thể mà tôi đang sử dụng là mã Barker 13 bit được điều chế BPSK vì các đặc tính tự tương quan tốt của chúng. Tự động tương quan như sau-
Tuy nhiên, khi tôi tương quan chéo tín hiệu mong đợi với tín hiệu nhận được trong cuộc sống thực, những gì tôi nhận được thường trông như thế này-
Màu xanh là tương quan chéo với tín hiệu loa 1 và màu đỏ là tương quan chéo với tín hiệu loa 2. Có vẻ như tiếng vang là đáng kể và, thật không may, thường mạnh hơn tín hiệu đường dẫn trực tiếp do mức tăng hướng của micrô.
Tôi đã cố gắng chỉ đơn giản là phát hiện sự xuất hiện sớm nhất của tín hiệu vì đó có khả năng là đường dẫn trực tiếp. Cách tiếp cận này rất nhạy cảm với ngưỡng mà tôi sử dụng để quyết định khi có tín hiệu và do đó không mạnh mẽ chút nào.
Tôi muốn một cách tiếp cận mạnh mẽ để xác định thời gian đến "thực" của tín hiệu - tức là thời gian đến của tín hiệu đường dẫn trực tiếp. Có lẽ một số hình thức ước tính kênh và giải mã? Nếu vậy, làm thế nào sẽ làm việc?
Dữ liệu / Mã: Tôi muốn làm rõ rằng tôi không mong đợi bất kỳ ai phân tích dữ liệu hoặc kiểm tra mã của tôi. Tôi đã làm cho chúng có sẵn trong trường hợp bạn muốn làm như vậy. Tôi chủ yếu quan tâm đến ý tưởng.
Tôi đã tạo tín hiệu thô nhận được và tín hiệu dự kiến đã điều chế có sẵn để tải xuống. Chúng đều được lấy mẫu ở 44,1 kHz. Tương quan tín hiệu thu được với các tín hiệu dự kiến sẽ tạo ra một cái gì đó tương tự nhưng không giống với hình trên vì tôi di chuyển các tín hiệu đã nhận sang băng cơ sở và suy giảm trước khi tương quan với các tín hiệu dự kiến.
Các tập lệnh Matlab Các tập lệnh Matlab có cả tập lệnh tạo tín hiệu (genLocationSig.m) và tập lệnh nhận / xử lý của tôi (calcTiming Offerset.m).