FFT of discrete signal .Should use nextpow2 or not

21 views (last 30 days)
Hi ,
Number of samples= 50000 samples.
m=[ 0 54 ...................................................]
m is the discrete signal samples .Has length of 50000
Is this code correct for the signal which has 50000 samples?
Do I use nextpow2 function?
When I used it I am getting wrong frequency components in FFT.
Here is the code i have written .
m=[ 0 54 ...................................................]; 50000 samples are there .
fs=50000000; %Sampling frequency
nfft=length(m);
%nfft=2^nextpow2(nfft);
X=fft(m,nfft); %FFT of the signal
X=X(1:nfft/2);
%take magniutde
mx=abs(X);
f=(0:(nfft/2)-1)*fs/nfft; %Frequency range
figure(1);
n=50000;
t=0:1:(n-1);
plot(t,m);
title('Multisine')
xlabel('Samples')
ylabel('Amplitude');
figure(2)
plot(f,mx);
title('FFT of signal')
xlabel('Frequency')
ylabel('Amplitude');

Accepted Answer

Star Strider
Star Strider on 21 Apr 2021
Using nextpow2 is not necessary. It will make the fft calculation a bit more efficient, and it will increase the frequency resolution. See the documentation section on Computational Efficiency for an extended discussion.
  6 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!