| Filter Design Toolbox | ![]() |
www.kxcad.net Home > CAE Software Index > MATLAB Index >
| On this page… |
|---|
Selecting Features Subject to Transformation |
Converting existing FIR or IIR filter designs to a modified IIR form is often done using allpass frequency transformations. Although the resulting designs can be considerably more expensive in terms of dimensionality than the prototype (original) filter, their ease of use in fixed or variable applications is a big advantage.
The general idea of the frequency transformation is to take an existing prototype filter and produce another filter from it that retains some of the characteristics of the prototype, in the frequency domain. Transformation functions achieve this by replacing each delaying element of the prototype filter with an allpass filter carefully designed to have a prescribed phase characteristic for achieving the modifications requested by the designer.
The basic form of mapping commonly used is
![]()
The HA(z) is an Nth-order allpass mapping filter given by

where
Ho(z) — Transfer function of the prototype filter
HA(z) — Transfer function of the allpass mapping filter
HT(z) — Transfer function of the target filter
Let's look at a simple example of the transformation given by
![]()
The target filter has its poles and zeroes flipped across the origin of the real and imaginary axes. For the real filter prototype, it gives a mirror effect against 0.5, which means that lowpass Ho(z) gives rise to a real highpass HT(z). This is shown in the following figure for the prototype filter designed as a third-order halfband elliptic filter.
Example of a Simple Mirror Transformation

The choice of an allpass filter to provide the frequency mapping is necessary to provide the frequency translation of the prototype filter frequency response to the target filter by changing the frequency position of the features from the prototype filter without affecting the overall shape of the filter response.
The phase response of the mapping filter normalized to π can be interpreted as a translation function:
![]()
The graphical interpretation of the frequency transformation is shown in the figure below. The complex multiband transformation takes a real lowpass filter and converts it into a number of passbands around the unit circle.
Graphical Interpretation of the Mapping Process

Most of the frequency transformations are based on the second-order allpass mapping filter:
![]()
The two degrees of freedom provided by α1 and α2 choices are not fully used by the usual restrictive set of "flat-top" classical mappings like lowpass to bandpass. Instead, any two transfer function features can be migrated to (almost) any two other frequency locations if α1 and α2 are chosen so as to keep the poles of HA(z) strictly outside the unit circle (since HA(z) is substituted for z in the prototype transfer function). Moreover, as first pointed out by Constantinides, the selection of the outside sign influences whether the original feature at zero can be moved (the minus sign, a condition known as "DC mobility") or whether the Nyquist frequency can be migrated (the "Nyquist mobility" case arising when the leading sign is positive).
All the transformations forming the package are explained in the next sections of the tutorial. They are separated into those operating on real filters and those generating or working with complex filters. The choice of transformation ranges from standard Constantinides first and second-order ones [1][2] up to the real multiband filter by Mullis and Franchitti [3], and the complex multiband filter and real/complex multipoint ones by Krukowski, Cain and Kale [4].
Choosing the appropriate frequency transformation for achieving the required effect and the correct features of the prototype filter is very important and needs careful consideration. It is not advisable to use a first-order transformation for controlling more than one feature. The mapping filter will not give enough flexibility. It is also not good to use higher order transformation just to change the cutoff frequency of the lowpass filter. The increase of the filter order would be too big, without considering the additional replica of the prototype filter that may be created in undesired places.
Feature Selection for Real Lowpass to Bandpass Transformation

To illustrate the idea, the second-order real multipoint transformation was applied three times to the same elliptic halfband filter in order to make it into a bandpass filter. In each of the three cases, two different features of the prototype filter were selected in order to obtain a bandpass filter with passband ranging from 0.25 to 0.75. The position of the DC feature was not important, but it would be advantageous if it were in the middle between the edges of the passband in the target filter. In the first case the selected features were the left and the right band edges of the lowpass filter passband, in the second case they were the left band edge and the DC, in the third case they were DC and the right band edge.
Result of Choosing Different Features

The results of all three approaches are completely different. For each of them only the selected features were positioned precisely where they were required. In the first case the DC is moved toward the left passband edge just like all the other features close to the left edge being squeezed there. In the second case the right passband edge was pushed way out of the expected target as the precise position of DC was required. In the third case the left passband edge was pulled toward the DC in order to position it at the correct frequency. The conclusion is that if only the DC can be anywhere in the passband, the edges of the passband should have been selected for the transformation. For most of the cases requiring the positioning of passbands and stopbands, designers should always choose the position of the edges of the prototype filter in order to make sure that they get the edges of the target filter in the correct places. Frequency responses for the three cases considered are shown in the figure. The prototype filter was a third-order elliptic lowpass filter with cutoff frequency at 0.5.
The MATLAB code used to generate the figure is given here.
The prototype filter is a halfband elliptic, real, third-order lowpass filter:
[b, a] = ellip(3, 0.1, 30, 0.409);
In the example the requirements are set to create a real bandpass filter with passband edges at 0.1 and 0.3 out of the real lowpass filter having the cutoff frequency at 0.5. This is attempted in three different ways. In the first approach both edges of the passband are selected, in the second approach the left edge of the passband and the DC are chosen, while in the third approach the DC and the right edge of the passband are taken:
[num1,den1] = iirlp2xn(b, a, [-0.5, 0.5], [0.1, 0.3]); [num2,den2] = iirlp2xn(b, a, [-0.5, 0.0], [0.1, 0.2]); [num3,den3] = iirlp2xn(b, a, [ 0.0, 0.5], [0.2, 0.3]);
In general the frequency mapping converts the prototype filter, Ho(z), to the target filter, HT(z), using the NAth-order allpass filter, HA(z). The general form of the allpass mapping filter is given in . The frequency mapping is a mathematical operation that replaces each delayer of the prototype filter with an allpass filter. There are two ways of performing such mapping. The choice of the approach is dependent on how prototype and target filters are represented.
When the Nth-order prototype filter is given with pole-zero form

the mapping will replace each pole, pi, and each zero, zi, with a number of poles and zeros equal to the order of the allpass mapping filter:

The root finding needs to be used on the bracketed expressions in order to find the poles and zeros of the target filter.
When the prototype filter is described in the numerator-denominator form:

Then the mapping process will require a number of convolutions in order to calculate the numerator and denominator of the target filter:
![]()
For each coefficient αi and βi of the prototype filter the NAth-order polynomials must be convolved N times. Such approach may cause rounding errors for large prototype filters and/or high order mapping filters. In such a case the user should consider the alternative of doing the mapping using via poles and zeros.
Most frequency transformations are described by closed-form solutions or can be calculated from the set of linear equations.
They give predictable and familiar results.
Ripple heights from the prototype filter are preserved in the target filter.
They are architecturally appealing for variable and adaptive filters.
There are cases when using optimization methods to design the required filter gives better results.
High-order transformations increase the dimensionality of the target filter, which may give expensive final results.
Starting from fresh designs helps avoid locked-in compromises.
| Digital Frequency Transformations | Frequency Transformations for Real Filters | ![]() |
© 1984-2007 The MathWorks, Inc. Terms of Use Patents Trademarks Acknowledgments