diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2016-07-05 18:02:38 +0200 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2016-07-05 18:02:38 +0200 |
commit | ef962f6008f25ab7cbd4ca21bcc72b97a1e2d76f (patch) | |
tree | 8149bee93d1a3f91d4503bfb3853adac4af0a85e /openEMS/matlab/FFT_time2freq.m |
Imported Upstream version 0.0.34
Diffstat (limited to 'openEMS/matlab/FFT_time2freq.m')
-rw-r--r-- | openEMS/matlab/FFT_time2freq.m | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/openEMS/matlab/FFT_time2freq.m b/openEMS/matlab/FFT_time2freq.m new file mode 100644 index 0000000..a82c435 --- /dev/null +++ b/openEMS/matlab/FFT_time2freq.m @@ -0,0 +1,18 @@ +function [f,val] = FFT_time2freq( t, val ) +% [f,val] = FFT_time2freq( t, val ) +% +% Note: This function can only be used for pulse signals +% +% See also DFT_time2freq + +dt=t(2)-t(1); % timestep +L=numel(val); % signal length +NFFT = 2^nextpow2(L); % next power of 2 (makes fft fast) +%very fine freq resolution... NFFT = NFFT+100000; +val = fft( val, NFFT)*dt; +f = 1/(2*dt) * linspace(0,1,NFFT/2+1); + +val = 2*val(1:NFFT/2+1); % single-sided spectrum + +%correct phase for time-shifted signals +val = val .* exp(-1j*2*pi*f * t(1)); |