Illustrates how to generate HDL code for a Digital Up-Converter (DUC). A DUC is a digital circuit which converts a digital baseband signal to a passband signal. The input baseband signal is
Design and implement hardware efficient Sample Rate Converters for an arbitrary factor using polynomial-based (Farrow) structures. Sample Rate Conversion (SRC) between arbitrary
Illustrates how to generate HDL code for a 5th order Butterworth filter. The cutoff-frequency for this filter is very low relative to the sample rate, leading to a filter that is difficult to
Illustrates how to generate HDL code for a symmetrical FIR filter with fully parallel, fully serial, partly serial and cascade-serial architectures for a lowpass filter for an audio
Illustrates how to generate HDL code for an inverse sinc (sin x/x) peaking filter that adds preemphasis to compensate for the inherent sinc response of the digital-to-analog converter
Illustrates how to generate HDL code for an ITU-R BT.601 luma filter with 8-bit input data and 10-bit output data. This filter is a low-pass filter with a -3 dB point of 3.2 MHz with a 13.5 MHz
Illustrates how to generate HDL code for a fractional delay (Farrow) filter for timing recovery in a digital modem. A Farrow filter structure provides variable fractional delay for the
Illustrates how to generate HDL code for a minimum phase FIRT filter with 10-bit input data. This is a bandpass filter with sample rate of 96 kHz and passband from approximately 19 kHz to 29 kHz.
Illustrates how to generate HDL code for bank of 24 first-order shelving filters that implement an audio tone control with 1 dB steps from -6 dB to +6 dB for bass and treble.
Illustrates how to generate HDL code for a lowpass FIR filter with Distributed Arithmetic (DA) architecture.
Illustrates how to generate HDL code for an FIR filter with a processor interface for loading coefficients. The filter can be programmed to any desired response by loading the coefficients
Compute square root using a CORDIC kernel algorithm in MATLAB®. CORDIC-based algorithms are critical to many embedded applications, including motor controls, navigation, signal
Use the CORDIC algorithm, polynomial approximation, and lookup table approaches to calculate the fixed-point, four quadrant inverse tangent. These implementations are approximations
Convert a textbook version of the Fast Fourier Transform (FFT) algorithm into fixed-point MATLAB® code.
Use both CORDIC-based and lookup table-based algorithms provided by the Fixed-Point Designer™ to approximate the MATLAB® sine (SIN) and cosine (COS) functions. Efficient fixed-point
Accelerate fixed-point algorithms using fiaccel function. You generate a MEX function from MATLAB® code, run the generated MEX function, and compare the execution speed with MATLAB code
Convert a finite impulse-response (FIR) filter to fixed point by separating the fixed-point type specification from the algorithm code.
Define unsigned and signed two's complement integer and fixed-point numbers.
Write MATLAB® code that works for both floating-point and fixed-point data types. The algorithm used in this example is the QR factorization implemented via CORDIC (Coordinate Rotation
Compute sine and cosine using a CORDIC rotation kernel in MATLAB®. CORDIC-based algorithms are critical to many embedded applications, including motor controls, navigation, signal
Implement fixed-point square root using a lookup table. Lookup tables generate efficient code for embedded devices.
Convert Cartesian to polar coordinates using a CORDIC vectoring kernel algorithm in MATLAB®. CORDIC-based algorithms are critical to many embedded applications, including motor
Analyze a fixed-point state-space system to detect limit cycles.
Implement fixed-point log2 using a lookup table. Lookup tables generate efficient code for embedded devices.
Compute and compare the statistics of the signal quantization error when using various rounding methods.
Set fixed-point data types by instrumenting MATLAB® code for min/max logging and using the tools to propose data types.
Demonstrates code generation for an image classification application that uses deep learning. It uses the codegen command to generate a MEX function that runs prediction using popular
Demonstrates code generation for pedestrian detection application that uses deep learning. Pedestrian detection is a key problem in computer vision, with several applications in the
Generate CUDA® code from a deep learning network, which is represented by a SeriesNetwork object. The SeriesNetwork in this example is a convolutional neural network that can detect and
Demonstrates how to generate CUDA® MEX code for a traffic sign detection and recognition application, that uses deep learning. Traffic sign detection and recognition is an important
Generate CUDA® code from a SeriesNetwork object created for YOLO architecture trained for classifying the PASCAL dataset. YOLO is an object detection network that can classify objects in
Demonstrates code generation for a logo classification application that uses deep learning. It uses the codegen command to generate a MEX function that runs prediction on a SeriesNetwork
Generate a MEX function from a MATLAB function that computes the stereo disparity of two images.
Generate CUDA® MEX from MATLAB® code and perform feature matching between two images. This example uses the matchFeatures function from the Image Processing Toolbox™ to match the feature
Object Recognition using Speeded-Up Robust Features (SURF) is composed of three steps - feature extraction, feature description, and feature matching. This example performs feature
Demonstrates the use of image processing functions for GPU Code generation. The example takes a foggy image as input and produces a defogged image. This is a typical implementation of fog
Generate CUDA® kernels for stencil type operations by implementing John H. Conway's "Game of Life".
Demonstrates how to use GPU Coder™ to leverage the CUDA® Fast Fourier Transform library (cuFFT) and compute two-dimensional FFT on a NVIDIA® GPU. The two-dimensional Fourier transform is
Looks at how we can benchmark the solving of a linear system by generating GPU code. The MATLAB® code to solve for x in A*x = b is very simple. Most frequently, we use matrix left division, also
Generate CUDA® code from a simple MATLAB® function by using GPU Coder™. A Mandelbrot set implementation by using standard MATLAB commands acts as the entry-point function. This example
Integrate GPU Coder™ into Simulink®. While GPU Coder is not supported for Simulink blocks, you can still leverage GPUs in Simulink by generating a dynamic linked library (dll) using GPU
Generate CUDA® code from a SeriesNetwork object and target the NVIDIA's TX2 board with an external camera. This example uses the AlexNet deep learning network to classify images from a USB
Generate HDL code from a MATLAB® design that does image enhancement using histogram equalization.
Use the HDL Coder™ to generate a custom HDL IP core which blinks LEDs on the Arrow® SoCKit® evaluation kit, and shows how to use Embedded Coder® to generate C code that runs on the ARM® processor
HDL code generation from a floating-point MATLAB® design that is not ready for code generation in two steps. First we use float2fixed conversion process to generate a lookup table based
Generate HDL code from a MATLAB® design that implements an LMS filter. It also shows how to design a testbench that implements noise cancellation using this filter.
Use MATLAB® HDL Workflow Advisor to generate a custom HDL IP core which blinks LEDs on FPGA board. The generated IP core can be used on Xilinx® Zynq® platform, or on any Xilinx FPGA with
Generate HDL code from a MATLAB® design implementing the adaptive median filter algorithm suited for HDL code generation.
Generate HDL code from MATLAB® design implementing an bisection algorithm to calculate the square root of a number in fixed point notation.
Use the HDL Coder™ to generate a custom HDL IP core which blinks LEDs on the Xilinx® Zynq® ZC702 evaluation kit, and shows how to use Embedded Coder® to generate C code that runs on the ARM®
Generate HDL code from a MATLAB® design implementing a RGB2YUV conversion.
Work with MATLAB® HDL Coder™ projects to generate HDL from MATLAB designs.
Perform a design-level area optimization in HDL Coder by converting constant multipliers into shifts and adds using canonical signed digit (CSD) techniques.
Generate modular HDL code from MATLAB® code containing functions.
Generate a MATLAB Function block from a MATLAB® design for system simulation, code generation, and FPGA programming in Simulink®.
Generate HDL code from MATLAB® code modeling transfer data between transmit and receive FIFO.
Debug a Zynq design using HDL Coder™ and Embedded Coder® features.
Generate HDL code from a MATLAB® design that adjusts image contrast by linearly scaling pixel values.
Start with a floating-point design in MATLAB, iteratively converge on an efficient fixed-point design in MATLAB, and verify the numerical accuracy of the generated fixed-point design.
Define and register a custom board and reference design in the HDL Coder™ SoC workflow. Using this example, you will be able to register the Digilent® Zybo Zynq™ development board and a custom
Generate HDL code from a MATLAB® design that implements a high dynamic range imaging algorithm.
Check, generate and verify HDL code from MATLAB® code that instantiates a non-restoring square root system object.
MATLAB code generation from a floating-point MATLAB® design that is not ready for code generation. We use 'coder.approximate' function to generate a lookup table based MATLAB function.
HDL code generation from a fixed-point MATLAB® design that is ready for code generation.
Generate a standalone C library from MATLAB code that implements a simple Sobel filter that performs edge detection on images. The example also shows how to generate and test a MEX function in
The recommended workflow for generating C code from a MATLAB function using the 'codegen' command. These are the steps: 1. Add the %#codegen directive to the MATLAB function to indicate that
Generate C code for a MATLAB Kalman filter function,'kalmanfilter', which estimates the position of a moving object based on past noisy measurements. It also shows how to generate a MEX
Generate a standalone C library from MATLAB code that reads a file from disk using the standard C functions fopen/fread/fclose. To call these C functions, the MATLAB code uses the
Generate a MEX function from a simple MATLAB function using the 'codegen' command. You can use 'codegen' to check that your MATLAB code is suitable for code generation and, in many cases, to
Generate a MEX function and C source code from MATLAB code that performs portfolio optimization using the Black Litterman approach.
These examples are using Einstein's General Relativity to calculate geodesics in curved space-time.
Use code replacement libraries to replace operators and functions in the generated code. The MATLAB code described illustrates the replacement capabilities. With each example MATLAB
Accelerate the execution of a MATLAB algorithm that uses MATLAB classes. The classes create a reverberation effect, that is, the "echo" you hear in a large empty room.
Write a MATLAB function that uses structure arrays so that it is suitable for code generation. For code generation, you must first create a scalar template version of the structure before
Generate a standalone C library from MATLAB code that applies a simple histogram equalization function to images to improve image contrast. The example uses parfor to process each of the
Generate code for a MATLAB algorithm that runs a simulation of bouncing "atoms" and returns the result after a number of iterations. There are no upper bounds on the number of atoms that the
Generate a MEX function from a MATLAB function, 'compute_average', that uses persistent variables. It illustrates that you must clear the state of persistent variables before using the
Accelerate MATLAB algorithm execution using a generated MEX function. It uses the 'codegen' command to generate a MEX function for a complicated application that uses multiple MATLAB
Register and use a toolchain to compile an executable. This example uses Intel® Compiler, but the concepts and API shown below can be used for any toolchain. The registered toolchain can be
Develop and use code replacement library entries for target-specific function implementations that require data to be aligned to optimize application performance. To configure data
Control whether structure arguments to generated entry-point functions are passed by reference or by value.
Generate code for a function that uses enumerated types. In this example, the enumerated types inherit from base type int32. The base type can be int8, uint8, int16, uint16, or int32.
Name the C structure type to use in code generated for a global structure.
Test the output of generated code by using MATLAB® unit tests with MATLAB® Coder™.
Test external C code by using MATLAB® unit tests with MATLAB® Coder™.
Use the ConstantInputs parameter to control whether a MEX function checks the value of a constant input argument.