DSPRelated.com
Forums

any users of Mathematica signals and systems? comparing it to Matlab signal processing tool box

Started by superman December 17, 2004
hi;

I am looking at Mathematica signals & systems package, latest version,
and comparing its features to Matlab's DSP toolbox.

Has anyone used MMA signals&systems package who like to share
their experience?

I am trying to create a butter low pass filter.

in matlab, one writes

[z,p,k]=butter(n,Wn);

where n is the order of the butter filter, Wn is the
cutoff normalized frequency.

For instance, suppose we want to design a 3 order
butter low pass, with cutoff at 300 hz for data
sampled at 1000 hz, we write

 >> [z,p,k]=butter(3,300/500)

z =
     -1
     -1
     -1
p =
   -0.2094 + 0.5582i
   -0.2094 - 0.5582i
   -0.1584

k =
     0.2569

In Mathematica, I am unable to do the above really.

The function to design a butter in MMA requires one
to supply the magnitude response in the band, which
Matlab does not require.

Also MMA DesignAnalogFilter function requires
one to specify all the bands, even for a low pass
filter, so we must tell it that there is a stopband, and
the stopband must goes to infinity (else MMA complains).

Also the MMA function seems to return only the poles.

Needs["SignalProcessing`"]

In[6]:= spec = FilterSpecification[Passband[.99999, {0,   300/500}],
               Stopband[0.0001, { 301/500, Infinity}]];

In[7]:= DesignAnalogFilter[Butterworth, t, spec, FilterOrder -> 3]

                   -6
Out[7]= 8.53279 10   AnalogFilter[
             {-0.0102172 + 0.0176968 I, -0.0204345, -0.0102172 - 
0.0176968 I},
	    {}, t]
	
Does any one have experience with MMA signals&systems who can
show me the equivalent code to the matlab code above? I am not
even sure the numbers make sense above, as they are no where
close to what Matlab gives back.

I have bought this package hoping to do signal processing with it,
but I find the following problems:

1. MMA documenting for this package is not good. Very hard to
find what functions there are (no list of functions). Hard to
find what the input and output are.

2. Documentation is little. Compared to Matlab which has
huge documentation for its DSP toolbox.

3. MMA signals&systems functionality is much less than Matlab's

4. getting help on this is much harder than with Matlab.

I wanted to use it since I think the idea of using symbolic
tools to do DSP is interesting, but due to lack of documentation,
support, and features, I think I will go back to using Matlab
for this type of work.

superman.
"superman" <superman@nowhere.com> wrote in message
news:yIAwd.43574$6q2.30547@newssvr14.news.prodigy.com...
> hi; > > I am looking at Mathematica signals & systems package, latest version, > and comparing its features to Matlab's DSP toolbox. > > Has anyone used MMA signals&systems package who like to share > their experience? > > I am trying to create a butter low pass filter. > > in matlab, one writes > > [z,p,k]=butter(n,Wn); > > where n is the order of the butter filter, Wn is the > cutoff normalized frequency. > > For instance, suppose we want to design a 3 order > butter low pass, with cutoff at 300 hz for data > sampled at 1000 hz, we write > > >> [z,p,k]=butter(3,300/500) >
Surely that should be 300/1000 as normalised Freq goes from 0 to 1 and 0.5 is half sampling (500Hz) therefore 300Hz is 300/1000. Country Chiel
Country_Chiel wrote:


>>For instance, suppose we want to design a 3 order >>butter low pass, with cutoff at 300 hz for data >>sampled at 1000 hz, we write >> >> >> [z,p,k]=butter(3,300/500) >> >
> Surely that should be 300/1000 as normalised Freq goes from 0 to 1 and 0.5 > is half sampling (500Hz) therefore 300Hz is 300/1000. > > Country Chiel >
my mistake, I was copying the example for the high pass filter from the manual, and forgot about it. the above will be correct if I wrote butter(3,300/500,'high'); which is the example in the book. but for a low pass, it should be 300/1000. thanks. so, it looks like no users of Mathemtica here who use signals&systems? I am back to using/learning matlab, as I think it is much better for this sort of thing. sorry Mathematica, but your signals&systems package is too weak compared to matlab's