2
$\begingroup$

I'm looking at heart rate variability (HRV). Frequently, in the Fourier transform I see two peaks that are close together. How could I determine whether this is two peaks, or just one peak and noise? Please see figure below. The units of the x axis is hertz. Thanks.

ps. I take a forty minute HRV measurement. For the figure below, I used a window of 1000 points, about 17 minutes, in the middle of the measurement. I'm not doing anything else to the data.

Below is also 100 data points from the source data.

enter image description here

enter image description here

$\endgroup$
  • $\begingroup$ @kjetil Will do. $\endgroup$ – Chris Sep 16 at 1:20
  • $\begingroup$ Do you know the statistics of the noise? $\endgroup$ – Engineer Sep 16 at 15:15
  • $\begingroup$ @Engineer, I'm afraid that I'm new to signal processing, so no. If it helps, I can do this measurement on any given day, but no two days are the same. I can do this measurement on other subjects, but no two subjects will be the same. $\endgroup$ – Chris Sep 16 at 15:24
0
$\begingroup$

The reason why you are not able to figure out whether these are two peaks is because your frequency plot has no "time element/information". It is the entire frequency content of the signal accross all time.

Take a short time Fourier transform of the signal. The time granularity of the STFT should be that of one heartbeat or close to it (any approx value of a typical human). If then you see two peaks in different time instances then these are two peaks at those times. maybe they are close or spread apart. That will help you determine whether it is a legitimate beat or not

A short time Fourier transform gives you a time contained frequency view of the signal.

How's it done is that you take your signal and divide it into small pieces, each piece length is what determines your time resolution. Then you take the FFT of each peice and plot it as a time-frequency plot.

You would need to know the sampling rate of the acquisition device. For ex: let's say it's 1Mhz, then every digital sample has 1us of information. Now if you want a granularity of 1ms then you need to take 1000 digital samples at one time and plot their FFTs. You can set ur time resolution based on a typical human heart beat or the granularity you want that will help you resolve the time occurrences of the two peaks.

| improve this answer | |
$\endgroup$
0
$\begingroup$

$$ \cos( A ) + \cos( B ) = 2 \cos\left( \frac{A+B}{2} \right) \cos\left( \frac{A-B}{2} \right) $$

This is known as the "beat phenomenon". It means that a steady tone with a steady cosine shaped varying envelope is mathematically indistinguishable from the sum of two tones. Since your signal sort of resembles that, you get that effect.

| improve this answer | |
$\endgroup$
0
$\begingroup$

I would explore the data using other methods such as autocorrelation, wavelet transform or even parametric PSD estimators. This would help to gain additional insight about the signal's characteristics and bring complementary information. Spectrograms also help.

| improve this answer | |
$\endgroup$
  • $\begingroup$ @Pinto I'm presently studying up on autocorrelation. I was wondering if you point me a little further in that direction. $\endgroup$ – Chris Sep 18 at 0:45
  • $\begingroup$ autocorrelation is just the signal multiplied by a delay version of itself and then everything summed up (or integrated). When peaks appear then it means that a periodicity was present. The corresponding delay gives you the period. $\endgroup$ – Filipe Pinto Sep 23 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.