Version:

Last Modified: March 15, 2017

Computes the fast Hartley transform (FHT) of a sequence.

The input sequence and a valid power of 2.

This input accepts a double-precision, floating-point number or a 1D array of double-precision, floating-point numbers.

To properly compute the FHT of **x**, the number of elements, n, in the sequence must be a valid power of 2.

*n* = 2^{m}

If the number of elements in **x** is not a valid power of 2, the node sets **Hartley{x}** to an empty array and returns an error.

Length of each set of data. The node performs computation for each set of data.

**sample length** must be greater than zero.

This input is available only if you wire a double-precision, floating-point number to **x**.

**Default: **100

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

The Hartley transform of the input sequence.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

The Hartley transform of a function *x*(*t*) is defined by the following equation:

$X\left(f\right)={\int}_{-\infty}^{\infty}x\left(t\right)\mathrm{cas}\left(2\pi ft\right)dt$

where $\mathrm{cas}\left(x\right)=\mathrm{cos}\left(x\right)+\mathrm{sin}\left(x\right)$.

If *Y* represents the output sequence **Hartley{x}** of this node, then *Y* is obtained through the discrete implementation of the Hartley integral

${Y}_{k}=\underset{i=1}{\overset{n-1}{\sum}}{X}_{i}\mathrm{cas}\left(\frac{2\pi ik}{n}\right)$

for *k* = 1, 2, ..., *n*-1,

where *n* is the number of elements in **x**.

The Hartley transform maps real-valued sequences into real-valued frequency domain sequences. You can use it instead of the Fourier transform to convolve signals, deconvolve signals, correlate signals, and find the power spectrum. You also can derive the Fourier transform from the Hartley transform.

When the sequences to be processed are real-valued sequences, the Fourier transform produces complex-valued sequences in which half of the information is redundant. The advantage of using the Hartley transform instead of the Fourier transform is that the Hartley transform uses half the memory to produce the same information the FFT produces. Further, the FHT is calculated in place and is as efficient as the Fourier transform. The disadvantage of the FHT is that the size of the input sequence must be a valid power of 2.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: This product does not support FPGA devices