What is the x-axis in fft() command?
    30 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jaya Sodhani
 el 21 de Jun. de 2022
  
    
    
    
    
    Editada: Star Strider
      
      
 el 21 de Jun. de 2022
            y=audioread('speech.wav');
subplot(2,3,1);
plot(y);
xlabel('Samples');
ylabel('Magnitude');
title('Speech signal');
%Taking FFT
fft_sig=fft(y,256);
abs_val=abs(fft_sig);
subplot(2,3,2);
plot(abs_val);
When I give the command plot(abs_val), what will the x-axis of my graph represent according to my code?
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 21 de Jun. de 2022
        
      Editada: Star Strider
      
      
 el 21 de Jun. de 2022
  
      The x-axis will be frequency, that being defined as cycles/(time unit of the original independent varialble).  If that is in seconds, the frequency will be in Hz.  
The best way to do that is: 
[y,Fs] = audioread('speech.wav');                               % Return Sampling Frequency As The Second Output
L = size(y,1);
Fn = Fs/2;                                                      % Nyquist Frequency
tv = linspace(0, L-1, L)/Fs;                                    % Time Vector
One way to compute the frequency vector: 
Fv = linspace(0, 1, fix(length(fft)/2)+1)*Fn;                   % One-Sided 'fft'
Iv = 1:numel(Fv);                                               % Index Vector
The fft result to be plotted would then use ‘Fv’ and ‘Iv’ to create an equal-length fft vector.  
Fv = linspace(-Fs/2, Fs/2-Fs/length(s), length(s));             % Two-Sided 'fft': EVEN 'length(s)' (Asymmetric)
Fv = linspace(-Fs/2, Fs/2, length(s));                          % Two-Sided 'fft': ODD 'length(s)' (Symmetric)
.
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Spectral Measurements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

