Oversampling dan penipisan: Filter apa yang digunakan?

8

Saya memiliki sensor yang menghasilkan (kurang lebih) data bandlimited dengan cut-off sekitar 45Hz, dengan roll-off dan AWGN . Saya punya ADC yang sampel mengatakan sinyal pada 800Hz, dengan filter anti-aliasing kutub tunggal di sekitar 200Hz. Masalahnya adalah, saya hanya memiliki bandwidth komunikasi yang cukup untuk mengirim sampel pada 100Hz dan oleh karena itu diperlukan beberapa penipisan.

Saat ini, saya hanya memiliki filter rata-rata bergerak 8-sampel dan mengirim setiap sampel ke-8. Ini terasa kotor dan tidak optimal. Tentunya harus ada cara yang lebih baik.

Apakah ada hal "terbaik" yang diterima untuk dilakukan dalam hal ini? Haruskah saya, misalnya, melakukan filter low-pass FIR untuk memeras bandwidth sinyal sedekat mungkin dengan 50Hz? Atau, apakah ada semacam skema estimasi optimal yang akan lebih baik?

Tujuannya adalah untuk mengimplementasikan beberapa saluran (9 saluran) pada mikrokontroler yang lebih kecil (misalnya, ARM Cortex M4), sehingga komputasi yang lebih murah semakin baik!

Damien
sumber

Jawaban:

6

Haruskah saya, misalnya, melakukan filter low-pass FIR untuk memeras bandwidth sinyal sedekat mungkin dengan 50Hz?

Ya, itulah yang harus Anda lakukan. Itu adalah kecepatan data yang sangat rendah, sehingga bahkan dengan prosesor yang lemah saya akan berpikir bahwa harus dapat melakukan filter yang cukup bagus. Terutama karena Anda hanya perlu menghitung dari output filter.18

Jim Clay
sumber
Apakah ada kelas FIR "terbaik" untuk masalah ini? Atau haruskah jendela-cukup memadai?
Damien
1
Ya, jendela-sinc harus baik-baik saja.
Jim Clay
2
Meskipun Anda dapat membuat filter dengan liter jendela-liter, mungkin akan lebih mudah dilakukan dengan menggunakan algoritma remez. Dengan itu Anda dapat menentukan band pass-band Anda, frekuensi cutoff, dan urutan filter, dan akan muncul dengan filter equiripple terbaik yang mungkin diberikan kendala-kendala tersebut.
Jim Clay