Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

Frequency Transformations for Real Filters

Overview

This section discusses real frequency transformations that take the real lowpass prototype filter and convert it into a different real target filter. The target filter has its frequency response modified in respect to the frequency response of the prototype filter according to the characteristic of the applied frequency transformation.

Real Frequency Shift

Real frequency shift transformation uses a second-order allpass mapping filter. It performs an exact mapping of one selected feature of the frequency response into its new location, additionally moving both the Nyquist and DC features. This effectively moves the whole response of the lowpass filter by the distance specified by the selection of the feature from the prototype filter and the target filter. As a real transformation, it works in a similar way for positive and negative frequencies.

with α given by

where

ωold — Frequency location of the selected feature in the prototype filter

ωnew — Position of the feature originally at ωold in the target filter

The following example shows how this transformation can be used to move the response of the prototype lowpass filter in either direction. Please note that because the target filter must also be real, the response of the target filter will inherently be disturbed at frequencies close to Nyquist and close to DC. Here is the MATLAB code for generating the example in the figure.

The prototype filter is a halfband elliptic, real, third-order lowpass filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example transformation moves the feature originally at 0.5 to 0.9:

[num,den] = iirshift(b, a, 0.5, 0.9);

Example of Real Frequency Shift Mapping

Real Lowpass to Real Lowpass

Real lowpass filter to real lowpass filter transformation uses a first-order allpass mapping filter. It performs an exact mapping of one feature of the frequency response into the new location keeping DC and Nyquist features fixed. As a real transformation, it works in a similar way for positive and negative frequencies. It is important to mention that using first-order mapping ensures that the order of the filter after the transformation is the same as it was originally.

with α given by

where

ωold — Frequency location of the selected feature in the prototype filter

ωnew — Frequency location of the same feature in the target filter

The example below shows how to modify the cutoff frequency of the prototype filter. The MATLAB code for this example is shown in the following figure.

The prototype filter is a halfband elliptic, real, third-order filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The cutoff frequency moves from 0.5 to 0.75:

[num,den] = iirlp2lp(b, a, 0.5, 0.75);

Example of Real Lowpass to Real Lowpass Mapping

Real Lowpass to Real Highpass

Real lowpass filter to real highpass filter transformation uses a first-order allpass mapping filter. It performs an exact mapping of one feature of the frequency response into the new location additionally swapping DC and Nyquist features. As a real transformation, it works in a similar way for positive and negative frequencies. Just like in the previous transformation because of using a first-order mapping, the order of the filter before and after the transformation is the same.

with α given by

where

ωold — Frequency location of the selected feature in the prototype filter

ωnew — Frequency location of the same feature in the target filter

The example below shows how to convert the lowpass filter into a highpass filter with arbitrarily chosen cutoff frequency. In the MATLAB code below, the lowpass filter is converted into a highpass with cutoff frequency shifted from 0.5 to 0.75. Results are shown in the figure.

The prototype filter is a halfband elliptic, real, third-order filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example moves the cutoff frequency from 0.5 to 0.75:

[num,den] = iirlp2hp(b, a, 0.5, 0.75);

Example of Real Lowpass to Real Highpass Mapping

Real Lowpass to Real Bandpass

Real lowpass filter to real bandpass filter transformation uses a second-order allpass mapping filter. It performs an exact mapping of two features of the frequency response into their new location additionally moving a DC feature and keeping the Nyquist feature fixed. As a real transformation, it works in a similar way for positive and negative frequencies.

with α and β given by

where

ωold — Frequency location of the selected feature in the prototype filter

ωnew,1 — Position of the feature originally at (-ωold) in the target filter

ωnew,2 — Position of the feature originally at (+ωold) in the target filter

The example below shows how to move the response of the prototype lowpass filter in either direction. Please note that because the target filter must also be real, the response of the target filter will inherently be disturbed at frequencies close to Nyquist and close to DC. Here is the MATLAB code for generating the example in the figure.

