Single sided spectrum of vector y obtained using fft

69 visualizaciones (últimos 30 días)
Diya Samanta
Diya Samanta el 1 de Sept. de 2020
Editada: Star Strider el 1 de Sept. de 2020
how to plot a single sided spectrum of vector y obtained using fft?

Respuesta aceptada

Star Strider
Star Strider el 1 de Sept. de 2020
The way I usually calculate and plot it:
t = linspace(0, 1, 1E+4);
s = sum(sin([0; 100; 200; 300]*2*pi*t*10)) .* randn*10;
Ts = mean(diff(t)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
L1 = numel(t);
FTs1 = fft(s)/L1; % FFT Of Original Signal
Fv1 = linspace(0, 1, fix(L1/2)+1)*Fn; % Frequency Vector
Iv1 = 1:numel(Fv1); % Index Vector
L2 = 2^nextpow2(L1);
FTs2 = fft(s,L2)/L1; % FFT Of Zero-Padded Signal
Fv2 = linspace(0, 1, fix(L2/2)+1)*Fn; % Frequency Vector
Iv2 = 1:numel(Fv2); % Index Vector
figure
subplot(2,1,1)
plot(Fv1, abs(FTs1(Iv1))*2)
title('FFT of Original Signal')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
grid
subplot(2,1,2)
plot(Fv2, abs(FTs2(Iv2))*2)
title('FFT of Zero-Padded Signal')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
grid
This also demonstrates a way to increase the frequency resolution of the fft result by zero-padding it.
.

Más respuestas (1)

Deepak Gupta
Deepak Gupta el 1 de Sept. de 2020
Editada: Deepak Gupta el 1 de Sept. de 2020
You can refer FFT Documentation. There are multiple examples to obtain this.

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!

Translated by