boatbod / op25

Fork of osmocom OP25 by boatbod
311 stars 97 forks source link

Did the new Demodulator end up improving CPU utilization? #197

Closed robotastic closed 7 months ago

robotastic commented 7 months ago

**Describe issue I saw in this commit that the new demodulator was trying to improve CPU utilization. Did there end up being improvements? Was it for all modulation types or was it only in some scenarios?

Experimental enhancements to demodulator to reduce cpu usage and latency

Thanks!

boatbod commented 7 months ago

The changes affected channel selection and IF filter, so they should be good for any modulation type. On my system there was about 10% cpu improvement, but results may vary there depending on SDR hardware and sample rate.

From a technical perspective, I changed the front end channel selector from a vco/mixer/filter to a freq_xlating_fir_filter because it filters at the decimated rate rather than the original and intermediate sample rates. The new demodulator is now the default, but it's easy to flip back and forth by changing the import line in either rx.py or multi_rx.py.