Jika Anda mengoptimalkan waktu rekayasa dan berada pada platform yang mendukung FFT besar dengan baik (saya..bukan titik tetap), maka ikuti saran hotpaw2 dan gunakan konvolusi cepat . Ini akan melakukan jauh lebih baik daripada implementasi FIR yang naif dan harus relatif mudah diimplementasikan.
Di sisi lain, jika Anda memiliki waktu untuk ini untuk mendapatkan implementasi terbaik atau berada pada platform titik tetap, Anda harus menggunakan multirate down-filter-up-subtract. Tapi agak sulit untuk melakukan semuanya dengan benar.
Saya memiliki akses ke implementasi tepercaya dan yang dioptimalkan untuk konvolusi cepat dan alat penyaringan multirate. Konvolusi cepat memakan waktu sekitar 3x lebih lama untuk mendapatkan kinerja sinyal yang setara dibandingkan dengan struktur multirate. Selanjutnya, itu bahkan pada platform floating point. Kesenjangan akan melebar jauh pada titik tetap dsp.
Secara umum:
Konversi ke bawah:
Gunakan 8 tahap setengah-band, filter decimate-by-2 untuk mengubah sinyal 48kHz Anda menjadi sinyal 187,5 Hz. Tahap pertama downsampling ini dapat memiliki pita transisi yang sangat luas, memungkinkan energi untuk alias selama itu tidak alias kembali ke kisaran sub 60 Hz. Seiring dengan kemajuan tahapan, jumlah keran perlu ditingkatkan, tetapi mereka akan diterapkan pada tingkat pengambilan sampel yang semakin rendah, sehingga biaya keseluruhan setiap tahap tetap kecil.
Penyaringan:
Lakukan penyaringan ketat Anda di sekitar 60 Hz bw untuk menjaga energi yang pada akhirnya ingin Anda kurangi. Ada keuntungan ganda untuk melakukan penyaringan ketat Anda pada tingkat rendah:
- 1Hz bandwidth transisi adalah 256 kali lebih besar dalam hal frekuensi digital pada tingkat rendah vs tingkat asli. Jadi setiap ketukan filter Anda 256 kali lebih kuat.
- Sinyal itu sendiri berada pada tingkat yang lebih rendah, sehingga filter hanya perlu memproses 1/256 data.
Konversi ke atas:
Pada dasarnya, ini adalah kebalikan dari tahap penipisan. Masing-masing dari 8 tahap interpolator menggandakan laju dengan memperkirakan sampel yang masuk di antara sampel input berurutan. Pita transisi semakin lebar karena laju sampel semakin tinggi.
Mengurangi:
Kurangi sinyal low-pass low-pass filter Anda dari sinyal asli. Jika Anda telah menyesuaikan untuk semua keterlambatan grup dengan benar, struktur keseluruhan akan menjadi filter highpass dengan bandwidth transisi yang sempit.