LinearSystems.LowpassToLowpass Method

Overload List

#SignatureDescription
1procedure LowpassToLowpass(const a: TMtx; const b: TVec; const c: TVec; var D: Double; Freq: Double);Transform a lowpass filter prototype in state space form to a lowpass filter.
2procedure LowpassToLowpass(const z: TVec; const p: TVec; var k: Double; Freq: Double);Frequency transformation from a lowpass to a lowpass filter in s-domain.

Overload 1: procedure LowpassToLowpass(const a: TMtx; const b: TVec; const c: TVec; var D: Double; Freq: Double);

Transform a lowpass filter prototype in state space form to a lowpass filter.

#NameTypeDescription
1aTMtx
2bTVec
3cTVec
4DDouble
5FreqDoublescalar

Result: stored in self (calling object)

See Also: LinearSystems.LowpassToBandstop, LinearSystems.LowpassToBandpass, LinearSystems.LowpassToLowpassZ, LinearSystems.LowpassToBandpassZ, LinearSystems.LowpassToBandstopZ, LinearSystems.LowpassToHighpassZ

Overload 2: procedure LowpassToLowpass(const z: TVec; const p: TVec; var k: Double; Freq: Double);

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

#NameTypeDescription
1zTVec
2pTVec
3kDouble
4FreqDoublescalar

Result: stored in self (calling object)

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
uses MtxExpr, Math387, MtxVec, MtxVecTee, MtxVecEdit,
LinearSystems, IirFilters, SignalUtils;

procedure TForm1.Button1Click(Sender: TObject);
var z,p, num,den, FreqFr,Response: Vector;
Order: integer;
k,Wc,BW: Double;
begin
    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
    DrawIt(Response); //Y axis linear, X axis logarithmic
end;