Borrar filtros
Borrar filtros

Why isn't the output of an N point FFT discrete ?

2 visualizaciones (últimos 30 días)
Chinmay Samudra
Chinmay Samudra el 22 de Ag. de 2017
Editada: David Goodmanson el 23 de Ag. de 2017
I have written a code that samples and quantizes a cosine function and then finds it's FFT. I have got two questions: 1. Why is the output of the FFT shown as a continuous plot ? 2. The FFT doesn't give the correct frequency of my cosine function. Why ?
N=8
m=16
f=m*fs/(2^N); %Frequency of sinusoid
nCyl=16; %generate sixteen cycles of sinusoid
t=0:1/fs:nCyl*1/f; %time index
x=cos(2*pi*f*t);
ff=fft(x,256);
l=20*log10(ff)
plot((20*log10(abs(ff/256))))
Theoretically this code should produce a graph showing a big peak at 16 but that peak is coming at 17 . Why ?

Respuesta aceptada

David Goodmanson
David Goodmanson el 23 de Ag. de 2017
Editada: David Goodmanson el 23 de Ag. de 2017
Hi Chinmay,
If by 'isn't discrete' you are referring to the values in between the peaks, they are basically at the numerical limit for double precision. You might prefer plot(20*log10(abs(ff/256)),'o'), or stem(20*log10(abs(ff/256))+300) for the result relative to -300 dB. As for the peak location, an fft output array starts with zero frequency in ff(1), so f=16 is in ff(17).

Más respuestas (0)

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by