A System object™ is a specialized kind of MATLAB® object. System Toolboxes include System objects and most System Toolboxes also have MATLAB functions and Simulink® blocks. System objects are designed specifically for implementing and simulating dynamic systems with inputs that change over time. Many signal processing, communications, and controls systems are dynamic. In a dynamic system, the values of the output signals depend on both the instantaneous values of the input signals and on the past behavior of the system. System objects use internal states to store that past behavior, which is used in the next computational step. As a result, System objects are optimized for iterative computations that process large streams of data, such as video and audio processing systems.
For example, you could use System objects in a system that reads data from a file, filters that data and then writes the filtered output to another file. Typically, a specified amount of data is passed to the filter in each loop iteration. The file reader object uses a state to keep track of where in the file to begin the next data read. Likewise, the file writer object keeps tracks of where it last wrote data to the output file so that data is not overwritten. The filter object maintains its own internal states to assure that the filtering is performed correctly. This diagram represents a single loop of the system.
Many System objects support:
Fixed-point arithmetic (requires a Fixed-Point Designer™ license)
C code generation (requires a MATLAB Coder™ or Simulink Coder license)
HDL code generation (requires an HDL Coder™ license)
Executable files or shared libraries generation (requires a MATLAB Compiler™ license)
In addition to the System objects provided with System Toolboxes, you can also create your own System objects. See Define System Objects.