DFiltInt
Routine
-
DFiltInt [options] [FiltFile]
Purpose
-
Design a minimum mean-square error FIR interpolating filter
Description
This routine designs an interpolating filter which minimizes the mean-square
interpolation error. The input to the interpolation process is a basic rate
sampled signal. The output of the interpolation process is an increased rate
sampled signal. The design of the interpolating filter is specified in terms
of the power spectrum of the underlying continuous-time signal. This power
spectrum is used to derive the auto-correlation functions for the sampled
signals. The auto-correlation determines the mean-square error between the
increased-rate signal and the samples of the underlying continuous-time
signal.
Conceptually, interpolation has two steps. In the first, the sampling rate
of the input sequence is increased by a factor of Ir, by inserting Ir-1 zeros
between each input sample. In the second step, the increased rate sequence
is applied to the interpolating filter to form the interpolated sequence.
The filter delay can be specified, but defaults to (Ncof-1)/2, i.e. the
middle of a filter with Ncof coefficients. If the delay corresponds to the
middle of the filter, the filter will be linear phase, i.e., the coefficients
will be symmetrical about the middle of the filter.
This program implements the method outlined by Oetken, Parks, and Schussler
for a general power spectrum specification.
-
Reference:
-
G. Oetken, T. W. Parks and H. W. Schussler, "New results in the design of
digital interpolators", IEEE Trans. ASSP, pp. 301-309, June 1975.
Parameters
This program reads options from the command line and from standard input.
At a minimum the command line must specify the interpolating ratio and the
number of coefficients. If the filter file name is not specified, the filter
coefficients are printed out.
-
-i IR, --interpolate=IR
-
Interpolation ratio.
-
-n NCOF, --number_coefficients=NCOF
-
Number of filter coefficients.
-
-d DELAY, --delay=DELAY
-
Filter delay. The default value is (NCOF-1)/2.
-
-s SFREQ, --srate=SFREQ
-
Sampling frequency for the sequence to be interpolated. The sampling
frequency for the interpolated sequence is this value multiplied by the
interpolating ratio. If the sampling frequency is not specified, a
normalized sampling frequency of one is used.
-
-h, --help
-
Print a list of options and exit.
-
-v, --version
-
Print the version number and exit.
The input power spectrum specifications are read from standard input.
Frequency, Value: freq value [psd | cos]
These records specify the power spectrum values. The one-sided power
spectrum of the input signal is specified in terms of a continuous component
and discrete (sinusoidal) components. The continuous component is given as
tabulated values of the power spectral density. Piecewise monotonic cubic
interpolation is used between the given values. The sinusoidal components of
the power spectrum are specified by frequency and power. Each input record
specifies either a power spectral density value or sinusoidal power value.
For a power spectral density, the first field is the frequency (positive
values), the second field is the value of the power spectral density, and the
third field is either blank or contains the identifying string "psd". The
continuous power spectrum must be specified with positive frequency values
which are in increasing order. The power spectral density is assumed to be
zero outside the given range of frequencies. For a sinusoidal component, the
first field is the frequency, the second field the power of the sinusoidal
component, and the third field contains the identifying string "cos".
-
Example, 23 tap linear phase interpolating filter:
The input spectrum is modelled by a power spectrum which is flat from dc
to 2400 Hz. The spectrum then decreases to become zero at 3200 Hz.
There is an additional dc component. The interpolating ratio is 4
(input 8000 Hz, output 32000 Hz). The coefficients are written to file
filtx4.cof.
% DFiltInt -i 4 -n 23 -s 8000 -f filtx4.cof
Input signal power spectrum:
Frequency, Value: 0 1000 cos
Frequency, Value: 0 1
Frequency, Value: 2400 1
Frequency, Value: 3200 0
Author / version
P. Kabal / v2r2 2001/10/15
See Also
DFiltFIR
Main Index FilterDesign