Stream Processing

What Is Stream Processing?

Most real-time signal processing applications use stream processing, a memory-efficient technique for handling large amounts of data. Stream processing divides incoming data into frames and fully processes each frame before the next one arrives. Examples of applications that use stream processing include audio enhancement, wireless baseband processing, object tracking, and radar beamforming.

The just-in-time and memory-sensitive nature of stream processing presents special challenges. Streaming algorithms must be efficient and keep up with the rate of data updates. To handle large data sets, the algorithms must also manage memory and state information, store previous data buffers only as needed, and update each buffer and state frame-by-frame.

Figure 1. Stream processing in MATLAB.

Figure 1. Stream processing in MATLAB, including dividing the stream source into frames, and processing each frame in a loop with the efficient use of memory and computations.

Algorithm components called System objects simplify stream processing in MATLAB®. System objects provide a workflow for developing streaming algorithms and test benches for a range of streaming applications, which involve just a few lines of MATLAB code.

Figure 2. Example MATLAB code for a stream processing test bench, using System objects.

Figure 2. Example MATLAB code for a stream processing test bench, using System objects. This example plays back and graphically displays an audio spectrum frame by frame.

For developing efficient, readable stream processing programs in MATLAB, System objects:

  • Process frames and then overwrite past frames with incoming data
  • Initialize parameters only once as they are created
  • Manage buffer updates, state updates, and indexing automatically, which speeds algorithm development
  • Support MATLAB code generation and parallel computing workflows
System objects are included in five MATLAB products: Audio Toolbox™DSP System Toolbox™Communications Toolbox™Phased Array System Toolbox™, and  Computer Vision Toolbox™. You can also define your own System objects to create new streaming algorithms.

Examples and How To

General

Audio Toolbox

Communication System Toolbox

Computer Vision Toolbox

DSP System Toolbox

Phased Array System Toolbox


Software Reference

See also: MATLAB GPU computing, radar system design, wireless communications, logic analyzer, parametric equalizer, spectrum analyzer software, audio signal processing, oscilloscope software

Trials Available

Get trial software