No peaks found when using findpeaks
Mostrar comentarios más antiguos
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 comentarios
Dyuman Joshi
el 2 de Abr. de 2024
Please attach the audio file so we can run your code.
Also, have you tried plotting that signal and see if there are any peaks in it?
Mathieu NOE
el 2 de Abr. de 2024
hello
seems the file you're trying to open does not exist in the current path
look at your error message again :
Error using audioread>readaudio (line 167)
The filename specified was not found in the MATLAB path.
Dyuman Joshi
el 2 de Abr. de 2024
@Mathieu NOE, That's because I edited the problem description and ran that code in MATLAB Answers Live Editor.
Mathieu NOE
el 2 de Abr. de 2024
yes , of course !
we need the OP to share his wav file
Mathieu NOE
el 3 de Abr. de 2024
hello @ALIA
problem solved or you still need some help ?
Respuestas (0)
Categorías
Más información sobre Spectral Measurements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!