No peaks found when using findpeaks
6 views (last 30 days)
Show older comments
clc;
clear all;
% Read the tone and listen to it once
[tones, Fs] = audioread('pin_9.wav');
audid = audiodevinfo(0, Fs, 16, 1);
%if audid ~= -1
%p = audioplayer(tones, Fs, 16, audid);
% play(p);
%end
% Visualize the spectrum
N = numel(tones);
t = (0:N-1) / Fs;
% Iterate over each frequency bin and find peaks
for i = 1:size(tones, 2)
tone = tones(:, i);
% get the estimate of peak in time interval 1sec to 2sec of tone
tones_1 = tones(t>1 & t<2);
n_1 = length(tones_1);
t_1 = (0:n_1-1)/Fs;
p = abs(fft(tones_1));
f = (0:n_1-1)*(Fs/n_1);
figure
title(['FFT spectrum for tone ', num2str(i)]);
% Check if the input vector is non-empty before calling findpeaks
if ~isempty(p)
[pks, locs] = findpeaks(p);
peak = f(locs);
else
disp('No peaks found.');
peak = NaN;
end
plot(f, p);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
axis tight;
end
The result for this code is that it couldnt find any peaks. What do i do with this?
5 Comments
Answers (0)
See Also
Categories
Find more on Spectral Measurements 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!