# Buneman Frequency Estimator (G Dataflow)

Version:

Estimates the frequency of a given sine wave of unknown frequency using the Buneman algorithm.

## x

The sampled signal at consecutive times.

## error in

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

Default: No error

## beta

The frequency estimation of the sine wave that the sampled signal represents. This output is the index of the maximum frequency and a noninteger.

## error out

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

## Using the Buneman Algorithm to Calculate the Frequency

If an underlying time signal is not exactly periodic with period n, where n denotes the size of the data array, you can use the Buneman algorithm to calculate the unknown frequency 0 ≤ f0f1f2f3 < 0.5fs.

The following formula describes the Buneman algorithm:

$\beta =b+\frac{n}{\pi }a\mathrm{tan}\left(\frac{\left(\mathrm{sin}\frac{\pi }{n}\right)}{\mathrm{cos}\frac{\pi }{n}+\frac{|{F}_{b}\left(x\right)|}{|{F}_{b+1}\left(x\right)|}}\right)$

where b is the frequency and Fb is the value of the Fourier transform of the input signal X at b. You can determine the value of b using the greatest value of $|{F}_{b}\left(\text{X}\right)|$.

The formula for β is exact for pure sine waves and a good estimation in all other cases.

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported