Spurious free dynamic range

`r = sfdr(x)`

`r = sfdr(x,fs)`

`r = sfdr(x,fs,msd)`

`r = sfdr(sxx,f,'power')`

`r = sfdr(sxx,f,msd,'power')`

```
[r,spurpow,spurfreq]
= sfdr(___)
```

`sfdr(___)`

returns
the spurious free dynamic range (SFDR), `r`

= sfdr(`x`

)`r`

, in
dB of the real sinusoidal signal, `x`

. `sfdr`

computes
the power spectrum using a modified periodogram and a Kaiser window
with *β* = 38. The mean is subtracted from `x`

before
computing the power spectrum. The number of points used in the computation
of the discrete Fourier transform (DFT) is the same as the length
of the signal, `x`

.

returns
the SFDR considering only spurs that are separated from the fundamental
(carrier) frequency by the minimum spur distance, `r`

= sfdr(`x`

,`fs`

,`msd`

)`msd`

,
specified in cycles/unit time. The sample rate is `fs`

.
If the carrier frequency is `Fc`

, then all spurs
in the interval (`Fc-msd`

, `Fc+msd`

)
are ignored.

returns
the SFDR of the one-sided power spectrum of a real-valued signal, `r`

= sfdr(`sxx`

,`f`

,'power')`sxx`

. `f`

is
the vector of frequencies corresponding to the power estimates in `sxx`

.
The first element of `f`

must equal 0. The algorithm
removes all the power that decreases monotonically away from the DC
bin.

returns
the SFDR considering only spurs that are separated from the fundamental
(carrier) frequency by the minimum spur distance, `r`

= sfdr(`sxx`

,`f`

,`msd`

,'power')`msd`

.
If the carrier frequency is `Fc`

, then all spurs
in the interval (`Fc-msd`

, `Fc+msd`

)
are ignored. When the input to `sfdr`

is a power
spectrum, specifying `msd`

can prevent high sidelobe
levels from being identified as spurs.

`sfdr(___)`

with no output arguments
plots the spectrum of the signal in the current figure window. It
uses different colors to draw the fundamental component, the DC value,
and the rest of the spectrum. It shades the SFDR and displays its
value above the plot. It also labels the fundamental and the largest
spur.