Overload List
| # | Signature | Description |
|---|---|---|
| 1 | Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TMtx A, TVec B, TVec C, ref Double d) | The resulting transfer function is returned in the state-space form with A,B,C,D variables. |
| 2 | Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec Num, TVec Den, TIirFrequencyTransform IirFrequencyTransform) | The resulting transfer function is returned in the numerator/denumerator form with num and den. |
| 3 | Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec z, TVec p, ref Double k, TIirFrequencyTransform IirFrequencyTransform) | Design Bessel IIR filter. |
Overload 1: Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TMtx A, TVec B, TVec C, ref Double d)
The resulting transfer function is returned in the state-space form with A,B,C,D variables.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Int32 | |
| 2 | CutoffFreq | Double[] | |
| 3 | FilterType | TFilterType | |
| 4 | Analog | Boolean | |
| 5 | A | TMtx | source TMtx |
| 6 | B | TVec | source TVec |
| 7 | C | TVec | source TVec |
| 8 | d | Double (ref) | output |
Returns: Double
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;
private void button1_Click(object sender, EventArgs e)
{
Vector num = new Vector(0);
Vector den = new Vector(0);
Vector Response = new Vector(0);
Vector FreqFr = new Vector(0);
IIRFilters.BesselFilter(5, new double[1] {3}, TFilterType.ftLowpass, true, num,den,TIirFrequencyTransform.ftStateSpaceAnalog); //design analog protype
FreqFr.Length = 1000;
SignalUtils.LogRamp(FreqFr, -1, 1);
SignalUtils.FrequencyResponseS(num, den, FreqFr, Response, 0);
MtxVecTee.DrawIt(Response, "Frequency response", false);
}
Overload 2: Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec Num, TVec Den, TIirFrequencyTransform IirFrequencyTransform)
The resulting transfer function is returned in the numerator/denumerator form with num and den.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Int32 | |
| 2 | CutoffFreq | Double[] | |
| 3 | FilterType | TFilterType | |
| 4 | Analog | Boolean | |
| 5 | Num | TVec | source TVec |
| 6 | Den | TVec | source TVec |
| 7 | IirFrequencyTransform | TIirFrequencyTransform |
Returns: Double
Overload 3: Double BesselFilter(Int32 Order, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec z, TVec p, ref Double k, TIirFrequencyTransform IirFrequencyTransform)
Design Bessel IIR filter.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Order | Int32 | |
| 2 | CutoffFreq | Double[] | |
| 3 | FilterType | TFilterType | |
| 4 | Analog | Boolean | |
| 5 | z | TVec | source TVec |
| 6 | p | TVec | source TVec |
| 7 | k | Double (ref) | output |
| 8 | IirFrequencyTransform | TIirFrequencyTransform |
Returns: Double
Design Bessel 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. CutoffFreq must be in range between 0 and 1 (Sampling frequency = 2).
IIrFrequencyTransform specifies when and how will the frequency band transformation be applied. Bessel filters typically do not preserve a flat group delay once transformed to z-domain. The routine uses bilinear transformation to map from s to z-domain. Use matched-Z transform to preserve more phase properties of the Bessel filters in the z-domain. The resulting transfer function is returned in the zero-pole form, with z,p,k variables.