On 22/10/16 19:54, Eric Barnhill wrote:


It will be a good fit if the code comes with developer(s) willing
to provide support too.
Yes of course I would provide support and of course see it through to
the release. That comes without saying.


Myself as well. One possibility would be to use this new code to spin off
the "filter" component and take it further at the same time. Right now I
believe the filter component only consists of a Kalman filter(!). IIR
filters could be used to turn the filter library into something much more
substantial.
Indeed. The Kalman filter class is fine but of course that's only a tiny part of signal processing.


I have a whole convolution library I wrote at:
https://github.com/ericbarnhill/JVCL  which includes GPU based finite
differences convolutions which are quite speedy (and as always,
complex-friendly). With Bernd contributing IIR methods these could be some
useful complementary FIR methods. But I think it may violate commons
protocols due to the extra dependency on JOCL.
Interesting! I think also looking at what is already existing in
the commons library your contribution is clearly on the image processing side. Is that right? It's badly needed. I also would love to have it. Crucial point here is that this is in signal processing terminology a-causal so you essentially have all the data before you start processing it (= Fourier Transform, convolution). Then on the other hand if you have realtime streaming data from an ADC it's just scalars as they show up sample by sample at your input (ADC, etc): scalar = myFilter(scalar) which is what both FIR and IIR filters do - well at least how I've been teaching it to my students for 10 years. ;). Then in terms of the filter design the IIR filters are derived from analogue filters whereas FIR realtime filters use the (mirrored) impulse response for its coefficients.
Looking at what is missing in the apache commons just now is:
- IIR filters + design (my IIRJ)
- 2D (image) filtering/convolution (your JVCL)
- FIR filters (causal with delay line) + design (linear phase filters)
I'm not too crazy about proper FIR filters in JAVA because even in C++ they are just too slow and one would need to write them as JNI calls to C to make them run fast enough (for example a 50Hz notch for ECG at 1kHz requires 500taps at a bandwidth of 4Hz -- in theory!). Not sure how excited people here are about C/JNI calls. However the FIR filter _design_ = creating an impulse response is useful for a-causal offline computation using the convolution operation (but the 1D convolution is already implemented isn't it?).


Also worth mentioning,  I have a good deal of wavelet code in Java and have
given some thought to designing a nice match between OO design and wavelet
analyses. This could become part of the filter package.
Wavelets come very handy for many applications. It would be good to be able to generate them in 1D and 2D. Plus also the scaling function. If eventually we had an effective FIR filter as a JNI call then these could be also used for example for realtime ECG heartbeat detection.

/Bernd



-  Eric


--
http://www.berndporr.me.uk
http://www.linux-usb-daq.co.uk
http://www.imdb.com/name/nm3293421/
+44 (0)7840 340069

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to