Package Modelica.​Math.​FastFourierTransform.​Examples
Examples demonstrating the usage of the Math.FastFourierTransform functions

Information

This icon indicates a package that contains executable examples.

Extends from Modelica.​Icons.​ExamplesPackage (Icon for packages containing runnable examples).

Package Contents

NameDescription
RealFFT1Example demonstrating the use of an FFT calculation during simulation (and storing both amplitudes and phases on file)
RealFFT2Example demonstrating the use of an FFT calculation during simulation (and storing only amplitudes on file)

Model Modelica.​Math.​FastFourierTransform.​Examples.​RealFFT1
Example demonstrating the use of an FFT calculation during simulation (and storing both amplitudes and phases on file)

Information

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.

Extends from Modelica.​Icons.​Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
Frequencyf_max4Maximum frequency of interest
Frequencyf_resolution0.2Frequency resolution
Frequencyf12Frequency of sine
Frequencyf23Frequency of cosine
StringFFT_resultFileName"RealFFT1_resultFFT.mat"File where FFT will be stored as [f,A,Phi], with f in {Hz] and A the amplitudes and Phi the phases in [rad]
final Integernfimax(1, min(integer(ceil(f_max / f_resolution)) + 1, nf))Number of frequency points of the interested frequency range (only up to f_max)
Frequencyfi[nfi] FFT frequencies of interested frequency points

Model Modelica.​Math.​FastFourierTransform.​Examples.​RealFFT2
Example demonstrating the use of an FFT calculation during simulation (and storing only amplitudes on file)

Information

This is the same example as Examples.RealFFT1 with the only difference that just the amplitudes of the FFT are stored on file (but not the phases).

Extends from Modelica.​Icons.​Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
Frequencyf_max4Maximum frequency of interest
Frequencyf_resolution0.2Frequency resolution
Frequencyf12Frequency of sine
Frequencyf23Frequency of cosine
StringFFT_resultFileName"RealFFT2_resultFFT.mat"File where FFT will be stored as [f,A,Phi], with f in {Hz] and A the amplitues and Phi the phases in [rad]
final Integernfimax(1, min(integer(ceil(f_max / f_resolution)) + 1, nf))Number of frequency points of the interested frequency range (only up to f_max)
Frequencyfi[nfi] FFT frequencies of interested frequency points