Engee documentation

CIC Interpolation

Signal interpolation using a cascaded integral comb filter.

cic Interpolation

Description

Block CIC Interpolation performs an increase in the sampling frequency (interpolation) of the input signal by an integer factor. Cascaded integrator-comb FIR filters are a class of FIR filters with linear phase, consisting of cascaded comb filters and integrators.

Ports

Output

# OUT_1 — interpolated output signal
vector | matrix

Details

CIC filter interpolated output signal returned as a vector or matrix. The output data type is determined by the block parameter settings. Complexity of output data corresponds to the complexity of input data.

The number of output lines is equal to , where is the interpolation factor and is the number of input lines.

Data types

Int8 | Int16 | Int32 | Int64 | Fixed-point

Complex numbers support

Yes

Input

# IN_1 — input signal
vector | matrix

Details

An input signal given as a vector or matrix.

Data types

Int8 | Int16 | Int32 | Int64 | Fixed-point

Complex numbers support

Yes

Parameters

Main

# Coefficient source — filter information source
Dialog parameters

Details

The filter information source specified as:

  • Dialog parameters - input filter information in the block dialogue box via the parameters Interpolation factor (R), Differential delay (M) and Number of sections (N).

Values

Dialog parameters

Default value

Dialog parameters

Program usage name

CoefficientSource

Tunable

No

Evaluatable

No

# Interpolation factor (R) — interpolation factor
Real number

Details

The interpolation coefficient of a filter given as an integer greater than 1.

Default value

2

Program usage name

InterpolationFactor

Tunable

No

Evaluatable

Yes

# Differential delay (M) — differential delay
Real number

Details

Differential delay of the comb filter CIC filter, , specified as a positive integer.

Default value

1

Program usage name

DifferentialDelay

Tunable

No

Evaluatable

Yes

# Number of sections (N) — number of filter sections
Real number

Details

Specify the number of filter sections. The number specified specifies both the number of sections in the comb filter and the number of integrators, but not these values combined.

Default value

1

Program usage name

NumberOfSections

Tunable

No

Evaluatable

Yes

# Data type specification mode — method of specifying the word length and fractional length of fixed-point numbers for filter and input signal sections
Full precision

Details

A method of specifying word length and fractional part length of fixed point numbers for filter and/or output sections, said as:

  • Full precision - the word lengths and fractional lengths of the filter and output sections are automatically selected. The word lengths of the output and last section (WL) are set as:

where

  • - is the word length of the input signal;

  • - differential delay;

  • - number of sections;

  • - interpolation coefficient.

The word lengths of other sections are set taking into account bit growth as described in Hogenauer’s work. The lengths of all fractional parts are set equal to the length of the input fraction.

Values

Full precision

Default value

Full precision

Program usage name

SpecificationMode

Tunable

No

Evaluatable

No

# Input processing — input processing method
Columns as channels (frame based)

Details

The input data processing method specified as:

  • Columns as channels (frame based) - the block treats each column of the input signal as a separate channel. In this mode, the block always performs single-speed processing.

Values

Columns as channels (frame based)

Default value

Columns as channels (frame based)

Program usage name

InputProcessing

Tunable

No

Evaluatable

No

# Rate options — signal processing mode
Enforce single-rate processing

Details

The input signal processing mode specified as:

  • Enforce single-rate processing - the unit retains the sampling frequency of the input signal.

Values

Enforce single-rate processing

Default value

Enforce single-rate processing

Program usage name

RateOptionsFrameBased

Tunable

No

Evaluatable

No

Optional

*CIC filter

CIC-filters are an optimised class of linear phase FIR filters consisting of cascaded comb filters and integrators.

Conceptually, an interpolation CIC filter is an upsampling element followed by a CIC filter, , which is a low-pass reconstruction filter and performs filtering without changing the sampling rate. The interpolation CIC filter increases the sampling rate of the input signal by an integer factor using a cascaded integrator comb filter (CIC).

cic interpolation 1

In a more efficient implementation, the CIC filter operating without changing the sampling rate , is decomposed into multipliers in this way:

where

  • - transfer function of sections of a cascade of comb filters, each of which has a width of ;

  • - transfer function of the cascade of integrators;

  • - number of sections. The number of sections in a CIC filter is determined by both the number of sections in the comb filter and the number of integrators, but not these values combined. This value does not reflect the total number of sections in the entire filter;

  • - interpolation factor;

  • - differential delay.

In an algorithm that provides full multirate filtering, two remarkable identities for interpolation are considered, which allow the operation of changing the sampling rate R to be moved behind a cascade of N comb filters without distorting the result of the operation.

The transfer function of the resulting filter is given by the following equation:

For a block diagram showing the multirate implementation, see the section Algorithms.

Algorithms

*Interpolation CIC filter.

The interpolation CIC filter is implemented as a cascade of comb filters, followed by an element of upsampling the signal by a factor of R, and then a cascade of N integrators.

cic interpolation 2

This diagram shows a cascade of comb filters with two sections and a cascade of integrators with two sections. The unit delay in the CIC filter integrators can be located in either the forward or feedback circuit. These two configurations provide identical frequency characteristics of the filter. However, the actual numerical sequences at the output for these two configurations will be different due to the influence of the delay. In this algorithm, the unit delay is placed in the forward path of the integrator because this configuration is preferred for HDL implementation.

References

  1. Hogenauer, E.B.. "An Economical Class of Digital Filters for Decimation and Interpolation" IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 29, Number 2, 1981, pp. 155-162, 1981.

  2. Meyer-Baese, U. "Digital Signal Processing with Field Programmable Gate Arrays." New York: Springer Verlag, 2001.

  3. Harris, Fredric J., "Multirate Signal Processing for Communication Systems." Upper Saddle River, NJ: Prentice Hall PTR, 2004.

See also