Cara terbaik untuk mengirim sinyal dalam frekuensi yang sangat rendah (250Hz)?

8

Saya seorang programmer yang menghadapi pertanyaan elektronik, jadi saya pikir inilah tempat untuk bertanya!

  • Saya memiliki sensor medan magnet yang memberi saya nilai medan magnet (sumbu XYZ) 250 kali per detik.
  • Sirkuit elektronik dengan mikroprosesor yang dapat diprogram mengontrol koil, yang dapat mengubah medan magnet cukup dekat dengan sensor ini. Namun, kedua perangkat tidak diposisikan secara ketat, jadi saya tidak dapat menyampaikan pengukuran posisi.
  • Saya ingin mengirim 2 jenis sinyal dari sirkuit ke sensor, yang dapat menahan suara keras di medan magnet, dan lebih pendek dari setengah detik (Ya, detik - kita berada di 250 Hz!)

Solusi saat ini adalah untuk mentransmisikan gelombang persegi 17Hz, kemudian 12Hz, kemudian 17Hz untuk sinyal A, membalikkan urutan sinyal B. Tetapi untuk mendeteksi sinyal ini, diperlukan untuk mengirim gelombang yang cukup panjang, yang membawa sinyal memanjang sekitar 1,5 detik.

Jadi, pertanyaan saya di sini adalah: Apakah ada cara, katakanlah suatu pola, seperti pola musik yang dapat digunakan untuk memberi sinyal lebih cepat, dan masih dapat diandalkan?

rubmz
sumber

Jawaban:

7

Dengan laju sampel 250 Hz, Anda dapat dengan mudah mengirim 100 bit / detik atau lebih. Dalam 0,5 detik, itu akan berada di urutan 50-60 bit.

Pertanyaannya adalah, pola bit apa yang harus Anda pilih yang mudah dibedakan satu sama lain dan juga dari kebisingan dan gangguan luar? Solusi umum adalah dengan menggunakan urutan bit pseudorandom, juga dikenal sebagai Kode Barker , yang memiliki korelasi silang rendah yang diinginkan.

Teknik DSP yang dikenal sebagai " filter yang cocok " dapat digunakan untuk mendeteksi kode.

Dave Tweed
sumber
Kedengarannya menarik! Tapi, saya berkeliaran bagaimana komputasional "filter cocok" mungkin? Apakah ini memerlukan FFT berat / perhitungan lain?
rubmz
Saya memeriksa implementasi c ++ untuk Matched Filter, dan tampaknya itu akan membutuhkan perhitungan yang cukup berat untuk mendeteksi sinyal. Jadi mungkin tidak berguna bagi saya, karena kode sisi sensor saya akan berjalan di lingkungan RT, jadi apakah ada filter lain yang memungkinkan saya mengirim 2 jenis sinyal, dalam waktu kurang dari 0,5 detik, tanpa terlalu banyak perhitungan ?
rubmz
2
Itu tidak memerlukan transformasi Fourier, tetapi itu memerlukan setara dengan filter FIR (respon impuls terbatas) pada masing-masing dari tiga saluran input, yang secara matematis setara dengan melakukan produk titik pada dua vektor 128-sampel untuk setiap baru sampel yang masuk (128 kali lipat dan 128 tambah, 250 kali per detik, dengan total ~ 33rb tambah operasi setiap detik per filter, atau sekitar 100rb MAC / detik total kedua). Bahkan chip DSP yang sangat rendah seperti Microchip dsPIC dapat dengan mudah menangani perhitungan real-time semacam ini.
Dave Tweed
2
Supaya jelas, Anda perlu menjalankan perhitungan itu secara terpisah untuk setiap kode berbeda yang ingin Anda deteksi. Jadi, misalnya, jika Anda memiliki 10 kode berbeda, yang salah satunya dapat ditransmisikan kapan saja, Anda harus menjalankan sepuluh filter yang cocok secara paralel, dengan total 1M MACs / detik - masih dalam kemampuan sebuah dsPIC atau chip serupa. Jika Anda menemukan bahwa kode yang lebih pendek cukup kuat dalam aplikasi Anda, maka Anda dapat menggunakan filter yang lebih pendek, dan beban komputasi turun secara proporsional.
Dave Tweed