I need to find the maximum peak of an audio signal using matlab. I want to call me wavread
The input is obtained using the command and the signal frequency domain has been converted using FFT. After finding its magnitude, I need to store the peak value for further calculations. How can I do this?
I think your IN_MAG
is not a real vector, which means You are storing the actual and imaginary part of your FFT, I will advise you to read doc fft
of the matlab documentation so that you can make a proper vector.
If you want to complete it, if you want a unique peak, use the maximum, just the function maximum
if you can not personally find that you What is to find, then
We say that with the minimum height of 0.5, the first 3 peaks and 10 points apart from each other, [pk, folk] = Finder (IN_MAG, 'NPEAKS', 3, 'MINPEAKHIGHIGH', 0.5, 'MINPEAKDISTANCE', 10);
Then pks
is your y
and locs
is your x
coordinate From your peaks
Edit:
As an FFT,
Assume that sig
is your sign,
T = Linspace (0, L / FS, L); Sample rate in% FS Hz and L is signal length NFFT = 2 ^ next pose 2 (L); F = FS / 2 * Lynxpace (0,1, NFFT / 2 + 1); Fft_sig = fft (sig, NFFT) / L; Magnitude_sig == 2 * abs (fft_sig (1: NFFT / 2 + 1));
This is your right FTP magnitude signal.
Comments
Post a Comment