Generating Fixed-Point C Code (Digital Filter Design Toolkit)

LabVIEW 2013 Digital Filter Design Toolkit Help

Edition Date: June 2013

Part Number: 371988F-01

»View Product Info

You usually program target digital signal processing (DSP) hardware using C code. To generate C code from the fixed-point filter model, use the C Code instance of the DFD FXP Code Generator VI. You can compile the generated code to run on a fixed-point DSP.

Note  C code can yield a less compact and less efficient implementation than a hand-written, assembly-coded implementation. If you need to improve the performance of a filter, you can translate the C code to assembly code manually.

The DFD FXP Code Generator VI produces three files, where filtername is the string you wire to the filter name input:

  • nidfdtyp.h contains the definitions of the data types in the C source files that the DFD FXP Code Generator VI generates. You might need to redefine the data types in this file if you want to compile the generated code to run on a 64-bit target.
  • filtername.h contains type definitions, global variable declarations, and function prototypes.
  • filtername.c contains the code that implements the filter, including the filter coefficients, information about the implementation structure and quantizer settings in the fixed-point model, and the following functions:
    • filtername_State filtername_CreateState() creates the memory space needed to store the internal states of the filter.
    • void filtername_DisposeState(filtername_State state) disposes of the memory space used to store the internal states of the filter.
    • void filtername_InitState(filtername_State state) initializes the internal states to zeroes. Call this function for the first block when processing a large data sequence that consists of multiple data blocks.
    • I16 filtername_Filtering(I16 sampleIn, filtername_State state) implements the fixed-point filter.
    • static I16 filtername_Coef[] contains the quantized coefficients of the fixed-point filter.

Refer to the LabVIEW C Code Generation VI in the labview\examples\Digital Filter Design\Fixed-Point Filters\Single-Rate directory for an example that demonstrates how to generate LabVIEW C code from a fixed-point filter.


Not Helpful