The Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.


Math Forum » Discussions » Inactive » comp.soft-sys.math.mathematica

Topic: Engineering requests
Replies: 14   Last Post: Mar 14, 2012 1:38 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
roby.nowak@gmail.com

Posts: 87
Registered: 5/8/07
Re: Engineering requests
Posted: Mar 8, 2012 4:43 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 2 Mrz., 13:49, "McHale, Paul" <Paul.McH...@excelitas.com> wrote:
> So, here are some problems we face, but don't have great answers for in Mathematica.

> 6. ListFFT[]. This is an unusual request. 99% of the data we engineers deal with is evenly spaced sample data. Most of the FFT activity I have ever seen involves getting the FFT from a list of data and plotting Real[]. Simplified, I know. Since most of our data is in the form {{t1, sample1},{t2, sample2},{t3, sample3}} the time information is embedded. In fact, all information is available to perform an FFT. Just saying it makes life easier. Could offer options like Results->{Real, Imaginary, Both}

>
> Kind Regards,
> Paul
>



Hi Paul,
by plotting Real[ ] you certainly had plotting Re[ ] in mind which is
not fundamental different form Im[ ],
most of the FFT activity I have ever seen involves getting the FFT
from a list of data and plotting Abs[ ].

Could it be that you are lookoing for spectral amlitude (and or power)
analysis with correct frequency information ?

the functions below take a 1D list of data samples as first parameter
and a second optional scalar parameter specifying the SamplingPeriod,
they return a spectrum as list of {frequency, amplitude} resp.
{frequency, power} pairs if a SamplingPeriod is specifyed.

FourierSpectrum[ ] first calculates the mathematical spectrum
containing positive as well as negative frequencies.
For real input data one can add the positive and the conjugate of the
negative frequncies to get a physical spectrum of positive only
frequencies.
By this method there is no special treatment neccesary to obtain the
correct DC as well as the correct max. frequency term.
Appears to be more physical than just litter the negative frequencies
and adjust the DC and max. frequency terms.



FourierSpectrum[d_,SampligPeriod_:
False]:=Module[{q2=Quotient[Length[d],2],m2=Mod[Length[d],2]},
Fourier[d,FourierParameters->{-1,1}]//Join[#[[1;;1]],#[[2;;q2+m2]]
+Conjugate@Reverse@(#[[q2+2;;]]),#[[q2+1;;q2+1-m2]]]&//
Abs//If[SampligPeriod=!=False,{1/(2 SampligPeriod (Length@# -1))
Range[0,Length@#-1],#}//Transpose, #]&
]

FourierPSpectrum[d_,SampligPeriod_:
False]:=FourierSpectrum[d,SampligPeriod]//If[SampligPeriod=!=False,
{First@#,(Last@#)^2}&/@#,#^2]&



Robert




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2017. All Rights Reserved.