Thanks.

That's quite a lot of stuff in there and to be honest I'm not sure how
to use the library by looking at the documentation (which just contains
the PLL papers) and/or code.

Again here most code works on 'array = filter (array)' and not 'sample =
filter(sample)' (see for example CascadeFilter.java). If you filter a
whole array then you can just use the convolution operation or just use
the Fourier Transform to manipulate the frequencies and transform it
back. That's what my students had to do for their 1st assignment and now
we move on to causal (realtime) processing with FIR/IIR filters.

Costas loops: For these to work we just need a lowpass filter (a causal
one for real applications). The rest is just multiplication/addition and
a digital oscillator (I use the Cordis algorithm for it). Actually, I
prefer the 2nd gen Costas Loop:
https://www.youtube.com/playlist?list=PLvUvEbh7a8u-_YCPNEIrjdnD1jxPW7dVk

Stripping it down to what I think common math should provide is: it's a
causal filter which is easy to set up (2 commands max). As I said before
I prefer IIR esp with JAVA's slow processing but if you have a super
efficient (causal / sample by sample) FIR implementation which can also
design its own low/high/band/stopband filter via different methods then
I think we should also add this. For example filters based on sinc
functions and windowed with a choice of standard windows would be nice.

/Bernd

On 25/10/16 12:33, Arne Ploese wrote:
> Am Montag, den 24.10.2016, 10:26 +0100 schrieb Bernd Porr:
>> Opps. Link doesn't work.
> Sorry, here we are https://sourceforge.net/projects/dsp4j/.
>
> there are subprojects fms(https://de.wikipedia.org/wiki/Funkmeldesystem
> ) and zvei(https://de.wikipedia.org/wiki/5-Ton-Folge)
> I grap the audiosignal off a 4m receiver @22kHz. The (frequency shift
> modulated) FMS data is decoded with a costas loop.
>
> Arne
>
>
>
>> Do you mean the OCTAVE/MATLAB "filter" command? If you limit that to
>> FIR
>> coefficients then that's equivalent literally to a convolution
>> operation
>> which we already have. (that FIR filtering is the convolution
>> function I
>> have to de-bunk every year in my DSP class because in teaching
>> nothing
>> is filtered in realtime so an FIR filter is sold literally as a
>> convolution operation, however the FIR filter does a convolution as
>> any
>> other filter but it performs it with the help of a delay line which
>> is
>> implemented usually as a ring buffer).
>>
>> Perhaps before we talk about different things.
>>
>> Can we all agree on the definition of an FIR filter:
>> https://en.wikipedia.org/wiki/Finite_impulse_response
>> it takes one sample in and spits one out by using a delay line.
>> Usually
>> implemented as a ring buffer. In C that can be done very elegantly
>> with
>> pointer gymnastics:
>> https://github.com/berndporr/fir1
>> Arne, do you have an efficient way of doing that in JAVA? That would
>> be
>> nice.
>>
>> Best,
>> /Bernd
>>
>> On 24/10/16 09:28, Arne Ploese wrote:
>>> Am Samstag, den 22.10.2016, 23:25 +0100 schrieb Bernd Porr:
>>>
>>> (...)
>>>
>>>> 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?).
>>> If the Just In Time compiler of the runtime kicks in, it will go
>>> fast...
>>> You can avoid wrapper code (get|set) and access the fields directly
>>> -
>>> ist will improve speed even more. Here is an example of a java
>>> filtering (converted form the signalprocessing package of octave) I
>>> did
>>> a couple of years ago:
>>>  https://sourceforge.net/projects/dsp4
>>>
>>> (...)
>>>
>>> Arne
>>>
>>> -----------------------------------------------------------------
>>> ----
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

-- 
www:    http://www.berndporr.me.uk/
        http://www.linux-usb-daq.co.uk/
        http://www.imdb.com/name/nm3293421/
Mobile: +44 (0)7840 340069
Work:   +44 (0)141 330 5237
        University of Glasgow
        School of Engineering
        Rankine Building, Oakfield Avenue,
        Glasgow, G12 8LT


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

Reply via email to