# Wave Generator (Arbitrary) (G Dataflow)

Version:

Generates an array containing an arbitrary wave.

## wave table

One cycle of the waveform used in creating the output arbitrary wave.

## reset phase

The initial phase of the arbitrary wave.

 True Sets the initial phase to phase in. False Uses the value of phase out from when this node last executed as the initial phase of arbitrary wave.

Default: False

## amplitude

Amplitude of the arbitrary wave.

Default: 1

## frequency

Frequency of the arbitrary wave in normalized units of cycles/sample.

Default: 0.0078125

## phase in

The initial phase, in degrees, of the arbitrary wave.

phase in is valid only when you set reset phase to True.

## interpolation

The type of interpolation this node uses to generate the arbitrary wave.

Name Value Description
None 0 No interpolation.
Linear 1 Linear interpolation.

Default: None

## error in

Error conditions that occur before this node runs. The node responds to this input according to standard error behavior.

Default: No error

## sample rate

Sample rate in samples per second.

Default: 1

## samples

Number of samples in the arbitrary wave..

samples must be greater than or equal to 0. If samples is less than zero, this node sets arbitrary wave to an empty array and returns an error.

Default: 128

## arbitrary wave

The output arbitrary wave.

## phase out

Phase of the signal in degrees.

## error out

Error information. The node produces this output according to standard error behavior.

## Algorithm for Generating an Arbitrary Wave

If the sequence Y represents arbitrary wave, this node generates the sequence according to the following equation:

${y}_{i}=a*\mathrm{arb}\left({\mathrm{phase}}_{i}\right)$

for i = 0, 1, 2, …, n - 1

where a is amplitude and n is samples.

This node calculates $\mathrm{arb}\left({\mathrm{phase}}_{i}\right)$ using the following equation:

$\mathrm{arb}\left({\mathrm{phase}}_{i}\right)=WT\left(\frac{\left({\mathrm{phase}}_{i}\mathrm{modulo}360\right)×m}{360}\right)$

where

• m is the size of wave table
• $WT\left(x\right)=\mathrm{wave}\text{\hspace{0.17em}}\mathrm{table}\left[\mathrm{int}\left(x\right)\right]$ if interpolation = 0 (no interpolation)
• WT(x) is the linearly interpolated value of $\mathrm{wave}\text{\hspace{0.17em}}\mathrm{table}\left[\mathrm{int}\left(x\right)\right]$ and $\mathrm{wave}\text{\hspace{0.17em}}\mathrm{table}\left[\left(\mathrm{int}\left(x\right)+1\right)\mathrm{modulo}\text{\hspace{0.17em}}m\right]$ if interpolation = 1 (linear interpolation)
• phasei = initial_phase + frequency
• initial_phase is phase in if reset phase is True
• initial_phase is the phase out from the previous execution of this instance of the node if reset phase is False

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported