Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

Frequency Transformations for Complex Filters

Overview

This section discusses complex frequency transformation that take the complex prototype filter and convert it into a different complex 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 from:

Complex Frequency Shift

Complex frequency shift transformation is the simplest first-order transformation that performs an exact mapping of one selected feature of the frequency response into its new location. At the same time it rotates the whole response of the prototype lowpass filter by the distance specified by the selection of the feature from the prototype filter and the target filter.

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

A special case of the complex frequency shift is a, so called, Hilbert Transformer. It can be designed by setting the parameter to |α|=1, that is

The example below shows how to apply this transformation to rotate the response of the prototype lowpass filter in either direction. Please note that because the transformation can be achieved by a simple phase shift operator, all features of the prototype filter will be moved by the same amount. 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.3:

[num,den] = iirshiftc(b, a, 0.5, 0.3);

Example of Complex Frequency Shift Mapping

Real Lowpass to Complex Bandpass

This first-order transformation performs an exact mapping of one selected feature of the prototype filter frequency response into two new locations in the target filter creating a passband between them. Both Nyquist and DC features can be moved with the rest of the frequency response.

with α and β are 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 the use of such a transformation for converting a real halfband lowpass filter into a complex bandpass filter with band edges at 0.5 and 0.75. Here is the MATLAB code for generating the example in the figure.

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

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

The transformation creates a passband from 0.5 to 0.75:

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

Example of Real Lowpass to Complex Bandpass Mapping

Real Lowpass to Complex Bandstop

This first-order transformation performs an exact mapping of one selected feature of the prototype filter frequency response into two new locations in the target filter creating a stopband between them. Both Nyquist and DC features can be moved with the rest of the frequency response.

with α and β are 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 the use of such a transformation for converting a real halfband lowpass filter into a complex bandstop filter with band edges at 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 transformation creates a stopband from 0.5 to 0.75:

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

Example of Real Lowpass to Complex Bandstop Mapping

Real Lowpass to Complex 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 multiband filter with arbitrary band edges. The order of the mapping filter must be even, which corresponds to an even number of band edges in the target filter. The Nth-order complex allpass mapping filter is given by the following general transfer function form:

The coefficients α are calculated from the system of linear equations:

where

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

ωnew,i — Position of features originally at ±ωold in the target filter

Parameter S is the additional rotation factor by the frequency distance ΔC, giving the additional flexibility of achieving the required mapping:

The example shows the use of such a transformation for converting a prototype real lowpass filter with the cutoff frequency at 0.5 into a multiband complex filter with band edges at 0.2, 0.4, 0.6 and 0.8, creating two passbands around the unit circle. Here is the MATLAB code for generating the figure.

Example of Real Lowpass to Complex Multiband Mapping

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 two complex passbands:

[num,den] = iirlp2mbc(b, a, 0.5, [0.2, 0.4, 0.6, 0.8]);

Real Lowpass to Complex Multipoint

This high-order 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 Nth-order complex allpass mapping filter is given by the following general transfer function form.

The coefficients α can be calculated from the system of linear equations:

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

Parameter S is the additional rotation factor by the frequency distance ΔC, giving the additional flexibility of achieving the required mapping:

The following example shows how this transformation can be used to move one selected feature of the prototype lowpass filter originally at -0.5 to two new frequencies -0.5 and 0.1, and the second feature of the prototype filter from 0.5 to new locations at -0.25 and 0.3. This creates two nonsymmetric passbands around the unit circle, creating a complex filter. 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 two nonsymmetric passbands:

[num,den] = iirlp2xc(b,a,0.5*[-1,1,-1,1], [-0.5,-0.25,0.1,0.3]);

Example of Real Lowpass to Complex Multipoint Mapping

Complex Bandpass to Complex Bandpass

This first-order transformation performs an exact mapping of two selected features of the prototype filter frequency response into two new locations in the target filter. Its most common use is to adjust the edges of the complex bandpass filter.

with α and β are given by

where

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

ωold,2 — Frequency location of the second feature in the prototype filter

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

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

The following example shows how this transformation can be used to modify the position of the passband of the prototype filter, either real or complex. In the example below the prototype filter passband spanned from 0.5 to 0.75. It was converted to having a passband between -0.5 and 0.1. 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.25 to 0.75:

[num,den] = iirbpc2bpc(b, a, [0.25, 0.75], [-0.5, 0.1]);

Example of Complex Bandpass to Complex Bandpass 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