DSP Master VCL
|
Transform a lowpass filter prototype in state space form to a lowpass filter.
Design an analog lowpass filter, where the passband is defined with Wu = 0.7 rad/sec.
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;
#include "MtxExpr.hpp" #include "MtxVecEdit.hpp" #include "MtxVecTee.hpp" #include "SignalUtils.hpp" #include "IirFilters.hpp" #include "LinearSystems.hpp" void __fastcall TForm1::BitBtn1Click(TObject *Sender) { sVector 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 DrawIt(Response); //Y axis linear, X axis logarithmic }
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
|
What do you think about this topic? Send feedback!
|