|
12345678910111213141516171819202122232425 |
- from scipy import signal
-
-
- # Calculate heart rate from FFT peaks
- def find_heart_rate(fft, freqs, freq_min, freq_max):
- fft_maximums = []
-
- for i in range(fft.shape[0]):
- if freq_min <= freqs[i] <= freq_max:
- fftMap = abs(fft[i])
- fft_maximums.append(fftMap.max())
- else:
- fft_maximums.append(0)
-
- peaks, properties = signal.find_peaks(fft_maximums)
- max_peak = -1
- max_freq = 0
-
- # Find frequency with max amplitude in peaks
- for peak in peaks:
- if fft_maximums[peak] > max_freq:
- max_freq = fft_maximums[peak]
- max_peak = peak
-
- return freqs[max_peak] * 60
|