function data = qfft(data); % QFFT One-sided Fourier transform of time domain data % % QFFT computes the one-sided Fourier transform of time domain data similar to % the output produced by QCONDITION and QSCANCONDITION. The resulting one-sided % frequency domain data are assumed to extend from zero frequency to the Nyquist % frequency. As a result, time domain data of length N corresponds to frequency % domain data of length N / 2 + 1. % % QFFT can be used as a placebo replacement for QCONDITION. % % usage: % % frequencyDomainData = qfft(timeDomainData); % % timeDomainData cell array of time domain data % % frequencyDomainData cell array of one-sided frequency domain data % % See also QIFFT, QCONDITION, and QSCANCONDITION. % Shourov K. Chatterji % shourov@ligo.mit.edu % $Id: qfft.m,v 1.1 2006/10/05 17:00:14 shourov Exp $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % process command line arguments % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % check for sufficient command line arguments error(nargchk(1, 1, nargin)); % force cell array of data if ~iscell(data), data = mat2cell(data, size(data, 1), size(data, 2)); end % force one dimensional cell array data = data(:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % validate command line arguments % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % determine number of channels numberOfChannels = length(data); % force row vectors for channelNumber = 1 : numberOfChannels, data{channelNumber} = data{channelNumber}(:).'; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % fast fourier transform % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % inverse fourier transform for channelNumber = 1 : numberOfChannels, data{channelNumber} = fft(data{channelNumber}); data{channelNumber} = ... data{channelNumber}(1 : length(data{channelNumber}) / 2 + 1); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % return % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % return to calling function return;