Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void LowpassToLowpass(TVec *z, TVec *p, double &k, double Freq); | Frequency transformation from a lowpass to a lowpass filter in s-domain. |
| 2 | void LowpassToLowpass(TMtx *a, TVec *b, TVec *c, double &D, double Freq); | Transform a lowpass filter prototype in state space form to a lowpass filter. |
Overload 1: void LowpassToLowpass(TVec *z, TVec *p, double &k, double Freq);
Frequency transformation from a lowpass to a lowpass filter in s-domain.
Remarks:
Transform a lowpass filter prototype in zero-pole form to a lowpass filter, where the new cutoff frequency is Freq. Assumed sampling frequency is 2. The transformation is defined as ([1], p. 258): s -> s/W_u
Wu - new cutoff frequency
References:
[1] Theory and application of digital signal processing, Lawrence R. Rabiner and Bernard Gold. Prentice-Hall, 1975
Examples
#include "MtxExpr.h"
#include "Units.IIrFilters.h"
#include "Units.LinearSystems.h"
#include "Units.SignalUtils.h"
using namespace Dew;
using namespace Dew::Math;
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 = 0.7;
LowpassToLowpass(z, p, k, Wc); //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 LowpassToLowpass(TMtx *a, TVec *b, TVec *c, double &D, double Freq);
Transform a lowpass filter prototype in state space form to a lowpass filter.
Examples
#include "MtxExpr.h"
#include "Units.IIrFilters.h"
#include "Units.LinearSystems.h"
#include "Units.SignalUtils.h"
using namespace Dew;
using namespace Dew::Math;
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 = 0.7;
LowpassToLowpass(z, p, k, Wc); //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::LowpassToBandstop, LinearSystems::LowpassToBandpass, LinearSystems::LowpassToLowpassZ, LinearSystems::LowpassToBandpassZ, LinearSystems::LowpassToBandstopZ, LinearSystems::LowpassToHighpassZ
Declared in Dew::Signal::Units::LinearSystems · Dew.Signal/Units.LinearSystems.h · Cross-compiler