CIC Interpolation
Signal interpolation using a cascaded integral comb filter.
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 |
|
Complex numbers support |
Yes |
Input
#
IN_1
—
input signal
vector
| matrix
Details
An input signal given as a vector or matrix.
Data types |
|
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 |
|
Default value |
|
Program usage name |
|
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 |
|
Program usage name |
|
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 |
|
Program usage name |
|
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 |
|
Program usage name |
|
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 |
|
Default value |
|
Program usage name |
|
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 |
|
Default value |
|
Program usage name |
|
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 |
|
Default value |
|
Program usage name |
|
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).
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.
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
-
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.
-
Meyer-Baese, U. "Digital Signal Processing with Field Programmable Gate Arrays." New York: Springer Verlag, 2001.
-
Harris, Fredric J., "Multirate Signal Processing for Communication Systems." Upper Saddle River, NJ: Prentice Hall PTR, 2004.