Welcome Guest, you are in: Login

EventIDE Wiki

RSSRSS

Navigation




Search the wiki


PoweredBy

Page History: PSD Analyzer Element

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 2014/12/28 01:38


Element Icon PSD Analysis Element
Info
Category: Signal Analysis AddIn: Signal Processing
Creator: OkazoLab Team Scope: Parent Event
Owns Snippets: no Usage: Status Screen, code snippets

Actions aligned with epochs of the parent event

EpochActions
After experiment onsetThe element ...
Event rendered
Before event onset
After event onset
Control loop stepThe element ...
Before event offset
Before experiment offsetThe element ...

Properties

Generic Properties

NameProperty descriptionConstraintsTypeUpon change
Settings
namedescriptionattributes type String

+=== Properties inherited from clElement === Inherited properties of clElement
NameDescriptionConstraintsValue TypeUpon Change
Control
Is EnabledIf set to false the element is completely omitted when the experiment is run.Boolean
TitleTitle of the element.String



The element allows to perform a simple power spectrum (PSD) analysis on a real-time signal that is provided by the signal acquisition elements in EventIDE.


Description

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 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).

Snapshots

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 frequency 'range of interest' the statistics and plotting via Frequency Range property.
  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 OnlineChart}'/>


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++)
    {
    Sum=Sum+FrequencySpectrum[i];
    }


Notes



  • The dominant frequency and power are searched only inside of the chosen Frequency Range
  • The frequency spectrum is returned for the entire analysis window, irrelative to the chosen Frequency Range
  • 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 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.

ScrewTurn Wiki version 5.2.0.8. Some of the icons created by FamFamFam.