fft error: Not enough input arguments.
Ältere Kommentare anzeigen
Someone can help me in this code for know de heart frequency.
function homoFreq(y,Fs,nfft)
% x is input signal
% nfft is number of fft points
Fs = 16000;%sampling rate
% subplot(2,1,1),plot(x);
% title('Waveform'), xlabel('Time (ms)'), ylabel('Amplitude');
[y,Fs]=wavread('*.wav'); %* is for file name
t=((1:length(y))-1)/Fs;
figure();
plot(t,y); %only for check
ht=fft((y.*hamming(length(y))),nfft); %nfft point -----> fft error in this line
freqAxis=Fs/2*length(ht)/Fs;
f=(0:freqAxis)*Fs/length(ht);
% subplot(2,1,2);
spec = 20*log10(abs(ht(1:length(f))));
plot(f,spec);ylim([-50 35]);
title('Spectrum'), xlabel('Frequency'),ylabel('Log Magnitude');
[pks,locs] = findpeaks(spec);
for m = 5:5,
differ(m-4) = locs(m)-locs(m-1);
%finding the difference between 5th...
%and 4th peak of the spectrum
end
pitchFreq = mean(differ)*Fs/nfft;
fprintf('Pitch Frequency in Frequency Domain = %gHz\n', pitchFreq)
2 Kommentare
Walter Roberson
am 19 Jan. 2012
What does
which -all fft
report?
Fernando
am 20 Jan. 2012
Akzeptierte Antwort
Weitere Antworten (1)
Dr. Seis
am 20 Jan. 2012
0 Stimmen
When you run the function as "homFreq" (with no input arguments) from the command line (or from the editor) you aren't defining "nfft" before it is being called at line 12.
Kategorien
Mehr zu AI for Audio finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!