Cara mendeteksi perubahan "cepat" dalam pemrosesan sinyal

12

Saya sedang mengerjakan sebuah proyek di mana kita mengukur solderability komponen. Sinyal yang diukur berisik. Kita perlu memproses sinyal secara real time sehingga kita dapat mengenali perubahan yang dimulai pada saat 5.000 milidetik.

Sistem saya mengambil sampel nilai nyata setiap 10 milidetik - tetapi dapat disesuaikan dengan sampel yang lebih lambat.

  1. Bagaimana saya bisa mendeteksi penurunan ini pada 5.000 milidetik?
  2. Apa pendapat Anda tentang rasio sinyal / noise? Haruskah kita fokus dan berusaha mendapatkan sinyal yang lebih baik?
  3. Ada masalah bahwa setiap pengukuran memiliki hasil yang berbeda, dan kadang-kadang penurunannya bahkan lebih kecil dari contoh ini.

Sinyal Contoh Sinyal sampel 2 Sinyal sampel 3

Tautan ke file data (mereka tidak sama dengan yang digunakan untuk plot, tetapi mereka menunjukkan status sistem terbaru)

  1. https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
  2. https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
  3. https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
  4. https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
  5. https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ
Petr
sumber
5
Tampaknya Anda memiliki rasio signal-to-noise yang relatif kecil. Seperti halnya sebagian besar masalah pendeteksian, Anda harus mempertimbangkan keseimbangan antara probabilitas mendeteksi fitur yang Anda sebutkan dengan benar dan probabilitas menyatakan secara salah bahwa ada. Mana yang lebih penting untuk aplikasi Anda? Apakah Anda memiliki persyaratan latensi deteksi?
Jason R
2
'Suara' itu lebih mirip gangguan pada frekuensi tertentu. Jika demikian (plot spektrum akan membantu), maka pemfilteran yang tepat akan melakukan sebagian besar pekerjaan.
Juancho
Sebenarnya pendeteksian fitur ini sangat penting. Tetapi saya dapat hidup dengan latensi, tetapi saya perlu menyesuaikan posisi berhenti terakhir, karena saya tidak tahu persis di mana bagian yang disentuh solder, dan saya perlu mengontrol kedalaman pencelupan. Jadi misalnya jika saya tahu perendaman harus 0,5 mm, saya menghitung posisi teoritis sesuai dengan ukuran ideal bola solder, tetapi kemudian saya perlu melakukan koreksi untuk ukuran bola globul yang sebenarnya yang saya deteksi dengan sentuhan - tampak seperti berubah kekuatan.
Petr
Seluruh alat ukur terletak pada pegas, sehingga dapat bergerak bebas, tetapi juga menghasilkan suara dan kami juga telah memperbaiki pegas untuk seluruh rentang pengukuran, dan tentu saja masalah ini muncul saat menggunakan sensitivitas tertinggi, di mana gaya yang diukur sangat buruk. kecil.
Petr
Juancho - mungkin ini bisa membantu, tetapi bagaimana saya bisa menyelesaikannya untuk berbagai bagian, menghasilkan frekuensi yang berbeda? Komponen ini juga berubah ketika bagian dicelupkan ke solder, karena proses pembasahan mengurangi tingkat kebisingan, tetapi ini terjadi hanya untuk bagian yang lebih besar, di sini hampir sama ketika masuk atau keluar.
Petr

Jawaban:

4

Saya biasanya membingkai masalah ini sebagai salah satu deteksi kemiringan. Jika Anda menghitung regresi linier pada jendela bergerak, penurunan yang diilustrasikan akan terlihat sebagai perubahan signifikan dalam tanda kemiringan dan / atau besarnya. Penawaran pendekatan ini adalah sejumlah faktor yang akan memerlukan "penyetelan": misalnya, frekuensi pengambilan sampel, ukuran jendela, dll, akan memengaruhi ketahanan (ketahanan kebisingan) detektor tanda kemiringan. Di sinilah beberapa komentar di atas dapat diterapkan. Penyaringan atau peredam bising apa pun yang dapat diterapkan sebelum pemasangan saluran akan meningkatkan hasil Anda.

Throwback1986
sumber
2

Saya telah melakukan hal semacam ini dengan menghitung T-statistik dari rata-rata bagian kiri data vs. bagian kanan data. Ini mengasumsikan Anda tahu di mana titik transisi yang mana tentu saja tidak.

Jadi, apa yang Anda lakukan adalah mencoba beberapa ratus titik partisi di sepanjang sumbu waktu dan menemukan satu dengan statistik T yang paling signifikan.

u_left, u_right : mean of left and right portion
s_left, s_right : SD of left and right portion
n_left, n_right : number of samples on left and right (subtract one from each for the one degree of freedom)

se = sqrt(s_left^2 / n_left^2 + s_right^2 / n_right^2)
T = (u_left - u_right) / se

Anda dapat melakukan ini sebagai sesuatu seperti pencarian biner. Coba 10 poin data, temukan dua poin terbesar, lalu coba 10 poin di antara yang lainnya. Dengan cara ini Anda bisa mendapatkan titik transisi yang cukup tepat. Saya tidak mengklaim akurasi. :-)

Marilah kita tahu bagaimana kelanjutannya!

PS Anda dapat menghitung mean dan sd sebagai jumlah berjalan yang mengurangi kompleksitas penghitungan fungsi partisi ini untuk setiap kemungkinan ini dari N ^ 2 hingga N. Melakukan ini, Anda mungkin dapat hanya menghitung statistik T di setiap titik partisi yang memungkinkan.

MattD
sumber