Main Content


Transform iddata object to frequency domain data


Datf = fft(Data)
Datf = fft(Data,N)
Datf = fft(Data,N,'complex')


Datf = fft(Data) transforms time-domain data to frequency domain data. If Data is a time-domain iddata object with real-valued signals and with constant sample time Ts, Datf is returned as a frequency-domain iddata object with the frequency values equally distributed from frequency 0 to the Nyquist frequency. Whether the Nyquist frequency actually is included or not depends on the signal length (even or odd). Note that the FFTs are normalized by dividing each transform by the square root of the signal length. That is in order to preserve the signal power and noise level.

Datf = fft(Data,N) specifies the transformation length. In the default case, the length of the transformation is determined by the signal length. A second argument N will force FFT transformations of length N, padding with zeros if the signals in Data are shorter and truncating otherwise. Thus the number of frequencies in the real signal case will be (N/2)+1 or (N+1)/2. If Data contains several experiments, N can be a row vector of corresponding length.

Datf = fft(Data,N,'complex') specifies to include negative frequencies. For real signals, the default is that Datf only contains nonnegative frequencies. For complex-valued signals, negative frequencies are also included. To enforce negative frequencies in the real case, add a last argument, 'Complex'.

Version History

Introduced in R2007a