Phát hiện tín hiệu siêu âm


9

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- Tín hiệu tự tương quan

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- Tương quan chéo điển hình

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.

Tín hiệu thu được

Tín hiệu mong đợi # 1

Tín hiệu mong đợi # 2

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).


Bạn có thể chia sẻ dữ liệu mẫu rx1, rx2 và mẫu của mình không?
Tarin Ziyaee

@ user4619 Tôi sẽ cố gắng làm điều đó tối nay.
Jim Clay

Thật nhanh chóng: Tôi đã nhận được dữ liệu của bạn và tạo ra STFT-PSD tương phản . Tôi đoán 5 điểm sáng ở phía dưới là hai tín hiệu của bạn, cách nhau bởi tần số. Có vẻ như tín hiệu của bạn đang được truyền đi, nhưng tôi không tin tiếng vang hoặc đa luồng là vấn đề của bạn. Như bạn có thể thấy có rất nhiều nhiễu không liên tục (băng thông rộng) giữa các xung, ít nhất là vào lúc bắt đầu. Nếu bạn thay đổi băng tần phức tạp, xuống mẫu, tương quan với trình tự sủa của bạn và nhìn vào phong bì, bạn đang thấy gì?
Tarin Ziyaee

1
Ok, một vài điều: Tôi) bạn đã cân nhắc sử dụng chirp tuyến tính thay vì dạng sóng được mã hóa như thế này chưa? Bạn có sự linh hoạt hơn rất nhiều với họ, và có những phần di chuyển ít hơn đáng kể. II) Điều gì, nếu có, là những hạn chế về băng thông của bạn? Ví dụ, các mẫu của bạn dường như rộng khoảng 1 KHz, lý do nào cho việc này? Bạn có thể đi cao hơn? Với một chirp tuyến tính, điều này là dễ dàng. III) Trong khi tôi nghi ngờ có bất cứ điều gì sai với giải điều chế của bạn, đưa nó lên sẽ giúp ích. Điều đó, và nó sẽ cứu tôi những rắc rối khi viết nó!
Tarin Ziyaee

1
Liên quan đến các bình luận bit, có sự hiểu lầm: Chúng ta hãy gọi mỗi 1 trong số 13 trạng thái của mã barker là 'chip'. Vì vậy, nếu tôi truyền một chút, tôi đang truyền 13 chip. Nếu tôi truyền 2 bit, tôi đang truyền 26 chip, v.v. Vậy câu hỏi của tôi là, bạn đang truyền bao nhiêu bit ? Tôi giả sử bạn chỉ truyền 1 bit, và vì vậy tôi đang nói rằng bạn cũng có thể xem xét việc truyền tải nhiều hơn nữa, để tăng cường mức tăng mã hóa của bạn. Điều đó có ý nghĩa?
Tarin Ziyaee

Câu trả lời:


3

Đây không phải là mã bạn đang tìm kiếm ...

Như tôi đã đề cập trong các ý kiến, có khá nhiều cách để làm TDOA mạnh mẽ. (Tương quan chéo với các hợp âm tuyến tính, các hợp âm theo hàm mũ và các phương thức loại CDMA). Bạn đã xây dựng một hệ thống TDOA sử dụng mã, (và đó thực sự là một lựa chọn tốt so với tiếng kêu tuyến tính nếu bạn cần sự mạnh mẽ để doppler), tuy nhiên bạn đang tự giới hạn một cách giả tạo theo hai cách:

  • 13
  • 1

Sử dụng chuỗi PN:

3161127

PN_31 = [ 1  1 -1 -1  1  1 -1  1 -1 -1  1 -1 -1 -1 -1  1 -1  1 -1  1  1  1 -1  1  1 -1 -1 -1  1  1  1];

PN_61 = [ 1  1  1 -1  1  1 -1  1 -1 -1  1 -1 -1  1  1  1 -1 -1 -1  1 -1  1  1  1  1 -1 -1  1 ...
     -1  1 -1 -1 -1  1  1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1  1  1  1  1  1  1 -1  1 -1  1 -1 ...
      1  1 -1 -1  1  1 -1];

PN_127 = [-1     1     1     1    -1     1    -1    -1     1    -1     1     1    -1    -1    -1     1     1    -1     1     1     1     1    -1     1     1    -1     1    -1 ...
       1     1    -1     1     1    -1    -1     1    -1    -1     1    -1    -1    -1     1     1     1    -1    -1    -1    -1     1    -1     1     1     1     1     1 ...
      -1    -1     1    -1     1    -1     1     1     1    -1    -1     1     1    -1     1    -1    -1    -1     1    -1    -1     1     1     1     1    -1    -1    -1 ...
       1    -1     1    -1    -1    -1    -1     1     1    -1    -1    -1    -1    -1     1    -1    -1    -1    -1    -1    -1     1     1     1     1     1     1     1 ...
      -1     1    -1     1    -1     1    -1    -1     1     1    -1    -1     1     1     1];

1310 tôiog[12713]10

nhập mô tả hình ảnh ở đây

Truyền một lời mở đầu:

Trong ứng dụng cụ thể của bạn, bạn đã đề cập rằng bạn chỉ truyền một bit. Bạn nên cố gắng tránh điều này nếu bạn có thể giúp nó và truyền càng nhiều bit mà ứng dụng của bạn có thể cho phép, để có được mã hóa tiếp theo .

316112713


Hãy thử một hoặc cả hai giải pháp đó và đưa ra kết quả của bạn. Tôi hy vọng sẽ có những cải tiến hữu hình mà sau đó chúng ta có thể lặp đi lặp lại. (Định hình xung, chuỗi PN khác nhau / dài hơn, v.v.).


1
Vâng, tôi có kế hoạch thử chuỗi dài hơn. Tôi không biết rằng sự tự động tròn của các chuỗi pn rất hay - thú vị. Thật không may cho ứng dụng của tôi, đó là sự tự tương quan tuyến tính. Về phần mở đầu - toàn bộ chuỗi, theo một cách nào đó, là "phần mở đầu", theo nghĩa là điều làm cho phần mở đầu trở nên hữu ích là nó là một mẫu dữ liệu đã biết. Toàn bộ tín hiệu của tôi được biết đến một tiên nghiệm.
Jim Clay

Tôi đã quyết định giảm quá mức độ dài tín hiệu bằng cách sử dụng đơn hàng 10 lfsr (1023 chip) để chứng minh hoặc loại trừ rằng vấn đề có thể giải quyết được bằng cách kéo dài tín hiệu. Tôi sẽ đăng những gì xảy ra.
Jim Clay

1
@JimClay Vui mừng khi nghe điều đó. Tôi tò mò muốn xem những tín hiệu / tín hiệu xcorrs hiện tại trông như thế nào. Điều đó thật tuyệt vời.
Tarin Ziyaee

1
@endolith Có, doppler là một vấn đề. Tôi xử lý điều đó bằng cách tương quan nhiều lần, thay đổi tần số của tín hiệu nhận được mỗi lần bằng một lượng khác nhau. Điều này rất dễ thực hiện nếu bạn tương quan trong miền tần số.
Jim Clay

1
@endolith Như Jim Clay đã mô tả phương pháp của mình, về cơ bản, anh ta đang tính toán cái được gọi là Hàm mơ hồ . Đó là, kết quả điều chỉnh chéo, với kích thước thứ hai tương ứng với tần số cơ sở. Điều này sau đó sẽ tiết lộ đỉnh, và do đó, vì chúng ta biết tần số ban đầu, mức độ doppler của nó.
Tarin Ziyaee
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.