I have used semilogx and semilogy to plot the attached audio signal but never loglog. I keep getting an error returned to me about the input arguments but am unsure on what to add in my code for it to work with findpeaks. Could anyone one advise me please?
[audio_file, Fs] = audioread("Handgun.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(20*log10(abs(FT_af(Iv,2))*2), 'MinPeakHeight',-90, 'MinPeakDistance',50);[PksR,LocsR] = findpeaks(20*log10(abs(FT_af(Iv,2))*2), 'MinPeakHeight',-90, 'MinPeakDistance',50);figure(1);loglog(Fv, 20*log10(abs(FT_af(Iv,2))*2)), xlabel('Frequency, Hz', ylabel('Amplitude, dB'));hold onplot(Fv(LocsR), PksR, '^r', 'MarkerFaceColor','r')hold offxlabel('Frequency (Hz)')ylabel('Amplitude (dB)')title('Handgun')
When I run the code I get this error:
>> Spectral_Analysis_HandgunError using xlabel (line 21)Incorrect number of input arguments.Error in Spectral_Analysis_Handgun (line 11)loglog(Fv, 20*log10(abs(FT_af(Iv,2))*2)), xlabel('Frequency, Hz', ylabel('Amplitude, dB'));
Best Answer