Hi everyone,
I want to plot the frequency spectrum graph of an original audio signal by using this code:
%input audio file with format: *.wav [samAud, samRate]=audioread('Toto_Africa.wav'); N=200; f=0:samRate/(N/2-1):samRate; samAud_fft=fft(samAud,N); %plot audio file in time domain figure(1) plot(samAud); %plot original audio signal in time domain %plot audio file in frequency domain figure(2) plot(f,abs(samAud_fft(1:N/2))/max(abs(samAud_fft(1:N/2)))); xlabel('Frequency (in hertz)');
However, I have trouble where the graph is only showing like this:
Could somebody help me troubleshoot this problem?
NOTE:-
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help , Finance Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
my code suggestion for audio file analysis :
clc clear all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % load signal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% data [signal,Fs] = audioread('test_voice.wav'); [samples,channels] = size(signal); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FFT parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NFFT = 256; % OVERLAP = 0.75; % spectrogram dB scale spectrogram_dB_scale = 80; % dB range scale (means , the lowest displayed level is XX dB below the max level) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % if you are dealing with acoustics, you may wish to have A weighted % spectrums % option_w = 0 : linear spectrum (no weighting dB (L) ) % option_w = 1 : A weighted spectrum (dB (A) ) option_w = 0; %% decimate (if needed) % NB : decim = 1 will do nothing (output = input) decim = 4; if decim>1 for ck = 1:channels newsignal(:,ck) = decimate(signal(:,ck),decim); Fs = Fs/decim; end signal = newsignal; end samples = length(signal); time = (0:samples-1)*1/Fs; %%%%%% legend structure %%%%%%%% for ck = 1:channels leg_str{ck} = ['Channel ' num2str(ck) ]; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % display 1 : time domain plot %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(1),plot(time,signal);grid on title(['Time plot / Fs = ' num2str(Fs) ' Hz ']); xlabel('Time (s)');ylabel('Amplitude'); legend(leg_str);
SEE COMPLETE ANSWER CLICK THE LINK
Comments
Post a Comment