I am trying to implement what's called the "second spectrum". Basically, you do this:
- Take a time series of length N.
- Divide it into m segment, each of length N′=N/m.
- For each segment m, do a Fourier Transform. The result is the 'first spectrum',S(1)i(f1),i=1:m
- Divide each spectrum into n octaves, an octave starts at fL=f0×2p and ends at fH=f0×2p+1, where p=0,1,2,etc, and f0 is the lowest frequency in S(1)i(f1). For f0=1 Hz, The octaves will be like: 1-2 Hz, 2-4 Hz, 4-8 Hz, 8-16 Hz, etc.
- For each octave in each spectrum, sum all spectrum values in that octave.
- Construct a time-series for each octave. There will be n time series each of length m.
- Take the Fourier Transform of these time series. This is the second spectrum, S(2)n(f2)
I have already implemented this algorithm (in c++), but I have a question:
Q: in step 4, can I simply divide the spectrum signal into octaves "just like that"? I mean, without any kind of band-pass filtering to these octaves?
EDIT: what I mean by the "just like that" is as if I am passing the spectrum through a rectangular window (in freq. domain).
No comments:
Post a Comment