view >

Cambridge Pixel's
SPx Software Library

view >

Radar Interface Cards

New HPx-200e

SPx Signal Processing

SPx Radar Software

SPx provides a set of easy-to-use software components that implement radar processing functions. These components may be freely combined into a processing sequence that may also include custom processing components that you can develop.

Process Network

Radar video may be acquired from a network source, hardware interface or from the SPx test or scenario generators. After that, the SPx Processing modules can be invoked to manipulate the video prior to display, recording or further custom processing.

Each video processing module has a number of parameters which may be adjusted at run-time through the interface software. The management of data flows from one module to another is the responsibility of the SPx frame work. The software is designed to work with multi-core processing, allowing parallel processing of operations using multiple software threads.

The modules may be interconnected in any number of ways to create processing sequences. Parameters of the modules may be adjusted at run-time and modules may be enabled or disabled as needed.

SPx Processing Library

Modules currently available in the SPx library include:

Thresholding Video is thresholded by comparing each sample with a fixed or dynamically calculated threshold level. In dynamic thresholding the signal level is analysed around the sample and a threshold value is calculated.
Low-pass filter A low pass filter removes high-frequency effects using a filter of programmable cut-off frequency. This may be used in conjunction with a high-pass filter to select (or reject) signal information in a specific frequency band.
Sensitivity Time Control (STC) The STC filter provides a time (equivalent to range) dependent gain function that can be used to eliminate near-range noise.
Fast Time Constant (FTC) filter The FTC filter provides a fast time constant (high-pass) filter that may be used to remove large areas of constant-level video, for example from weather effects.
Range Ring Insertion The range ring insertion process inserts range rings into the video. The spacing and width of the rings is programmable. Rings may be inserted at regular intervals or at user-defined intervals.
Azimuth sector blank A sector of video is blanked. A number of these processes may be cascaded to eliminate multiple sectors of video. The parameters of the process control the azimuth position and width of the sector.
Range blank Video is blanked from range zero through to a programmed interval and/or from a programmed range to the end of the radar coverage.
Polygon blanking This is a more general form of the sector/range blanking process, which allows one or more complex polygons to define an area for manipulation. The polygons could be used to eliminate a coastline, or video in runways for an aircraft ground-movement application.
Azimuth offset This process implements an azimuth offset on the incoming video to rotate it by a programmed amount. The process may be used to re-align radar video or rotate it to provide a heading-relative display.
Scan-to-scan integration This process allows multiple scans of video to be processed. Up to 64 scans of history data are considered along with the current video. The output is a programmable function of the history and new data.
Gain and offset adjustment Video may be manipulated with a general-purpose gain and offset adjustment programmed with a look-up table.
Contrast stretching A general look-up table may be programmed to provide a mapping from input values to desired outputs.
Static clutter removal and MTI A clutter map may be calculated by integration of input video with a programmable time-constant. The clutter map shows the correlation of video from scan-to-scan so that stationary clutter is emphasised. By removing the stationary clutter from the input video moving targets are emphasised.
Record to disk This process compresses video and stores it to a local disk. Video recorded to disk may be subsequently replayed by creating a Replay source object.
Network Distribution This process supports the compression and network (UDP/IP) distribution of radar video. A Radar Receiver object on the client side may be used to receive the radar video and provide input to another SPx object.
Plot Extraction The plot extraction process examines video to identify target-like shapes that pass a selection of location/size/intensity tests. The extracted plots may be displayed and manipulated directly, or else may be passed across to the SPx Target Tracker - see here for more information on the SPx Plot Extractor
Target Tracking The SPx Target Tracker is a full multi-hypothesis tracker that processes plot data (derived from the SPx plot extraction or another source) and automatically initiates and tracks targets. See here for more information on the SPx Target Tracker.

Combining Processes

A key feature of the SPx processing library is the ease with which processing blocks may be combined to form complex processing chains. Constructing a processing sequence is as easy as creating the objects as C++ instances and linking them together. Adding radar recording to an application, for example, involves creating the Record to File object and linking it the processing chain. The parameters of the object can then be manipulated to control the recording.

Whether you have an existing radar application that you want to upgrade or enhance, or you are developing something new, the SPx library allows you to use only what you need. If you have existing algorithms these can be incorporated into the SPx framework.

User Defined Processing

As well as using the built-in capabilities of the process library, you can create your own processes to use existing algorithms. SPx provides the framework and the interfaces, allowing you to provide the function that does the work. Once written as an SPx process, it may be used as part of a normal processing chain. User defined processes allow you to expand the scope of the SPx processing, adding additional value or developing customised capabilities.