Hi there,
I am trying to find a way to use vDSP to implement a one-pole smoothing filter.
This is a very common type of filter and I find myself using it all over the place.
Hence I would like to use vDSP to optimize its execution speed if possible.
I am very familiar with the vDSP library and I know that there is no optimized function to directly implement a first order section.
The options I have been exploring are:
vDSP_biquad():
the whole API is great but it is overkill for such a simple structure.
Furthermore it implements only second order sections.
vDSP_deq22():
it could be possible to use it but this function too only implements a 2-pole/2-zero second order section, so probably the speed gains (if any) are not great.
Thinking a little bit more out of the box I have been looking at vDSP_vintb()
This function implements the exact mathematical operations used to implement a first order section but - of course - it is not recursive.
Can anybody think of a way to make it recursive (maybe by feeding it with the same array for input and output shifted in time by one sample?
Any other way/idea on how to optimize a first order section using any of Apple's vector libraries?
Is my only option to file a feature request for something like a vDSP_deq11() function ?
Thanks for any comment, advice, suggestion…
Best
- Luigi