Daftar Isi:

Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal: 5 Langkah
Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal: 5 Langkah

Video: Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal: 5 Langkah

Video: Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal: 5 Langkah
Video: Cara Mengecek FREQUENCY MASKING di Cubase Hanya dengan Plugin Bawaan Saja ! 2024, November
Anonim
Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal
Pemfilteran FIR untuk Deteksi Frekuensi yang Lebih Andal

Saya sangat menyukai instruksi akellyirl tentang Deteksi Frekuensi yang Handal Menggunakan Teknik DSP tetapi terkadang teknik yang dia gunakan tidak cukup baik jika Anda memiliki pengukuran yang bising.

Satu perbaikan mudah untuk mendapatkan masukan yang lebih bersih untuk detektor frekuensi adalah dengan menerapkan semacam filter di sekitar frekuensi yang ingin Anda deteksi.

Sayangnya, membuat filter digital tidak mudah dan ada cukup banyak matematika yang terlibat. Jadi saya berpikir untuk membuat semacam program untuk menyederhanakan pembuatan filter semacam itu, untuk memungkinkan siapa saja menggunakannya dalam proyek mereka tanpa menggali detailnya.

Dalam Instruksi ini, saya akan mendeteksi gelombang sinus 50Hz dalam pengukuran yang bising dengan Arduino Uno (Arduino tidak terlalu diperlukan).

Langkah 1: Masalahnya

Masalah
Masalah

Bayangkan data input yang diukur terlihat seperti kurva di atas - cukup berisik.

Jika kita membuat detektor frekuensi sederhana seperti yang ada di Instructable akellyirl, hasilnya adalah "-inf" atau dalam kasus kode di bawah ini: "Ya, terlalu banyak noise …"

Catatan: Saya menggunakan hampir semua kode akellyirl tetapi menambahkan array rawData di bagian atas yang berisi pengukuran bising.

Di bawah ini Anda dapat menemukan seluruh kode dalam file bernama "unfiltered.ino".

Langkah 2: Solusinya

Solusinya
Solusinya

Karena data input berisik tetapi kita tahu frekuensi yang kita cari, kita dapat menggunakan alat yang saya buat bernama easyFIR untuk membuat filter Bandpass dan menerapkannya ke data input, yang menghasilkan input yang jauh lebih bersih untuk detektor frekuensi (gambar di atas).

Langkah 3: EasyFIR

EasyFIR
EasyFIR

Alat easyFIR cukup mudah digunakan, cukup unduh repositori GitHub dan jalankan file easyFIR.py dengan satu sampel pengukuran Anda (dalam format CSV).

Jika Anda membuka file easyFIR.py, Anda akan menemukan 5 parameter (lihat gambar di atas) yang dapat dan harus Anda ubah tergantung pada hasil yang ingin Anda capai. Setelah Anda mengubah 5 parameter, dan menjalankan file python, Anda akan melihat koefisien yang dihitung di terminal Anda. Koefisien ini sangat penting untuk langkah selanjutnya!

Informasi lebih lanjut tentang penggunaan yang tepat dapat ditemukan di sini:

Langkah 4: Penyaringan

Penyaringan
Penyaringan

Sekarang jika Anda telah menghitung koefisien filter yang dibutuhkan, cukup mudah untuk menerapkan filer yang sebenarnya ke detektor frekuensi.

Seperti yang Anda lihat pada gambar di atas, Anda hanya perlu menambahkan koefisien, fungsi applyFilter dan kemudian memfilter pengukuran input.

Di bawah ini Anda dapat menemukan seluruh kode dalam file bernama "filtered.ino".

Catatan: terima kasih banyak untuk Stack Overflow Post ini untuk algoritme aplikasi filter yang hebat!

Langkah 5: Nikmati

Menikmati
Menikmati

Seperti yang Anda lihat, sekarang kami dapat mendeteksi sinyal 50Hz bahkan di lingkungan yang bising ?

Silakan sesuaikan ide dan kode saya dengan kebutuhan Anda. Saya akan sangat berterima kasih untuk menyertakan peningkatan Anda!

Jika Anda menyukai pekerjaan saya, saya akan sangat menghargai jika Anda mendukung pekerjaan saya dengan bintang di GitHub!

Terima kasih atas dukunganmu!:)

Direkomendasikan: