From: Sseziwa Mukasa on

On Mar 19, 2010, at 3:46 AM, Paul Floyd wrote:

> On Mon, 15 Mar 2010 10:03:35 +0000 (UTC), Nasser M. Abbasi
> <nma(a)12000.org> wrote:
>> "Luigi B" <l.balzano(a)gmail.com> wrote in message
>> news:hnkfa8$po0$1(a)smc.vnet.net...
>>> Dear All,
>>> I have a table {{x,y}} of measured data with significant noise.
>>> I am not into signal processing and I would like to filter this
>>> table
>>> with a Butterworth type of filter.
>>> Does anyone have a suitable routine? (That would allow changin the
>>> order of the filter as well, like the function 'butter' in another
>>> system).

Perhaps you're not getting many responses because your question is
somewhat unclear. A Butterworth filter is typically used for analog
signal processing, but your data is digitized so you'd have to use a
digital filter. One can digitize Butterworth filters but they don't
have all the properties of an analog Butterworth filter, furthermore,
it is trivial to implement an ideal low pass filter with superior
performance to a Butterworth for digitized data: Fourier transform
the signal, zero out all values greater than the desired cut off
frequency, Inverse Fourier transform to get the filtered signal.
Without further information about your data whether this is
appropriate or not, but if the goal is a low pass filter why insist
on a Butterworth?

>>
>> This is not much help to you now, but there used to be a
>> Mathematica add-on
>> application called signals and systems which had this and more
>> filters:
>>
>> http://documents.wolfram.com/applications/signals/
>> FilterAnalysisandDesign.html
>>
>> Too bad this application is no longer available.
>
> Hi
>
> I'd be interested in this as well.
>
> Do you know who produced it, and whether it'd be possible to get it
> working again with Mathematica 7?

The Digital Image Processing package has some digital filter design
features, the Control Systems package can handle analog filters, but
admittedly not in the way signal processing is usually done.

Regards,
Sseziwa

From: WetBlanket on
On Mar 19, 2:46 am, Paul Floyd <r...(a)127.0.0.1> wrote:
> On Mon, 15 Mar 2010 10:03:35 +0000 (UTC), Nasser M. Abbasi
> <n...(a)12000.org> wrote:
>
>
>
> > "Luigi B" <l.balz...(a)gmail.com> wrote in message
> >news:hnkfa8$po0$1(a)smc.vnet.net...
> >> Dear All,
> >> I have a table {{x,y}} of measured data with significant noise.
> >> I am not into signal processing and I would like to filter this table
> >> with a Butterworth type of filter.
> >> Does anyone have a suitable routine? (That would allow changin the
> >> order of the filter as well, like the function 'butter' in another
> >> system).
>
> > This is not much help to you now, but there used to be a Mathematica ad=
d-on
> > application called signals and systems which had this and more filters:
>
> >http://documents.wolfram.com/applications/signals/FilterAnalysisandDe...
>
> > Too bad this application is no longer available.
>
> Hi
>
> I'd be interested in this as well.
>
> Do you know who produced it, and whether it'd be possible to get it
> working again with Mathematica 7?
>
> A bientot
> Paul

I would also be interested in getting this package working with
Mathematica 7.

From: Nasser M. Abbasi on

"Paul Floyd" <root(a)127.0.0.1> wrote in message
news:hnva5f$87t$1(a)smc.vnet.net...

> On Mon, 15 Mar 2010 10:03:35 +0000 (UTC), Nasser M. Abbasi
> <nma(a)12000.org> wrote:
>> "Luigi B" <l.balzano(a)gmail.com> wrote in message
>> news:hnkfa8$po0$1(a)smc.vnet.net...
>>> Dear All,
>>> I have a table {{x,y}} of measured data with significant noise.
>>> I am not into signal processing and I would like to filter this table
>>> with a Butterworth type of filter.
>>> Does anyone have a suitable routine? (That would allow changin the
>>> order of the filter as well, like the function 'butter' in another
>>> system).
>>
>> This is not much help to you now, but there used to be a Mathematica
>> add-on
>> application called signals and systems which had this and more filters:
>>
>> http://documents.wolfram.com/applications/signals/FilterAnalysisandDesign.html
>>
>> Too bad this application is no longer available.
>

> Hi
>
> I'd be interested in this as well.
>
> Do you know who produced it, and whether it'd be possible to get it
> working again with Mathematica 7?
>
> A bientot
> Paul
>

My guess it came from Georgia Tech Research, if you look at this page, more
information can be found about DSP for Mathematica, and I think, from
looking at it, it that this is the origin of the application that WRI had on
its web page:

http://users.ece.utexas.edu/~bevans/projects/symbolic/spp.html

I could be wrong ofcourse.

Try to contact WRI. But it is not a supported application any more so good
luck getting any answer.

Also, I generated PDF of the documents of this application here

http://12000.org/my_notes/faq/mma_notes/Mathematica_for_signal_processing.htm

It will be really neat if these functions became part of Mathematica itself
in version 8. I mean the code is there, so it just needs to be updated to
run on Mathematica ! As I said, I can't get it to run on version 7. I did
not spend time to find out why.

--Nasser



From: Kevin J. McCann on
This is not a very good way to filter a signal. The resulting time
series will "ring" due to the "sharp edges" in the filter. A much better
way to filter the signal is with a Hamming or Hanning weighted bandpass
or lowpass (whichever is appropriate) filter. This gives a much better
response without the ring. This ringing is 13dB down from the peak, and
can be significant, but with a Hamming filter the ringing is around 60dB
down from the peak.

Kevin

Sseziwa Mukasa wrote:
>
> Perhaps you're not getting many responses because your question is
> somewhat unclear. A Butterworth filter is typically used for analog
> signal processing, but your data is digitized so you'd have to use a
> digital filter. One can digitize Butterworth filters but they don't
> have all the properties of an analog Butterworth filter, furthermore,
> it is trivial to implement an ideal low pass filter with superior
> performance to a Butterworth for digitized data: Fourier transform
> the signal, zero out all values greater than the desired cut off
> frequency, Inverse Fourier transform to get the filtered signal.
> Without further information about your data whether this is
> appropriate or not, but if the goal is a low pass filter why insist
> on a Butterworth?
>

From: Sseziwa Mukasa on

On Mar 21, 2010, at 3:04 AM, Kevin J. McCann wrote:

> This is not a very good way to filter a signal. The resulting time
> series will "ring" due to the "sharp edges" in the filter. A much
> better
> way to filter the signal is with a Hamming or Hanning weighted
> bandpass
> or lowpass (whichever is appropriate) filter. This gives a much better
> response without the ring. This ringing is 13dB down from the peak,
> and
> can be significant, but with a Hamming filter the ringing is around
> 60dB
> down from the peak.

The position of the side lobes depends on the cutoff frequency, if
the passband is wide enough the ringing is negligible. At any rate
implementing a windowed low pass filter in Mathematica is still
relatively easy: Fourier the data, apply the window function of your
choice, for example;

windowedspectrum = Table[spectrum[[i]]*0.5*(1+Cos[2*Pi*i/(Length
[spectrum]-1]),{i,0,Length[spectrum]-1}]

and then inverse Fourier transform.

For other approaches to data smoothing, there are two relevant
Demonstration projects at http://demonstrations.wolfram.com/
WaveletShrinkageDenoising/ and http://demonstrations.wolfram.com/
DataSmoothing/.

>
> Kevin
>
> Sseziwa Mukasa wrote:
>>
>> Perhaps you're not getting many responses because your question is
>> somewhat unclear. A Butterworth filter is typically used for analog
>> signal processing, but your data is digitized so you'd have to use a
>> digital filter. One can digitize Butterworth filters but they don't
>> have all the properties of an analog Butterworth filter, furthermore,
>> it is trivial to implement an ideal low pass filter with superior
>> performance to a Butterworth for digitized data: Fourier transform
>> the signal, zero out all values greater than the desired cut off
>> frequency, Inverse Fourier transform to get the filtered signal.
>> Without further information about your data whether this is
>> appropriate or not, but if the goal is a low pass filter why insist
>> on a Butterworth?
>>
>