Signal Processing Code Generation

Signal processing code generation converts algorithms from models to embedded code much faster and easier than with hand coding alone, allowing companies to reduce GPS development time and cost by 40%, port to ARM devices in days instead of months, and deploy an optical sensor to a TI DSP with bit-accurate results.

With MATLAB® and Simulink® rapidly increasing their support for signal processing design, MathWorks has powerful solutions that span the full development cycle of system design, embedded code generation, code verification and profiling.

Explore Products for Embedded Code Generation

System Design

MATLAB, DSP System Toolbox™, Computer Vision Toolbox™, and Communications Toolbox™ are well suited for developing audio, video, and communications processing algorithms for signal processing design. MATLAB Coder™ enables C code generation directly from MATLAB and system toolboxes. Fixed-point data can be included in MATLAB algorithms and in the generated code using Fixed-Point Designer™.

Simulink, Stateflow®, and system toolboxes are well suited for developing audio, video, and communications processing systems using executable specifications. They accelerate design, clearly express the intended behavior of the system, and enable early verification and validation. Key system design features they support include algorithm and environment development, C code generation, bit-true simulation with dedicated functions and block libraries for signal processing applications, and automated floating-point to fixed-point data conversion using Fixed-Point Designer.

Signal Processing Code Generation and Integration

Embedded Coder® generates embedded code from design models. The code can be used for rapid prototyping or embedded code deployment. With on-target rapid prototyping, you prototype algorithms on the existing (or emulated) production processers, saving hardware cost while improving execution fidelity. With embedded code generation, ANSI/ISO C or C++ is generated by default for any device, however, code is easily optimized for specific DSPs or MCUs using flexible APIs. Integrating hand-written code during simulation or code generation is supported using the legacy code tool, preserving your software investment and enabling incremental adoption of code generation technology. Optional support for Analog Devices™, TI, and NXP™ processors is available using Embedded Coder.

Signal Processing Code Verification and Profiling

Processor-in-the-loop (PIL) testing and execution profiling form the cornerstone of signal processing code verification by automating execution result comparison with the algorithm reference model behavior. Generated code can be compiled as a library for integrating into a parent embedded project. PIL testing and profiling for measuring task and function performance along with processor-specific archived library creation is available for Analog Devices, TI, and Green Hills® IDEs using Embedded Coder. You can author, execute, review, and organize tests and test suites using Simulink Test™. You can calculate structural coverage of the generated code using Simulink Coverage™ to measure testing completeness. Extensible PIL APIs are available for creating your own custom test environment.

Support for HDL code generation for FPGAs and ASICs is available using HDL Coder™.