Overload List
Overload 1: function ChebyshevIIFilter(Order: Integer; StopRipple: Double; CutoffFreq: TDoubleArray; FilterType: TFilterType; Analog: Boolean; A: TMtx; B: TVec; C: TVec; out d: Double): Double;
The resulting transfer function is returned in the state-space form with A,B,C,D variables.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Integer | |
| 2 | StopRipple | Double | scalar |
| 3 | CutoffFreq | TDoubleArray | |
| 4 | FilterType | TFilterType | |
| 5 | Analog | Boolean | |
| 6 | A | TMtx | source TMtx |
| 7 | B | TVec | source TVec |
| 8 | C | TVec | source TVec |
| 9 | d | Double |
Returns: Double
Overload 2: function ChebyshevIIFilter(Order: Integer; StopRipple: Double; CutoffFreq: TDoubleArray; FilterType: TFilterType; Analog: Boolean; Num: TVec; Den: TVec; IirFrequencyTransform: TIirFrequencyTransform): Double;
The resulting transfer function is returned in the numerator/denumerator form with num and den.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Integer | |
| 2 | StopRipple | Double | scalar |
| 3 | CutoffFreq | TDoubleArray | |
| 4 | FilterType | TFilterType | |
| 5 | Analog | Boolean | |
| 6 | Num | TVec | source TVec |
| 7 | Den | TVec | source TVec |
| 8 | IirFrequencyTransform | TIirFrequencyTransform |
Returns: Double
Overload 3: function ChebyshevIIFilter(Order: Integer; StopRipple: Double; CutoffFreq: TDoubleArray; FilterType: TFilterType; Analog: Boolean; z: TVec; p: TVec; out k: Double; IirFrequencyTransform: TIirFrequencyTransform): Double;
Design Chebyshev type II IIR filter.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Integer | |
| 2 | StopRipple | Double | scalar |
| 3 | CutoffFreq | TDoubleArray | |
| 4 | FilterType | TFilterType | |
| 5 | Analog | Boolean | |
| 6 | z | TVec | source TVec |
| 7 | p | TVec | source TVec |
| 8 | k | Double | |
| 9 | IirFrequencyTransform | TIirFrequencyTransform |
Returns: Double
Design Chebyshev type II filter of Order with CutoffFreq frequencies and of FilterType type. Set Analog to True, to request an analog filter design in s-plane or set it to false to obtain a digital filter design in z-plane. StopRipple defines the stopband ripple in dB. CutoffFreq must be in range between 0 and 1 (Sampling frequency = 2) in case of a digital filter design.
IirFrequencyTransform specifies when and how will the frequency band transformation be applied. The resulting transfer function is returned in the zero-pole form, with z,p,k variables.
uses MtxExpr, Math387, MtxVec, SignalUtils, MtxVecTee, MtxVecEdit, IirFilters,
LinearSystems;
procedure TForm1.Button1Click(Sender: TObject);
var z,p, num,den, FreqFr,Response: Vector;
Order: integer;
k,Bw,Wc: double;
WcArray: TDoubleArray; //modified 3dB frequency
begin
SetLength(WcArray,1);
Order := ChebyshevIIOrder([10*2/30,12*2/30],0.2,50,ftHighpass,WcArray,false);
ChebyshevIIFilter(Order,50,WcArray,ftHighpass,false,num,den);
FrequencyResponse(num,den,Response,64);
FreqFr := Ramp(Response.Length,mvDouble,0,1.0/Response.Length); //X axis
DrawIt(FreqFr,20*Log10(Abs(Response)));
end;
Overload 4: function ChebyshevIIFilter(Order: Integer; StopRipple: Double; CutoffFreq: TDoubleArray; FilterType: TFilterType; Analog: Boolean; sos: TVec; IirFrequencyTransform: TIirFrequencyTransform): Double;
The resulting transfer function is returned in the second order section form stored in the sos variable.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Integer | |
| 2 | StopRipple | Double | scalar |
| 3 | CutoffFreq | TDoubleArray | |
| 4 | FilterType | TFilterType | |
| 5 | Analog | Boolean | |
| 6 | sos | TVec | source TVec |
| 7 | IirFrequencyTransform | TIirFrequencyTransform |
Returns: Double
The sos variable can be passed directly to the IirInitBQ digital filter initialization routine. Second order section form delivers substantially higher numerical stability and range than filtering with num/den form which is used by the IirInit routine.