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