From 0b2219f36c6a84f3585350e4e319685f9f4bab82 Mon Sep 17 00:00:00 2001 From: Thorsten Liebig Date: Tue, 25 May 2010 12:26:04 +0200 Subject: [PATCH] matlab: transform TD-field data to frequency domain --- matlab/GetField_TD2FD.m | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 matlab/GetField_TD2FD.m diff --git a/matlab/GetField_TD2FD.m b/matlab/GetField_TD2FD.m new file mode 100644 index 0000000..b0638cf --- /dev/null +++ b/matlab/GetField_TD2FD.m @@ -0,0 +1,33 @@ +function field_FD = GetField_TD2FD(field_TD, freq) +% function field_FD = GetField_TD2FD(field_TD, freq) +% +% transform time-domain field data into frequency domain +% +% example: +% freq = linspace(0,1e9,100); %target frequency vector +% field = ReadHDF5FieldData('tmp/Ht.h5'); +% field_FD = GetField_TD2FD(field, freq); +% +% See also ReadHDF5FieldData +% +% openEMS matlab interface +% ----------------------- +% author: Thorsten Liebig + +t = field_TD.time; + +field_FD.freq = freq; + +for nf = 1:numel(freq) + field_FD.values{nf} = 0; +end + +numTS = numel(field_TD.values); + +for n=1:numTS + for nf = 1:numel(freq) + f = freq(nf); + field_FD.values{nf} = field_FD.values{nf} + 2/numTS * field_TD.values{n}.*exp(-1i*2*pi*f*t(n)); + end +end +