How to use findpeaks in the frequency domain?

Illustration
Leonardo - 2020-12-05T14:31:47+00:00
Question: How to use findpeaks in the frequency domain?

I'm able to use findpeaks to find out the amplitude and time of each mode but i'm trying to use it to also find frequency, below was my attempt however as I am still very new to this software I was looking for a little help? clear; clc; close all; [audio_file, Fs] = audioread("honours_gun.wav"); audio_file = audio_file(:, 1); select = audio_file; findpeaks(select,Fs,'MinPeakDistance', 0.001); figure(2), semilogx(audio_file), xlabel('Frequency, Hz'), ylabel('magnitude'); I'm able to  plot the frequency with a logarithmic scale and if I could manage to identify the peaks I will have all the information from the sample I need.

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

[audio_file, Fs] = audioread("honours_gun.wav");
L = size(audio_file,1);
Ts = 1/Fs;                                                      % Sampling Interval
Fn = Fs/2;                                                      % Nyquist Frequency
FT_af = fft(audio_file)/L;                                      % Fourier Transform
Fv = linspace(0, 1, fix(L/2)+1)*Fn;                             % Frequency Vector
Iv = 1:numel(Fv);                                               % Index Vector

[PksL,LocsL] = findpeaks(abs(FT_af(Iv,1))*2, 'MinPeakHeight',4E-3);
[PksR,LocsR] = findpeaks(abs(FT_af(Iv,2))*2, 'MinPeakHeight',4E-3);

figure
subplot(2,1,1)
plot(Fv, abs(FT_af(Iv,1))*2)
hold on
plot(Fv(LocsL), PksL, '^r', 'MarkerFaceColor','r')
hold off
ylabel('Amplitude')
title('Left Channel')
subplot(2,1,2)
plot(Fv, abs(FT_af(Iv,2))*2)
hold on
plot(Fv(LocsR), PksR, '^r', 'MarkerFaceColor','r')
hold off
xlabel('Frequency (Hz)')
ylabel('Amplitude')
title('Left Channel')
The frequency peaks are in ‘Fv(LocsL)’ and ‘Fv(LocsR)’ respectively. The peak values for each correspond to those.
Experiment (especially with the findpeaks name-value pairs) to get the result you want.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!