## Documentation Center |

Zero-pole-gain complex bandpass frequency transformation

`[Z2,P2,K2,AllpassNum,AllpassDen]
= zpkrateup(Z,P,K,N)`

`[Z2,P2,K2,AllpassNum,AllpassDen]
= zpkrateup(Z,P,K,N)` returns zeros, `Z`_{2},
poles, `P`_{2}, and gain factor, `K`_{2},
of the target filter being transformed from any prototype by applying
an `N`th-order rateup frequency transformation, where `N` is
the upsample ratio. Transformation creates `N` equal
replicas of the prototype filter frequency response.

It also returns the numerator, `AllpassNum`,
and the denominator, `AllpassDen`, of the allpass
mapping filter. The original lowpass filter is given with zeros, `Z`,
poles, `P`, and gain factor, `K`.

Relative positions of other features of an original filter do
not change in the target filter. This means that it is possible to
select two features of an original filter, F_{1} and
F_{2}, with F_{1} preceding
F_{2}. Feature F_{1} will
still precede F_{2} after the transformation.
However, the distance between F_{1} and F_{2} will
not be the same before and after the transformation.

Design a prototype real IIR halfband filter using a standard elliptic approach:

[b, a] = ellip(3,0.1,30,0.409); z = roots(b); p = roots(a); k = b(1); % Upsample the prototype filter 4 times [z2,p2,k2] = zpkrateup(z, p, k, 4); % Compare prototype filter with target filter fvtool(b, a, k2*poly(z2), poly(p2));

Variable | Description |
---|---|

Z | Zeros of the prototype lowpass filter |

P | Poles of the prototype lowpass filter |

K | Gain factor of the prototype lowpass filter |

N | Integer upsampling ratio |

Z2 | Zeros of the target filter |

P2 | Poles of the target filter |

K2 | Gain factor of the target filter |

AllpassNum | Numerator of the mapping filter |

AllpassDen | Denominator of the mapping filter |

Frequencies must be normalized to be between -1 and 1, with 1 corresponding to half the sample rate.

Was this topic helpful?