Processing experimental data: how to do it ?
Andrew Calkin
calkin at ieee.org
Wed Oct 6 04:00:22 PDT 2004
Since you were calculating the average power spectrum, I am assuming
that the data is stationary. Depending on the format the data is stored
as, would it be possible to segment the data into smaller sets (that
can be loaded into memory in matlab), perform the periodogram estimate
on each of the smaller data subsets, and sum. Then after all the data
is processed, divide the resulting spectrum by the number in the sum
(i.e. the numerical average is calculated). The procedure can be done
in a memory-friendly manner using a 'for' loop.
This is called the
averaged periodogram estimate of the data, however it involves a
trade-off between the frequency resolution of the spectrum and the
variance (and additionally the bias) of the estimator. But, the
procedure I outlined can be implemented so as to have lower memory
requirements. I assumed that loading the entire data file at once in
matlab was not feasible- if this is wrong then the procedure is even
easier.
If the data is nonstationary, then you should not be using the power
spectrum for analysis, instead use a time-varying spectral estimate
(e.g. spectrogram).
Regards,
//Andrew
More information about the lfs-chat
mailing list