Mengurangi output sensor yang memiliki inductnace bersama di antara mereka

12

Latar Belakang: Perangkat lunak yang saya gunakan untuk menganalisa sinyal saya adalah matlab. Saya memiliki dua sinyal audio yang direkam menggunakan dua sensor magnetik. Mari kita sebut satu sensor A dan yang lainnya B. A dan B memiliki induktansi bersama di antara mereka.

Sementara sensor A dan B bekerja, saya ingin mengurangi informasi yang diterima di sensor A karena induktansi timbal balik dari sensor B.

Saya mencoba mengurangi sinyal B dari sinyal A, dengan hanya menulis di matlab (AB), tetapi memberi saya jawaban aneh. Saya pikir itu berasal dari perubahan yang saya miliki dalam fase. Waktu perekaman awal dari kedua trek adalah sama, dan karena itu saya pikir itu bukan penundaan waktu.

Saya ingin tahu bagaimana melakukan proses pengurangan ini secara teori, dan jika ada yang punya tips bagaimana mengimplementasikannya dengan mudah di matlab saya ingin tahu.

Saya akan sangat menghargai bantuan apa pun.

Terima kasih sebelumnya.

Di bawah ini saya lampirkan gambar grafik sinyal. Pada gambar pertama, Anda dapat melihat sinyal yang diterima dari sensor A dan sensor B. Pada gambar kedua, saya memplot sensor A berwarna merah dan sensor B berwarna biru, dalam kisaran 2.12: 2.16 dan memperbesar lebih banyak lagi.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

pengguna1017064
sumber
Jadi dari plot Anda, tampaknya tidak ada banyak crosstalk dari sumber 1 ke sumber 2, hanya dari 2 hingga 1. Apakah overlay Anda pada gambar salah maka ("Ini harus dikurangi dari sumber 2")? Sepertinya Anda mencoba menghapus sumber 2 dari 1, bukan?
Jason R
Itu benar.
user1017064
untuk mengonfirmasi gagasan pergeseran fase, plot kedua bentuk gelombang dari dekat, hanya termasuk dari indeks 2,3 ke 2,4 atau sesuatu, sehingga Anda dapat melihat gelombang individu di kedua saluran
endolith

Jawaban:

4

Itu terlihat seperti masalah cross-talk lurus ke depan. Anda tidak dapat begitu saja mengurangi sinyal langsung karena kopling magnetik berbeda untuk setiap frekuensi (dalam hal amplitudo dan fase).

Katakanlah Anda memiliki dua sinyal audio xa (t) dan xb (t) dan dua sinyal sensor ya (t) dan yb (t). Karena ada kopling antara sensor Anda akan mendapatkan cross talk dan kami dapat menulis di domain frekuensi

Ya(w) = Haa(w)*xa(w) + Hba(w)*xb(w)
Yb(w) = Hab(w)*xa(w) + Hbb(w)*xb(w)

di mana Hxy (w) adalah fungsi transfer dari sinyal "x" ke sinyal sensor "y". Keempat fungsi transfer membentuk matriks 2x2 dan untuk memulihkan sinyal asli sepenuhnya, Anda perlu membalikkan matriks dan menerapkan fungsi transfer matriks terbalik ke sinyal sensor yang diterima.

Karena cross talk Anda kecil, Anda cukup mengukur fungsi transfer Hba (w) secara langsung dan mengurangi sebagai berikut: Ukur fungsi transfer dari sinyal A ke sensor B ketika sinyal B adalah 0. Buat filter dari fungsi transfer ini ( FIR atau IIR, tergantung bentuknya). Sekarang Anda dapat mengukur dan mengurangi versi yang difilter dari sinyal sensor A dari sinyal sensor B:

yb(t)' = yb(t)-hab(t)**ya(t)

di mana hab (t) adalah respons impuls dari filter cross talk Anda dan ** operator konvolusi.

Filter cross talk merepresentasikan amplitudo dan pergeseran fasa sebagai fungsi frekuensi kopling sensor spesifik Anda dan memastikan bahwa sinyal yang benar dikurangi.

Hilmar
sumber
Hilmar, saya baru mengenal matlab dan saya menemui beberapa kesulitan ketika mencoba menerapkan jawaban Anda. Saya akan berterima kasih atas bantuan dari semua orang. Hal pertama yang saya lakukan adalah merekam sinyal A ketika sensor B adalah 0. Sekarang, argumen mana yang harus saya masukkan dalam filter saat memanggil fungsi "filter"? Jika Anda membutuhkan visualisasi sinyal, Anda dapat melihatnya di pertanyaan di atas. Terima kasih lagi.
user1017064
5

Ini terdengar seperti pemisahan sumber buta . Secara umum, Anda tidak dapat mencampur barang setelah dicampur. Jika Anda memiliki dua rekaman berbeda dari dua sumber dengan beberapa masing-masing sumber dalam setiap rekaman, Anda kadang-kadang dapat menggunakan analisis komponen independen untuk memisahkannya.

Saya punya contoh Python di sini . Ada juga FastICA untuk MATLAB . Jika itu adalah sinyal audio, diambil secara magnetis, mungkin tidak ada penundaan yang berarti di antara mereka. ICA bekerja dengan baik dalam hal ini.

endolit
sumber
FastICA untuk Matlab tidak membantu saya untuk membuat pengurangan antara dua sinyal. Hasilnya tidak cukup baik. Dalam komentar saya di atas saya melampirkan tautan ke foto yang dapat menjelaskan situasi yang saya hadapi: bit.ly/rXmVgH. Ngomong-ngomong, terima kasih banyak atas bantuan Anda.
user1017064