<FFT Example> illustrates normalization of one-sided PSD to retrieve input magnitude. Is exact for noiseless signals that match the frequency binning; real world signals have noise and energy-smearing across bins that makes for messiness, but that's the basis for where the energy is in the output signal.
Normalize FFT Signal of ECG data
10 views (last 30 days)
Show older comments
Hi all,
I have some excel data that plots an ECG. I have the mean and performed an FFT on the data. Now I'm trying to normalize the FFT signal so I can find the magnitude and phase of each harmonic. I've looked around and have tried various ways to normalize the signal and none of my techniques seem to working. Any help would be appreciated!
0 Comments
Answers (1)
dpb
on 17 Apr 2018
8 Comments
John Navarro
on 6 May 2020
Very good explaination.
But what about the PSD?
Please notice the amplitude values will change as a function of the L value.
Notice when only L=3000 the PSD will shows the energy of 1 and 0.7 respectively, with other values the amplitude of the figure changes. Any recommendation about how to noralize this one?
%PSD
[SignalSpectrum,SignalFrequencies] = periodogram(S, ...
[],[],Fs);
plot(SignalFrequencies,SignalSpectrum)
title('PSD1')
dpb
on 6 May 2020
I'm not sure otomh what the MATLAB periodogram function does internally and don't have the time to research it just at the moment, sorry.
As noted above, the normalization of PSD via FFT uses L, the length of the input signal irrespective of N, the number of elements in the FFT if augment to nextpow2(). The extra points don't have any power associated with them so they're not included in the divisor.
I would presume periodogram would act similarly, but that is a presumption, granted.
See Also
Categories
Find more on Parametric Spectral Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!