02 Signal Basics
This chapter describes some basic principles of how signals are represented in impulse. These are not necessary for the use of impulse, but convey a better understanding.
This article is based on impulse 1.8.
Independent from its source and type, impulse organizes all signal data by using these elements:
- Record: The top-level element, usually the content of a file, or the resulting input of a port.
- Scope: An organisation element (like a folder) to group signals.
- Signal: An indexed sequence of signal samples (containing values of different type), organized along a domain base (e.g. time).
- Proxy: A signal that contains the identical content of a another signal, and therefore contains only a link to that signal (wave file often contains identical signals).
Represents a group of signals and scopes as a whole. Stands usually for a wave file (if you make the child elements of a wave file visible in the Project Explorer, you will find all its scopes and signals).
The possible child elements are:
- Scope (Can be a module, subsystem,...)
- Signal Proxies (references to other signals)
A Scope is a generic element used by the reader to organize the elements in a useful way, usually inspired by the wave file (module, subsystem, processes,..). Scopes do not have any other meaning.
The possible child elements are:
- Signal Proxy
SignalsA signal can contain up to 2^31 samples. Each sample can be of null value or non-null value of a given signal type.
impulse supports the following signal types:
- Logic (1..N bits — the bits are stored as 2-state, 4-state or 16-state data (usually nine states are used).
- Float (32-bit or 64-bit), Float arrays
- Integer (any length), Integer arrays
- Event (Enumeration), Event arrays
- Text (any length), Text arrays
- Structure (unlimited properties per structure: Text/Binary/Integer/Float/Enumeration)
- Transaction Event (a group of structures — a transaction can consist of multiple events)
- Binary (can contain images,… )
Signals may be discrete or continuous. Discrete means that each sample can be at any position of the given domain base with the restriction:
position(sample(idx)) <= position(sample()idx+1)
Continuous signal have a start, end and rate indicator. Therefor the position of each sample is definite. Discrete signal just have start and end indicators. Each sample contains the delta position to its predecessor.
The signal descriptor contains additional information about the signal.
- The content of the signal (e.g. that a binary signal contains images)
- The scale of the signal (array size or bits of a signal)
- The preferred format of textual representation (e.g hexadecimal)
The domain of a signal may be Time,Frequency,Index,... . The domain base represents the the minimum distance between two samples (e.g. ns or ps). The domain position is the product of the domain base and a 64 bit signed integer value.
The marker concept is a known feature of eclipse. impulse allows users to add markers (bookmarks, tasks and annotation) to any signal at any domain position. If you add a bookmark to a signal, you will find that bookmark in the bookmark view of eclipse. If you double-click on the bookmark in that view, eclipse will open the record that contains the bookmark and set the cursor to its position.
Associations and Labels
Markers are a concept for user annotations. Associations and Labels on the other side, are an integral part of the signal and are bound to its samples.
- Association: Adds a curve with textual information from a given sample to any other signal at a relative position.
- Label: Adds a text and symbol relative to given sample.
Proxies are used to share equal signal data between different logical or physical signals. They are links that give an existing signal a new name or an existence somewhere else within the record hierarchy.
impulse uses eclipse content management to identify a readable wave file (type of the file and selection of the reader). Name and extension are the criteria for the first selection. Second criteria are the first N bytes of the file.
impulse registers extensions for all readable wave files, makes them visible as such (the icon) and assigns impulse as the default editor.
For some formats (like tabular files) there is no common extension available. In this case, the user needs to register his extension within the content management (Eclipse Preferences).