I am trying to compare two processing algorithms that I believe should be producing very similar results. I am processing acceleration signals over the course of the day and we expect to see a decrease in dominant frequency midday and an increase in the frequency at night. The frequency should be ~0.3 Hz and increase and decrease (by ~0.05) depending on the time of day.
My sampling frequency is 64 Hz and I am trying to run this analysis on the data we already have, so unfortunately we cannot run this experiment again with a lower sampling frequency.
First method using FFT:
1) I apply a bandpass filter on about a ~4 hour chunks of the signal allowing 0.1 Hz to 0.5 Hz. This leaves me with a signal of about 900,000 samples.
2) I then run a cross-correlation on this signal
3) I'm using MATLAB, and run the pwelch function on the cross-correlated signal. I run this with a gaussian window of length 3,500. 50% overlap.
4) I then attempt to smooth out the FFT spectrum with a Savitzky-Golay filter.
5) I fit the peak with the peakfit function
6) I extract the peak frequency within the 0.2 - 0.4 Hz range and call that the dominant frequency for that 4 hour chunk of time.
Second method using time-domain processing:
1) I run the same bandpass filter as above on the signal, same time chunk. I do not run a cross correlation.
2) I find all the peaks in the filtered time domain signal using the findpeaks function
3) I then find the difference between the successive peaks and create a histogram, which looks like a normal distribution centered on a certain period
4) I calculate the mean period of this distribution
5) I take the inverse of the mean period and call that the dominant frequency for that 4-hour chunk
I then run these algorithms on 3 weeks of a continuous acceleration signal and obtain very similar frequencies using both methods. However, about 25% of the peak extractions on the FFT seem wildly off and noisy. For example from point-to-point, meaning from one four-hour chunk to the next four-hour chunk, the frequency change is 50-100% different. On the other hand our second method (the time-domain method) never shows this kind of noise or variance and the transition to different time periods is much smoother and what we expect.
I feel like I can keep playing around with the window lengths/different windowing methods with the FFT, but I had a few questions first.
1) I haven't found any thing in the literature with a similar description to what I am doing with my time-domain method. Am I doing something completely unnecessary here? Is our method valid or just arbitrary? Should I just focus on doing FFT processing? This method makes sense to me, but I cannot back up this method with any relevant literature.
2) Because the time series of extracted frequencies using my FFT method is somewhat noisy, I am leaning towards moving forward with my time-domain method, making my first question more pressing to justify because we would like to publish these results.
3) I'd be happy to hear thoughts on either of these algorithms