WOLFRAM SYSTEMMODELER

RealFFT1

Example demonstrating the use of an FFT calculation during simulation (and storing both amplitudes and phases on file)

Wolfram Language

In[1]:=
SystemModel["Modelica.Math.FastFourierTransform.Examples.RealFFT1"]
Out[1]:=

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

In this example the signal y

   y = 5 + 3*sin(2*pi*f1) + 1.5*cos(2*pi*f2)

is sampled and an FFT is computed from the sampled signal (default: f1 = 2 Hz, f2 = 3 Hz). In the public part the FFT is stored up to f_max (internally in the protected part the FFT is stored up to 5*f_max). With the default values for f_max (= 4 Hz) and f_resolution (= 0.2 Hz), the following results are achieved:

   fi[0]  = 0,  Ai[0]  = 5;   // mean value of signal
   fi[11] = 2,  Ai[11] = 3;   // frequency/amplitude of sine
   fi[16] = 3,  Ai[16] = 1.5; // frequency/amplitude of cosine

A plot of the resulting FFT is shown in the next image:

Note, phases of small amplitudes (= smaller as 0.0001*maximalAmplitude) are explicitly set to zero, since the corresponding "phase" is numerical noise (and would just be confusing). Furthermore, note that the FFT phases are with respect to a cos(..) signal.

Parameters (7)

f_max

Value: 4

Type: Frequency (Hz)

Description: Maximum frequency of interest

f_resolution

Value: 0.2

Type: Frequency (Hz)

Description: Frequency resolution

f1

Value: 2

Type: Frequency (Hz)

Description: Frequency of sine

f2

Value: 3

Type: Frequency (Hz)

Description: Frequency of cosine

FFT_resultFileName

Value: "RealFFT1_resultFFT.mat"

Type: String

Description: File where FFT will be stored as [f,A,Phi], with f in {Hz] and A the amplitudes and Phi the phases in [rad]

nfi

Value: max(1, min(integer(ceil(f_max / f_resolution)) + 1, nf))

Type: Integer

Description: Number of frequency points of the interested frequency range (only up to f_max)

fi

Value:

Type: Frequency[nfi] (Hz)

Description: FFT frequencies of interested frequency points

Outputs (3)

Ai

Type: Real[nfi]

Description: FFT amplitudes of interested frequency points

Phii

Type: Real[nfi]

Description: FFT phases of interested frequency points

info

Type: Integer

Description: Information flag from FFT computation; = 0: FFT successfully computed