Home > Support > NI Product Manuals > LabVIEW Communications System Design Suite 1.0 Manual

Multirate Dataflow extends LabVIEW development by enabling you to implement multirate, streaming digital signal processing (DSP) algorithms more intuitively.

You can create and test algorithms on a computer or host using fast-simulating floating-point numeric data, easily convert those algorithms to fixed-point numeric representation, and set design constraints to use in implementation strategies on an FPGA. Multirate Dataflow enables you to iterate on your algorithm design more quickly before moving your algorithm to the FPGA.

You use Multirate Dataflow in LabVIEW by creating a Multirate diagram.

The Multirate diagram looks very similar to a VI diagram and shares many of the same features. However, the Multirate diagram behaves differently from the VI diagram. The following table shows some differences between G Dataflow and Multirate Dataflow.

Language Node Behavior per Execution Node Executions per Iteration
G Dataflow A node can consume and produce only a single data sample each time the node executes. Each node executes only once per iteration of the diagram unless you place the node in a loop to process sequential sets of data.
Multirate Dataflow A node can consume and produce multiple data samples each time the node executes. Each node automatically executes as many times as needed to process all the data samples streaming through the diagram without the need for loops. This behavior allows you to use the Multirate diagram to handle sample rate changes from node to node.

The following example illustrates the ability of the Multirate diagram to handle rate changes.

In the previous example, LabVIEW displays the number of data samples that each input terminal requires and the number of data samples that each output terminal returns. The Stream In 1 and Stream In 2 inputs receive streams of data from a source exterior to the Multirate diagram and send data samples to the Interleave Stream node one at a time. When Interleave Stream receives five samples from both Stream In 1 and Stream In 2, Interleave Stream executes and returns 10 samples. Because Stream Subset requires 30 samples, Interleave Stream must execute three times before Stream Subset can execute. This process continues as long as Stream In 1 and Stream In 2 continue to send data streams.