Bagaimana Mengidentifikasi Setiap Komponen dari Sinyal Audio?

Saya memiliki beberapa file audio yang direkam dari turbin angin, dan saya mencoba melakukan deteksi anomali. Ide umumnya adalah jika sebuah bilah memiliki kesalahan (misalnya retak), suara bilah ini akan berbeda dengan dua bilah lainnya, jadi pada dasarnya kita dapat menemukan cara untuk mengekstraksi sinyal suara masing-masing bilah dan membandingkan kesamaan/jarak di antara keduanya, jika salah satu sinyal ini memiliki perbedaan yang signifikan, kita dapat mengatakan turbin akan mati. Saya hanya memiliki beberapa sampel yang rusak, labelnya kurang.

Namun, sepertinya tidak ada seorang pun yang melakukan pekerjaan seperti ini, dan saya menemui banyak masalah saat mencobanya. Saya sudah mencoba menggunakan stft untuk mengubah sinyal menjadi spektrum daya, dan beberapa lonjakan terlihat. Bagaimana cara mengidentifikasi setiap blade dari data mentah? (Beberapa pekerjaan terkait menggunakan AutoEncoder untuk mendeteksi anomali dari audio, namun dalam tugas ini kami ingin menggunakan beberapa metode berbasis kesamaan.)

Adakah yang punya ide bagus? Punya beberapa karya/makalah terkait untuk direkomendasikan?


person WWH98932    schedule 10.06.2019    source sumber
comment
Dapatkah Anda memberikan spektogram dari beberapa rotasi, idealnya dengan waktu yang ditandai pada waktu berlalunya setiap bilah?   -  person Jon Nordby    schedule 27.12.2019


Jawaban (2)


Dengan baik...

Jika poros Anda berputar pada, katakanlah 1200 RPM atau 20 Hz, maka semua suara signifikan yang dihasilkan oleh putaran tersebut harus berada pada harmonik 20Hz.

Namun, jika turbin memiliki 3 bilah yang sempurna, maka konfigurasinya akan sama persis sebanyak 3 kali untuk setiap putaran, sehingga semua suara yang dihasilkan oleh putaran tersebut harus dibatasi pada kelipatan 60 Hz.

Energi pada harmonik lain 20 Hz -- 20, 40, 80, 100, dst. -- yang berada di atas dasar kebisingan umumnya dihasilkan dari perbedaan antar bilah.

Hal ini tentu saja mengabaikan noise dari sumber lain yang juga tersinkronisasi dengan poros, sehingga dapat mengacaukan analisis.

person Matt Timmermans    schedule 11.06.2019

Dengan asumsi bahwa audio yang Anda dapatkan berasal dari lokasi di mana seseorang dapat mendengar bilah pisau saat lewat, ada dua submasalah:

1) Perkirakan setiap posisi blade, dan ekstrak audio untuk setiap blade.

2) Bandingkan sinyal dari masing-masing blade satu sama lain. Tentukan apakah salah satunya cukup berbeda untuk dianggap sebagai anomali

Memperkirakan posisi sudu dapat dilakukan dengan sensor yang mendeteksi putaran secara langsung. Misalnya berdasarkan medan magnet generator. Idealnya Anda memiliki data sensor yang terkenal bagus seperti ini, setidaknya saat mengembangkan sistem Anda. Dimungkinkan untuk memperkirakan hanya dengan menggunakan audio, menggunakan semacam Deteksi Periodisitas. Autokorelasi adalah teknik yang umum digunakan untuk itu.

Untuk mendeteksi perbedaan antar blade, Anda dapat mencoba menggunakan fungsi jarak standar pada deskripsi fitur standar, seperti Euclidean di MFCC. Anda masih perlu memiliki beberapa sampel untuk contoh yang diketahui salah dan contoh yang diketahui baik/dapat diterima, untuk mengevaluasi solusi Anda. Namun ada risiko bahwa hal ini tidak akan cukup baik. Kemudian cobalah menghitung beberapa fitur yang lebih baik sebagai dasar penghitungan jarak. Mungkin menggunakan AutoEncoder. Anda juga dapat mencoba semacam Pembelajaran Kesamaan. Jika Anda memiliki banyak data yang baik dan salah, Anda mungkin dapat menggunakan pengaturan kerugian triplet untuk mempelajari metrik kesamaan. Masukkan data untuk dua bilah yang baik sebagai objek yang harus serupa, dan bilah yang diketahui-buruk sebagai sesuatu yang seharusnya tidak serupa.

person Jon Nordby    schedule 26.12.2019
comment
Terima kasih, pada akhirnya saya menemukan jawabannya. Pertama saya menemukan cara untuk mengekstrak fitur yang mewakili energi sinyal asli dari matriks STFT, ini terlihat seperti sinyal periodik dengan puncak dan palung, maka jika Anda dapat menemukan posisi semua palung sebenarnya, indeksnya akan menjadi jadilah segmentasi Anda. Beberapa algoritme pencarian puncak dapat membantu dalam hal ini. Setelah mendapatkan sinyal setiap blade, yang harus saya lakukan adalah menemukan algoritma deteksi anomali tanpa pengawasan yang sesuai dengan situasi ini. Saya tidak tahu cara memposting beberapa gambar atau saya dapat menunjukkan beberapa hasil. Terima kasih! - person WWH98932; 13.01.2020
comment
Besar! AutoEncoder akan menjadi kandidat umum untuk Deteksi Anomali. Ada kemungkinan bahwa jika Anda hanya memasukkan STFT (atau mungkin mengurangi resolusi frekuensi melalui bank filter) dari 3 bagian maka ia akan dapat mengetahui bahwa perbedaannyalah yang penting. Anda juga dapat bereksperimen dengan menghitung perbedaan pasangan, atau perbedaan pada mean atau median blade. - person Jon Nordby; 13.01.2020