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, 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. This example plays back and graphically displays an audio spectrum frame by frame.
For developing efficient, readable stream processing programs in MATLAB, System objects:
Figure 3. System objects included in several system toolboxes.
See also: MATLAB, DSP System Toolbox, MATLAB GPU computing, radar system design, Wireless Communications, logic analyzer, parametric equalizer, spectrum analyzer software, audio signal processing, oscilloscope software