-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add kernel filter #948
Comments
After further consideration and a first look into the exiting codebase, I would like to propose a more flexible approach: Instead of implementing specific filter types, we could create a generic
Benefits of this approach:
Use cases would include:
This would provide a more maintainable and future-proof solution while potentially improving performance through FFT-based processing. |
Yeah I think ultimately we're going to want two backends, one tap FIR based and one FFT based, and choose which to use based on the kernel size and some heuristics (i.e. is O(M*N) greater than O(N log N), times some implementation-specific scaling factor, for kernel size M). One of the challenges with #140 is the overhaul of the units framework needed to properly support second-order units like "volts per second". Hence why it's been tabled. |
Anyway, feel free to throw more ideas in the ring. I don't have the time to think about this in too much detail as I'm busy getting ready for the v0.1 release but it can definitely be something we work on perhaps on the way to v0.2. |
The current moving average filter implementation could be enhanced by adding support for binomial filtering as an additional mode. Binomial filtering is preserving signal features compared to simple moving averages.
Benefits of binomial filtering:
Technical Considerations
Kontext
This year, I came into possession of a Pico 3000 that offers a quit good sampling rate of up to 1 GS/s. However, I find that the limitation to 8 vertical bits does present a challenge. It might be beneficial to consider implementing proper averaging, which has the potential to enhance voltage resolution, albeit at the expense of temporal resolution. Given the scope's relatively modest bandwidth of 70 MHz, I believe this will be a reasonable trade-off in such cases.
Hey, I'd love to send through a pull request! But before I do, it'd be great if you could let me know if you're interested in such a contribution, or if there are any extra things/hints/warnings I should consider before I get going.
The text was updated successfully, but these errors were encountered: