Remove spurious peaks of Hilbert transform I want to eliminate spurious peaks of Hilbert transform for finding glottal closure in the linear prediction (LP) residual. I have the following 4 steps:


Down-sample.
Hilbert Transform.
Identify Peaks in Hilbert Transform.
Consider this hypothesis that time gap between two successive glottal closure instance is not likely to vary in the adjacent pitch period.


Case 3 would help to find peaks such as candidate and spurious peaks. However case 4 improve our results for best peaks candidate for glottal closure.

I have written the following MATLAB code:

e_downsample = downsample(e,2);
DFT=fft(e);
hilbert_e=ifft(complex(imag(DFT(1:(length(DFT)/2))),real(DFT(1:(length(DFT)/2)))));
h_e=sqrt(e_downsample(:).^2-hilbert_e(:).^2);
[pks,locs] = findpeaks(abs(h_e));
figure, 
plot(abs(h_e));


I will really appreciate, if anyone help me in cases 3 and 4.
As far as I understand, you have a periodic signal, or a quasi periodic signal. And as far as I understand, you have lots of false positives when you detect the peaks.

You need a better way to identify peaks, try this  one...