Menu

#397 fftWindow is a poor name

open
nobody
None
5
2011-01-27
2010-07-16
Bob Weigel
No

Choosing a non-power-of-two window lead to an error pop-up (with wrong icon, same problem as the help panel). Documentation should state that power-of-two is required. The name of fftWindow should really be SPECTROGRAM. See

http://www.mathworks.com/access/helpdesk/help/toolbox/signal/spectrogram.html

What happened to the periodogram (previously called fft, I think)?

Discussion

  • Jeremy Faden

    Jeremy Faden - 2010-07-16

    I should be able to support non-powers of two. There are two fft implementations running around in there: the old 2**k one we wrote the first month of writing das2, and a one based on a library from NIST. I'd work towards making it always use the NIST one just for consistency.

    I don't agree with you about the name "spectrogram" though. Mostly because spectrogram refers to a View, and these operators are working on the Model, but also because spectrogram already used to mean a color plot of a rank 2 or greater dataset, not necessarily a power spectrum from an fft. If I saw a matlab code using that I would have never guessed that's what it did. (I will definitely be seeing how my output compares with theirs though--there seem to be a number of different ideas about how the operation should be done.) (And maybe there is good reason to rename spectrogram to colorplot or something, but that would be very impactive, since spectrogram seems to be a widely-used term.)

    I remember working on the periodogram, but I'm not sure what's happened with it. There is still an fft method that takes a rank 1 dataset Z(T) and returns the fft of it. Where are you accessing these functions? I guess the paper has fftWindow, doesn't it?

     
  • Bob Weigel

    Bob Weigel - 2010-07-16

    We'll need to re-visit the issue of naming. For consistency, I always use

    Periodogram or Raw Periodogram - fft*conj(fft) with no smoothing
    Spectrogram - Short-time periodograms rendered side-by-side
    Histogram - etc.

    PSD and FFT are usually used to mean fft*conj(fft) with or without smoothing.

    I would defer to MATLAB's usage as it is most consistent with the signal processing literature.

    I disagree that the naming should be made consistent with the MVC (software) perspective as opposed to the science perspective (common usage). We will need to research how things are termed in the space physics literature, which I am sure deviates from the engineering literature a bit.

    Here is an example of spectrogram usage:

    http://www-istp.gsfc.nasa.gov/istp/polar/polar_pwi_descs.html#whistlers

    Perhaps externally we could use spectrogram to mean by default the definition of matlab and "channel spectrogram" to mean a rank 2 spectrogram as currently implemented?

     
  • Bob Weigel

    Bob Weigel - 2010-07-16

    SPASE uses

    "The characterization of signal strengths as a function of frequency (or energy) and time."

     
  • Jeremy Faden

    Jeremy Faden - 2010-07-16

    "(or energy)" was probably debated a bit, and I think that's the source of confusion. So I think we should add fftSpectrum which is an alias (and superset eventually) of fftWindow. We should try to think of a better word for spectrograms, something like the X is the ontology plot>colorplot>X>spectrogram, maybe colorTable.

     
  • Jeremy Faden

    Jeremy Faden - 2011-01-27

    This is still 2**k, which can and should be fixed easily. So was the resolution to rename the function fftSpectrum?

     
  • Bob Weigel

    Bob Weigel - 2011-01-27

    fftSpectrogram

     
  • Jeremy Faden

    Jeremy Faden - 2011-01-27

    Doesn't "gram" imply a plot? I think that's getting ahead a bit--while generally the user would apply the function and then view the result, there are places where the function can be used that outside of visualization.

    The name "window" is clearly misused: http://en.wikipedia.org/wiki/Window_function

    Another thought would be to remove the function and replace it with two functions that are easier to name.
    fftRank2= fft( frame( ds, 512 ) )
    where "frame" is a function that takes 1-D data and makes a rank 2 array of frames.

     
  • Jeremy Faden

    Jeremy Faden - 2011-01-27
    • summary: fftWindow --> fftWindow is a poor name
     
  • Jeremy Faden

    Jeremy Faden - 2011-01-27

    Looking again at matlab, I see you can get the result without making a plot. Maybe we should just copy the interface of this routine, and call it matlab support...

     
MongoDB Logo MongoDB