필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
Chinmay Samudra
Chinmay Samudra 2017년 8월 22일
편집: David Goodmanson 2017년 8월 23일
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 ?

채택된 답변

David Goodmanson
David Goodmanson 2017년 8월 23일
편집: David Goodmanson 2017년 8월 23일
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).

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by