LinearSystems::LowpassToBandstop Function

Overload List

#SignatureDescription
1void LowpassToBandstop(TVec *z, TVec *p, double &k, double CenterFreq, double BW);Frequency transformation from a lowpass to a bandstop filter in s-domain.
2void LowpassToBandstop(TMtx *a, TVec *b, TVec *c, double &D, double CenterFreq, double BW);Convert a lowpass filter prototype in state space form to a bandstop filter.

Overload 1: void LowpassToBandstop(TVec *z, TVec *p, double &k, double CenterFreq, double BW);

Frequency transformation from a lowpass to a bandstop filter in s-domain.

#NameTypeDescription
1zTVec *
2pTVec *
3kdouble &
4CenterFreqdouble
5BWdouble
Remarks:

Transform a lowpass filter prototype in zero-pole form to a bandstop filter, where the stopband has width BW centered around the frequency CenterFreq. Assumed sampling frequency is 2. The transformation is defined as ([1], p. 258): s -> (s (W_u - W_l))/(s^2 + W_u W_l)

Wl - lower cutoff frequency
Wu - upper cutoff frequency

The routine also adds pairs of zeros at +/-j*CenterFreq, if the number of zeros is less then number of poles, to match the number of poles.

References:

[1] Theory and application of digital signal processing, Lawrence R. Rabiner and Bernard Gold. Prentice-Hall, 1975

Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.IIrFilters.h"
#include "Units.LinearSystems.h"
#include "Units.SignalUtils.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Signal;
using namespace Dew::Signal::Units::IIRFilters;
using namespace Dew::Signal::Units::LinearSystems;
using namespace Dew::Signal::Units::SignalUtils;

void Example()
{
    Vector z, p, num, den, FreqFr, Response;
    int Order;
    double k, Wc, BW;

    Order = 5; //design a fifth order filter.
    EllipticAnalog(Order, 0.2, 40, z, p, k);  //design analog protype
    Wc = Sqrt(0.2*0.6);
    BW = 0.6-0.2;
    LowpassToBandstop(z, p, k, Wc, BW);  //frequency transformation in s-domain
    ZeroPoleToTransferFun(num, den, z, p, k);
    //Define the frequency grid (logarithmic)
    FreqFr.Length = 1000;
    LogRamp(FreqFr, -1, 1); //between 0.1 (=10^(-1)) and 10 (=10^1) rad/sec
    FrequencyResponseS(num, den, FreqFr, Response); //Laplace
}
Declared in Dew::Signal::Units::LinearSystems · Dew.Signal/Units.LinearSystems.h · Cross-compiler

Overload 2: void LowpassToBandstop(TMtx *a, TVec *b, TVec *c, double &D, double CenterFreq, double BW);

Convert a lowpass filter prototype in state space form to a bandstop filter.

#NameTypeDescription
1aTMtx *
2bTVec *
3cTVec *
4Ddouble &
5CenterFreqdouble
6BWdouble
Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.IIrFilters.h"
#include "Units.LinearSystems.h"
#include "Units.SignalUtils.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Signal;
using namespace Dew::Signal::Units::IIRFilters;
using namespace Dew::Signal::Units::LinearSystems;
using namespace Dew::Signal::Units::SignalUtils;

void Example()
{
    Vector z(0);
    Vector p(0);
    Vector num(0);
    Vector den(0);
    Vector Response(0);
    Vector FreqFr(0);
    double k, Wc, BW;
    double FS = 2;
    int Order = 5; //design a fifth order filter.

    EllipticAnalog(Order, 0.2, 40, z, p, k);  //design analog protype
    Wc = Sqrt(0.2*0.6);
    BW = 0.6 - 0.2;
    LowpassToBandstop(z, p, k, Wc, BW);  //frequency transformation in s-domain
    ZeroPoleToTransferFun(num, den, z, p, k);
    //Define the frequency grid (logarithmic)
    FreqFr.Length = 1000;
    LogRamp(FreqFr, -1, 1); //between 0.1 (=10^(-1)) and 10 (=10^1) rad/sec
    FrequencyResponseS(num, den, FreqFr, Response, 0); //Laplace
}
See Also: LinearSystems::LowpassToLowpass, LinearSystems::LowpassToBandpass, LinearSystems::LowpassToHighpass, LinearSystems::LowpassToLowpassZ, LinearSystems::LowpassToBandpassZ, LinearSystems::LowpassToBandstopZ, LinearSystems::LowpassToHighpassZ
Declared in Dew::Signal::Units::LinearSystems · Dew.Signal/Units.LinearSystems.h · Cross-compiler