Cách tốt nhất để gửi tín hiệu ở tần số rất thấp (250Hz)?


8

Tôi là một lập trình viên phải đối mặt với một câu hỏi điện tử, vì vậy tôi nghĩ đây là nơi để hỏi!

  • Tôi có một cảm biến từ trường cung cấp cho tôi các giá trị từ trường (trục XYZ) 250 lần một giây.
  • Một mạch điện tử với bộ vi xử lý có thể lập trình điều khiển một cuộn dây, có thể thay đổi từ trường đủ gần với cảm biến này. Tuy nhiên, hai thiết bị không được định vị nghiêm ngặt, vì vậy tôi không thể chuyển tiếp về đo định vị.
  • Tôi muốn gửi 2 loại tín hiệu khác nhau từ mạch đến cảm biến, có thể chịu được tiếng ồn mạnh trên từ trường và ngắn hơn nửa giây (Có, giây - chúng tôi ở tốc độ 250 Hz!)

Giải pháp hiện tại là truyền sóng vuông 17Hz, sau đó 12Hz, sau đó 17Hz cho tín hiệu A, đảo ngược thứ tự cho tín hiệu B. Nhưng để phát hiện các tín hiệu này, cần phải gửi các sóng đủ dài, đưa các tín hiệu có độ dài khoảng 1,5 giây

Vì vậy, câu hỏi của tôi ở đây là: Có cách nào không, hãy nói một mô hình, giống như mô hình âm nhạc có thể được sử dụng để báo hiệu nhanh hơn, và vẫn đáng tin cậy?

Câu trả lời:


7

Với tốc độ mẫu 250 Hz, bạn có thể dễ dàng gửi 100 bit / giây trở lên. Trong 0,5 giây, đó sẽ là thứ tự 50-60 bit.

Câu hỏi là, những mẫu bit nào bạn nên chọn có thể phân biệt dễ dàng với nhau và cả nhiễu và nhiễu bên ngoài? Một giải pháp phổ biến là sử dụng chuỗi bit giả ngẫu nhiên, còn được gọi là Mã Barker , có mối tương quan chéo thấp mong muốn.

Một kỹ thuật DSP được gọi là " bộ lọc phù hợp " có thể được sử dụng để phát hiện mã.


Nghe có vẻ thú vị! Nhưng, tôi đã đi lang thang làm thế nào "bộ lọc phù hợp" có thể tính toán phức tạp? Nó sẽ yêu cầu FFT nặng / tính toán khác?
rubmz 14/03/2015

Tôi đã kiểm tra các triển khai c ++ cho Bộ lọc so khớp và có vẻ như nó sẽ yêu cầu một tính toán khá nặng để phát hiện tín hiệu. Vì vậy, nó có thể không hữu ích đối với tôi, vì mã bên cảm biến của tôi sẽ chạy trong môi trường RT, vì vậy có bộ lọc nào khác có thể cho phép tôi gửi 2 loại tín hiệu, trong chưa đầy 0,5 giây, mà không cần quá nhiều tính toán ?
rubmz

2
Nó không yêu cầu biến đổi Fourier, nhưng nó yêu cầu tương đương với bộ lọc FIR (đáp ứng xung hữu hạn) trên mỗi ba kênh đầu vào, tương đương về mặt toán học với việc tạo một sản phẩm chấm trên hai vectơ 128 mẫu cho mỗi mới mẫu xuất hiện (128 bội số và 128 lần cộng, 250 lần một giây, với tổng số ~ 33k phép cộng nhân mỗi giây trên mỗi bộ lọc hoặc tổng cộng khoảng 100 nghìn giây MAC / giây). Ngay cả một chip DSP cấp thấp như Microchip DSPPIC cũng có thể dễ dàng xử lý loại tính toán thời gian thực này.
Dave Tweed

2
Để rõ ràng, bạn cần chạy riêng tính toán đó cho từng mã khác nhau mà bạn muốn có thể phát hiện. Vì vậy, ví dụ: nếu bạn có 10 mã khác nhau, bất kỳ mã nào cũng có thể được truyền bất kỳ lúc nào, bạn sẽ cần chạy song song mười bộ lọc phù hợp, với tổng số 1M MAC / giây - vẫn nằm trong khả năng của một chip DSPIC hoặc tương tự. Nếu bạn thấy rằng các mã ngắn hơn đủ mạnh trong ứng dụng của mình, thì bạn có thể sử dụng các bộ lọc ngắn hơn tương ứng và tải tính toán giảm tỷ lệ thuận.
Dave Tweed
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.