FILTUPDESIGN Function

Designs a filter to be used with FILTUP.

Usage

result = FILTUPDESIGN(m, l[, alpha])

Input Parameters

mβ€”(scalar) The interpolation factor. This should be the same value as that being passed into FILTUP.

lβ€”An integer used to determine the order of the filter. The filter order is given by n = 2lm.

alphaβ€”(optional) A scalar value used to scale the filter cutoff frequency. The normalized cutoff frequency is given by alpha divided by m. (Default: alpha = 1)

Returned Value

resultβ€”A filter structure to be used with FILTUP.

Keywords

None.

Discussion

FILTUPDESIGN generates an optimal linear phase interpolator filter. The filter generated has the property that every m-th point of the interpolated signal is equal to a corresponding point in the original sequence.

The filter design technique implemented in FILTUPDESIGN is based on a paper by Oetken, Parks, and Schussler, 1975.

Example

In this example, a signal is interpolated to get a signal four times the length of the original.

m = 4
nx = 100
freq = 0.9
; Create a signal.
x = SIN(!Pi*(freq)*FINDGEN(nx))
alpha = 1.0
; This will cause the resulting filter to be of order 32.
l = 4
; Create interpolation filter and interpolate and filter.
h = FILTUPDESIGN(m, l, alpha)
; To check interpolation filter, decimate interpolated, filtered
; data. Original data set is returned, to within a close epsilon.
result = FILTUP(h, x, m)
newx = FILTDOWN(result, m)
; Difference between interpolation filter data.
PRINT, TOTAL(ABS(newx - x))
; PV-WAVE prints: 2.5938099e-14

See Also

FILTUP

For Additional Information

Oetken, Parks, and Schussler, 1975.