The prototype filter is a halfband elliptic, real, third-order lowpass filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example transformation creates the passband between 0.5 and 0.75:

[num,den] = iirlp2bp(b, a, 0.5, [0.5, 0.75]);

Example of Real Lowpass to Real Bandpass Mapping

Real Lowpass to Real Bandstop

Real lowpass filter to real bandstop filter transformation uses a second-order allpass mapping filter. It performs an exact mapping of two features of the frequency response into their new location additionally moving a Nyquist feature and keeping the DC feature fixed. This effectively creates a stopband between the selected frequency locations in the target filter. As a real transformation, it works in a similar way for positive and negative frequencies.

with α and β given by

where

ωold — Frequency location of the selected feature in the prototype filter

ωnew,1 — Position of the feature originally at (-ωold) in the target filter

ωnew,2 — Position of the feature originally at (+ωold) in the target filter

The following example shows how this transformation can be used to convert the prototype lowpass filter with cutoff frequency at 0.5 into a real bandstop filter with the same passband and stopband ripple structure and stopband positioned between 0.5 and 0.75. Here is the MATLAB code for generating the example in the figure.

The prototype filter is a halfband elliptic, real, third-order lowpass filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example transformation creates a stopband from 0.5 to 0.75:

[num,den] = iirlp2bs(b, a, 0.5, [0.5, 0.75]);

Example of Real Lowpass to Real Bandstop Mapping

Real Lowpass to Real Multiband

This high-order transformation performs an exact mapping of one selected feature of the prototype filter frequency response into a number of new locations in the target filter. Its most common use is to convert a real lowpass with predefined passband and stopband ripples into a real multiband filter with N arbitrary band edges, where N is the order of the allpass mapping filter.

The coefficients α are given by

where

ωold,k — Frequency location of the first feature in the prototype filter

ωnew,k — Position of the feature originally at ωold,k in the target filter

The mobility factor, S, specifies the mobility or either DC or Nyquist feature:

The example below shows how this transformation can be used to convert the prototype lowpass filter with cutoff frequency at 0.5 into a filter having a number of bands positioned at arbitrary edge frequencies 1/5, 2/5, 3/5 and 4/5. Parameter S was such that there is a passband at DC. Here is the MATLAB code for generating the figure.

The prototype filter is a halfband elliptic, real, third-order lowpass filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example transformation creates three stopbands, from DC to 0.2, from 0.4 to 0.6 and from 0.8 to Nyquist:

[num,den] = iirlp2mb(b, a, 0.5, [0.2, 0.4, 0.6, 0.8], `pass');

Example of Real Lowpass to Real Multiband Mapping

Real Lowpass to Real Multipoint

This high-order frequency transformation performs an exact mapping of a number of selected features of the prototype filter frequency response to their new locations in the target filter. The mapping filter is given by the general IIR polynomial form of the transfer function as given below.

For the Nth-order multipoint frequency transformation the coefficients α are

where

ωold,k — Frequency location of the first feature in the prototype filter

ωnew,k — Position of the feature originally at ωold,k in the target filter

The mobility factor, S, specifies the mobility of either DC or Nyquist feature:

The example below shows how this transformation can be used to move features of the prototype lowpass filter originally at -0.5 and 0.5 to their new locations at 0.5 and 0.75, effectively changing a position of the filter passband. Here is the MATLAB code for generating the figure.

The prototype filter is a halfband elliptic, real, third-order lowpass filter:

[b, a] = ellip(3, 0.1, 30, 0.409);

The example transformation creates a passband from 0.5 to 0.75:

[num,den] = iirlp2xn(b, a, [-0.5, 0.5], [0.5, 0.75], `pass');

Example of Real Lowpass to Real Multipoint Mapping

  


Free Early Verification Kit

Learn how to apply early verification to your development process through these technical resources.

How much time do you spend on testing to ensure implementation meets system-level requirements?

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS