Compute scaled FFT
function fftScaled import Modelica.Utilities.Streams.print; input Real u_buf[:] "Signal for which FFT shall be computed; (size(u_buf,1) MUST be EVEN and should be an integer multiple of 2,3,5, that is size(u_buf,1) = 2^a*3^b*5^c, with a,b,c Integer >= 0)"; input Integer nf(min = 1) "Number of frequency points that shall be returned in amplitudes and phases (typically: nf = max(1,min(integer(ceil(f_max/f_resolution))+1,nf_max))); the maximal possible value is nf_Max=div(size(u_buf,1),2)+1)"; input Integer iTick "Number of sample points that have been stored in u_buf"; input Modelica.SIunits.Time Ts "Sample period of FFT"; input Boolean pre_periods_ok "Previous value of periods_ok"; input String instanceName = "???"; output Real A_buf[nf]; output Boolean periods_ok; end fftScaled;
Date | Description |
---|---|
Nov. 29, 2015 |
Initial version implemented by
Martin R. Kuhn and Martin Otter
(DLR Institute of System Dynamics and Control) The research leading to these results has received funding from the European Union’s Seventh Framework Programme (FP7/2007-2016) for the Clean Sky Joint Technology Initiative under grant agreement no. CSJU-GAM-SGO-2008-001. |