What is the x-axis in fft() command?
40 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!