What is the optimum value of Nfft for getting FFT spectrum for an ultrasonic signal having the sampling frequency of 2000 kHz obtained using probes of 54 kHz frequencies ?
1) NFFT must be greater than your series length: N = length(x);
2 ) yes, FFT is faster if it is an exponential of 2: NFFT = 2^(nextpow2(N)+3); 3 makes more points!
3) but maybe, is better to think about NFFT as a way to "increase" the spectral resolution, so better use NFFT = 10*N; to increase it by 10 (at most). So
building on Khalid's answer, the best number depends on the spectral resolution you want to achieve. Given your sampling rate fS and a minimum resolution fResMin, you can simply compute the number of points nFFT by
nFFT = ceil(fS/fResMin)
Be aware however, that this might become huge! For your application, a minimum resolution of 1Hz would result in 2000000 samples.
In addition, keep in mind, that increasing nFFT beyond the number of samples in your input signal will simply zero-pad the signal (which will be problematic if your signal is not close to zero at the start/end).