No peaks found when using findpeaks
古いコメントを表示
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 件のコメント
Dyuman Joshi
2024 年 4 月 2 日
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
2024 年 4 月 2 日
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
2024 年 4 月 2 日
@Mathieu NOE, That's because I edited the problem description and ran that code in MATLAB Answers Live Editor.
Mathieu NOE
2024 年 4 月 2 日
yes , of course !
we need the OP to share his wav file
Mathieu NOE
2024 年 4 月 3 日
hello @ALIA
problem solved or you still need some help ?
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Descriptive Statistics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!