Hello, I was hoping I could get some advice to help me decide which FFT windowing function (or no windowing function) would be most appropriate for my application. I have a (1xN) array of sampled data. For reference, the sampled data is IC clock jitter (each data point is a measurement of the difference between a clock's measured rising edge and its ideal location). The noise spectrum is thus fairly broadband, in the sense that there is random noise at all frequencies. There will also be various (unpredictable) spurs appearing somewhere in the frequency range of interest (roughly 10 Hz - 30 MHz), created most likely by an on-chip PLL multiplier, crosstalk, switch-mode power supplies, or other digital switching noise. Here are some typical examples of the frequency spectrum (shown as phase-noise plots, but you can think of them as normalized one-sided spectrum analyzer plots). http://www.qpro.se/home/img/phasenoisecurve.gif http://techon.nikkeibp.co.jp/article/HONSHI/20070831/138601/fig6.jpg My goal is to locate and isolate these spurs in the spectrum, and throw away (zero the FFT frequency bins associated with) the random noise. Before doing an Matlab FFT on my data, I'm not sure if I should apply a window to reduce spectral leakage. The most relevant discussions I've found online thus far are here, http://www.daqarta.com/eex06.htm http://zone.ni.com/devzone/cda/tut/p/id/4844 They each attempt to analyze the tradeoffs associated with picking specific window functions. But I'm still not clear on the best way to proceed. Accurate amplitude information is perhaps more important to me than determining the exact frequency. The flat-top window seems to win here. However, the spurs may be somewhat buried in the noise, so seeing low- level components is also a consideration. Perhaps the Blackman window is a better compromise? Looking for some conventional wisdom from the experts here to guide my understanding in making a choice of window (or no window) function. Any advice/feedback/tradeoffs would be greatly appreciated. Thanks for reading through my (somewhat wordy) request, -GGK

# advice for choosing FFT window function

Started by ●May 15, 2008

Reply by ●May 15, 20082008-05-15

On May 14, 9:25 pm, ggk <ggkm...@comcast.net> wrote:> Hello, > > I was hoping I could get some advice to help me decide which FFT > windowing function (or no windowing function) would be most > appropriate for my application. > > I have a (1xN) array of sampled data. For reference, the sampled data > is IC clock jitter (each data point is a measurement of the difference > between a clock's measured rising edge and its ideal location). The > noise spectrum is thus fairly broadband, in the sense that there is > random noise at all frequencies. There will also be various > (unpredictable) spurs appearing somewhere in the frequency range of > interest (roughly 10 Hz - 30 MHz), created most likely by an on-chip > PLL multiplier, crosstalk, switch-mode power supplies, or other > digital switching noise. Here are some typical examples of the > frequency spectrum (shown as phase-noise plots, but you can think of > them as normalized one-sided spectrum analyzer plots). > > http://www.qpro.se/home/img/phasenoisecurve.gifhttp://techon.nikkeibp.co.jp/article/HONSHI/20070831/138601/fig6.jpg > > My goal is to locate and isolate these spurs in the spectrum, and > throw away (zero the FFT frequency bins associated with) the random > noise. > > Before doing an Matlab FFT on my data, I'm not sure if I should apply > a window to reduce spectral leakage. The most relevant discussions > I've found online thus far are here, > > http://www.daqarta.com/eex06.htmhttp://zone.ni.com/devzone/cda/tut/p/id/4844 > > They each attempt to analyze the tradeoffs associated with picking > specific window functions. But I'm still not clear on the best way to > proceed. Accurate amplitude information is perhaps more important to > me than determining the exact frequency. The flat-top window seems to > win here. > > However, the spurs may be somewhat buried in the noise, so seeing low- > level components is also a consideration. Perhaps the Blackman window > is a better compromise? > > Looking for some conventional wisdom from the experts here to guide my > understanding in making a choice of window (or no window) function. > Any advice/feedback/tradeoffs would be greatly appreciated. > > Thanks for reading through my (somewhat wordy) request, -GGKI'd suggest using a window with sidelobe rejection somewhat better than the greatest peak to local noise spectral density (per bin) that you expect and a sidelobe rolloff rate greater than the slope of the noise spectral density slope. Then I'd use numerical methods to interpolate frequency and amplitude of peaks from the two largest magnitude values about each peak. In your examples, the greatest noise spectral density slope seems to be about 30 dB/decade or 9 db per octave. There are a variety of windows with 9 db/octave or greater sidelobe rolloff The ratio of peak to local noise spectral density cannot be determined because you did not give values for N and Fs. So this is an approach you can apply, not a specific answer. Dale B. Dalrymple http://dbdimages.com

Reply by ●May 15, 20082008-05-15

On 15 Mai, 06:25, ggk <ggkm...@comcast.net> wrote:> Hello, > > I was hoping I could get some advice to help me decide which FFT > windowing function (or no windowing function) would be most > appropriate for my application. > > I have a (1xN) array of sampled data. For reference, the sampled data > is IC clock jitter (each data point is a measurement of the difference > between a clock's measured rising edge and its ideal location). The > noise spectrum is thus fairly broadband, in the sense that there is > random noise at all frequencies. There will also be various > (unpredictable) spurs appearing somewhere in the frequency range of > interest (roughly 10 Hz - 30 MHz), created most likely by an on-chip > PLL multiplier, crosstalk, switch-mode power supplies, or other > digital switching noise. Here are some typical examples of the > frequency spectrum (shown as phase-noise plots, but you can think of > them as normalized one-sided spectrum analyzer plots).These are clock signals? And the ficures are *phase* spectra, right? Could you supply plots of time domain signals and magnitude spectra as well? Rune

Reply by ●May 15, 20082008-05-15

"ggk" <ggkmath@comcast.net> wrote in message news:cf4b9291-2c2f-44fc-a1a0-3f27b049024e@h1g2000prh.googlegroups.com...> > I have a (1xN) array of sampled data. For reference, the > sampled data > is IC clock jitter (each data point is a measurement of the > difference > between a clock's measured rising edge and its ideal > location). The > noise spectrum is thus fairly broadband, in the sense that > there is > random noise at all frequencies. There will also be various > (unpredictable) spurs appearing somewhere in the frequency > range of > interest (roughly 10 Hz - 30 MHz), created most likely by an > on-chip > PLL multiplier, crosstalk, switch-mode power supplies, or > other > digital switching noise. > > My goal is to locate and isolate these spurs in the spectrum, > and > throw away (zero the FFT frequency bins associated with) the > random > noise. > > Before doing an Matlab FFT on my data, I'm not sure if I > should apply > a window to reduce spectral leakage. > Accurate amplitude information is perhaps more important to > me than determining the exact frequency. The flat-top window > seems to > win here. > > However, the spurs may be somewhat buried in the noise, so > seeing low- > level components is also a consideration. Perhaps the > Blackman window > is a better compromise?The effect of the "flat-top window" is to apply a sliding window average to some number of adjacent bins (sliding in frequency across the spectrum). This will blur the location (in frequency) of spectral features. While all window functions do this to some extent, the "flat-top window" is designed to do it aggressively. You can design one that will average no more than two or three consecutive bins which seems to be consistent with your problem statement. Higher-order windows like the Blackman-Harris and its relatives reveal and separate signals that are close together, non-integral multiples of the sampling window (and so not centered on a bin), and of widely different amplitudes (say, a strong signal close to a weak signal). From your description it does not sound like this fits your problem. Considering that you seem to be trying to separate features that are at a constant location (and amplitude) in your spectra from features that appear and disappear randomly, your best bet might be to ensemble-average a group of N consecutive spectra. This will reduce the variance of each spectral bin by N. It will tend to reinforce features that occur at the same place in each spectrum and cancel those that are transient. This introduces another design parameter: how much to overlap consecutive FFTs. You can go from nearly 100% overlap to no overlap to using non-contiguous segments of sampled data (negative overlap?) do develop your spectra.