Saya menulis perangkat lunak untuk memproses audio yang diberikan sebagai sampel PCM 16-bit. Tahap pertama pemrosesan melibatkan penghitungan energi (atau variasi total) dalam rentang frekuensi tertentu (di atas frekuensi cut-off tertentu).
Apa yang saya lakukan saat ini adalah mengurangi energi dari sinyal low-pass filtered dari energi sinyal asli. Saya menemukan bahwa banyak pemrosesan didedikasikan untuk mengubah sampel integer ke representasi floating point.
Jadi pertanyaan saya adalah, apakah ada teknik untuk memfilter sampel integer tanpa mengubahnya menjadi floating point?
sumber
Salah satu dari beberapa prosesor, mengonversi blok besar (tetapi dalam cache) bilangan bulat menjadi mengapung sebelum memprosesnya mungkin lebih cepat, karena penghapusan bahaya pipa. Anda mungkin ingin membandingkan ini.
Jika Anda menggunakan skala bilangan bulat atau aritmatika titik tetap, jumlah presisi bilangan bulat tambahan yang Anda perlukan dalam koefisien dan nilai tengah kira-kira sebanding dengan rasio antara laju sampel Anda dan frekuensi batas yang Anda inginkan. Anda mungkin perlu menggunakan aritmatika integer bilangan 24,32,48-bit atau lebih pada sampel 16-bit Anda untuk turun ke level tingkat kebisingan numerik yang diinginkan. Beberapa set instruksi prosesor (ARM, MIPS, dll.) Dapat mencakup 64 bit akumulasi aritmatika hanya untuk tujuan ini.
sumber