Welcome Guest, you are in: Login

EventIDE Wiki



Search the wiki



Element Icon PSD Analyzer
Category: Signal Processing AddIn: Signal Processing
Creator: OkazoLab Scope: Parent event
Owns Snippets: None Usage: Snippets


NameDescription                              ConstraintsTypeOn
Signal Source
Selected Signal        Defines the signal for processing by the element. The signals are provided by the data acquisition elements.                Int32         
Sampling Rate        Defines the sampling rate of the original signal, in Hz                Double         
FFT Settings
Analysis Window Size        Defines the size (in samples) of the moving window for processing in this element.                Int32         
Range Of Interest        Defines the 'range of interest' across all signal frequencies for analysis, such that the dominant frequency is searched within the range only. The range also restrains X-bounds on the generated plot.                clRange         
Bin Size        Defines the bin size for the frequency dimension in statistics and plotting                Double         
Power Normalization        Defines the normalization procedure applied to for estimated power values                enPowe..         
Fourier Options        Defines the computation options for the FFT                Fourie..         
Runtime Status
Is Running        Defines whether online processing and plotting is going on. You can turn off them at any runtime moment for a sake of performance.                Boolean         
Dominant ROI Frequency        Returns the dominant FFT frequency in the signal power spectrum within the range of interest, in Hz                Double         
Dominant ROI Power        Returns the power of the dominant FFT frequency in the signal power spectrum within the range of interest, in Hz                Double         
Dominant Binned Power        Returns the power of the dominant binned frequency in the signal power spectrum within the range of interest, in Hz                Double         
ROI Bin Powers        Returns a double array containing freq. powers (grouped in bins) from the range of interest                Double..         
XAML PSD Plot        Returns a live XAML control that can be used for direct binding to the Content property of the XAML ContentControl element, e.g. ContentControl with a generated staircase plot can be added to the status screen or to the XAML Layout element.                UIElem..         
Frequency Spectrum        Returns an double array of the instant frequency spectrum estimated by FFT. The length of the array is equal to the size of the analysis window. The spectrum is updated every Control Loop cycle of the parent event, if new signal samples are available.                Double..         
PSD Plot Type        Defines the type of the PSD plot. The heatmap plot can be slower in rendering but it allows a signal overview over time                enPSDP..         
Plot Title        Defines the title of the generated plot                String         
Plot Theme        Defines a visual theme of the generated plot                Int32         
Bar Color        Defines the color of power bars on the generated plot                stColor         
Bar Width        Defines the relative width of the bars on on the generated plot.                Int32         
Rendering Size        Defines the size of the generated plot in pixels. The plot is automatically stretched on rendering, but a larger rendering size improves the chart quality with some cost in performance. The rendering size is also used as the resulting image resolution, when the chart is saved into a file.                clSize         
Font Size        Defines the font size for plot labels                Double         
Show Axis Bands        Defines whether the axis bands are shown on the plot area                Boolean         
Is Enabled        If set to false the element is completely omitted when the experiment is run                Boolean         
Title        Title of the element                String         

PSD Analyzer Element performs real-time the power spectrum density (PSD) analysis of an arbitrary signal.


The signal acquisition elements, e.g. OpenViBE Signal, communicate with recording hardware and buffer incoming data samples at the background of the experiment. If you want to obtain the instant frequency characteristics of a signal, you can use PSD Analyzer. The element operates on a single signal by estimating its power spectrum with the FFT. The estimation is run cyclically in the control loop of the parent event, within a analysis window that embraces the selected number of recent samples. The results include the descriptive statistics over a subset of the signal window: dominant frequency and its power. Other statistics can be done manually, hence the element delivers the FFT output as an array of double numbers. When power spectrum monitoring is required, the element generates a live power/frequency plot, which can be placed on the Status Screen (see the snapshot below).


Status Screen with the PSD plot, frequency statistics  and selected powers

Status Screen with the PSD plot, frequency statistics
and selected powers

Practical Use

Preparing the element for analysis

  1. Make sure that your experiment contains one of the data acquisition elements, e.g. OpenViBE Signal element
  2. Prepare the data acquisition element, such that it is set to collect at least one signal.
  3. Add new PSD Analyzer element to the event, where you plan to process the signal (the element operates only within the parent event).
  4. Select the added element to browse its properties in the Property panel.
  5. Define a signal for processing, via the Selected Signal property.
  6. Adjust the Sampling Rate property such that the value matches to the real sampling rate of the selected signal.
  7. Choose the size of the analysis window via the corresponding property.
  8. Select the Range Of Interest for statistics and plotting.
  9. Define the bin size for the frequency dimension in statistics and plotting.
  10. Choose the Power Normalization procedure (the default is normalization for the total signal maximum).

Creating the signal plot

  1. Create a proxy variable linked to the XAML PSD Plot property
  2. Check the plot's visualization settings in the Plot Settings group
  3. Add a XAML content control with data binding to the Status Screen code:
    <ContentControl Content='{Binding XAMLPSDPlot}'/>

Reading the FFT results in code

  1. Create a proxy variable linked to the Frequency Spectrum property
  2. Use the Control Loop snippet of the parent event to monitor all signal updates
  3. Create a loop to read all signal samples:
    // estimating the spectrum sum
    double Sum=0;
    for (int i=0;i,FrequencySpectrum.Length;i++)


  • The Frequency Spectrum values are raw, so you may need to make a conversion to Hz based on the size of analysis window and sampling rate. In contrast, element's statistics and plot automatically scale the FFT results to Hz.
  • The dominant frequency and power are searched only inside of the chosen range of interest.
  • The frequency spectrum is returned for the entire analysis window, irrelative to the chosen range of interest.
  • You can measure a time of one cycle of signal processing with the Control Loop Interval property on the parent event. With plotting on and off, the expected time for a 1000 sample window is ~10 and ~5 ms, correspondingly, given that there are no other processes in the parent event and in the experiment.
  • If you are in time-critical section of your experiment, you can temporally cease the signal processing by setting the Is Running property to false.
  Name Size
- PSD-Analyzer-Element-Icon.png 3.70 KB
- psdicon.png 3.85 KB
- PSDPlot-sm.png 16.94 KB
- PSDPlot.png 18.85 KB

ScrewTurn Wiki version Some of the icons created by FamFamFam.