Upsample and filter input signals
DSP System Toolbox / Filtering / Multirate Filters
DSP System Toolbox HDL Support / Filtering
The FIR Interpolation block upsamples an input by the integer
upsampling factor L along the first dimension. The FIR interpolator
(as shown in the schematic) conceptually consists of an upsampler followed by an FIR
antiimaging filter, which is usually an approximation of an ideal bandlimited
interpolation filter. To design an FIR antiimaging filter, use the designMultirateFIR
function.
The upsampler upsamples each channel of the input to a higher rate by inserting L–1 zeros between samples. The FIR filter that follows filters each channel of the upsampled data. The resulting discretetime signal has a sample rate that is L times the original sample rate.
The actual block algorithm implements a directform FIR polyphase structure, an efficient equivalent of the combined system depicted in the diagram. For more details, see Algorithms.
You can use the FIR Interpolation block inside triggered subsystems when you set the
Rate options parameter to Enforce singlerate processing
.
Under specific conditions, this block also supports SIMD code generation. For more details, see Code Generation.
Data Types 

Direct Feedthrough 

Multidimensional Signals 

VariableSize Signals 

ZeroCrossing Detection 

The FIR interpolation filter is implemented efficiently using a polyphase structure.
To derive the polyphase structure, start with the transfer function of the FIR filter:
$$H(z)={b}_{0}+{b}_{1}{z}^{1}+\mathrm{...}+{b}_{N}{z}^{N}$$
N+1 is the length of the FIR filter.
You can rearrange this equation as follows:
$$H(z)=\begin{array}{c}\left({b}_{0}+{b}_{L}{z}^{L}+{b}_{2L}{z}^{2L}+\mathrm{..}+{b}_{NL+1}{z}^{(NL+1)}\right)+\\ {z}^{1}\left({b}_{1}+{b}_{L+1}{z}^{L}+{b}_{2L+1}{z}^{2L}+\mathrm{..}+{b}_{NL+2}{z}^{(NL+1)}\right)+\\ \begin{array}{c}\vdots \\ {z}^{(L1)}\left({b}_{L1}+{b}_{2L1}{z}^{L}+{b}_{3L1}{z}^{2L}+\mathrm{..}+{b}_{N}{z}^{(NL+1)}\right)\end{array}\end{array}$$
L is the number of polyphase components, and its value equals the interpolation factor that you specify.
You can write this equation as:
$$H(z)={E}_{0}({z}^{L})+{z}^{1}{E}_{1}({z}^{L})+\mathrm{...}+{z}^{(L1)}{E}_{L1}({z}^{L})$$
E_{0}(z^{L}), E_{1}(z^{L}), ..., E_{L1}(z^{L}) are polyphase components of the FIR filter H(z).
Conceptually, the FIR interpolation filter contains an upsampler followed by an FIR lowpass filter H(z).
Replace H(z) with its polyphase representation.
Here is the multirate noble identity for interpolation.
Applying the noble identity for interpolation moves the upsampling operation to after the filtering operation. This move enables you to filter the signal at a lower rate.
You can replace the upsampling operator, delay block, and adder with a commutator switch. The switch starts on the first branch 0 and moves in the counterclockwise direction, each time receiving one sample from each branch. The interpolator effectively outputs L samples for every one input sample it receives. Hence the sample rate at the output of the FIR interpolation filter is Lfs.
[1] Fliege, N. J. Multirate Digital Signal Processing: Multirate Systems, Filter Banks, Wavelets . West Sussex, England: John Wiley & Sons, 1994.
[2] Orfanidis, Sophocles J. Introduction to Signal Processing . Upper Saddle River, NJ: PrenticeHall, 1996.