www.gusucode.com > MATLAB2008应用程序接口编程技术源码程序 > MATLAB2008应用程序接口编程技术源码程序/code/第6章/6.5/computefft.m
%%%computefft.m function [fftdata,freq,powerspect] = computefft(data,interval) if(isempty(data)) fftdata = []; freq = []; powerspect = []; return; end if(interval <= 0) error('Sampling interval must be greater then zero'); return; end fftdata = fft(data); freq = (0:length(fftdata)-1)/(length(fftdata)*interval); powerspect = abs(fftdata)/(sqrt(length(fftdata))); %%%plotfft.m function [fftdata,freq,powerspect] = plotfft(data,interval) [fftdata,freq,powerspect] = computefft(data,interval); len = length(fftdata); if(len <= 0) return; end t = 0:interval:(len-1)*interval; subplot(2,1,1),plot(t,data); xlabel('Time');grid on title('Time domain signal'); subplot(2,1,2),plot(freq(1:len/2),powerspect(1:len/2)); xlabel('Frequency(Hz)');grid on title('Power spectral density');