IIRFilters.ChebyshevIIFilter Method

Overload List

#SignatureDescription
1Double ChebyshevIIFilter(Int32 Order, Double StopRipple, 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.
2Double ChebyshevIIFilter(Int32 Order, Double StopRipple, 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.
3Double ChebyshevIIFilter(Int32 Order, Double StopRipple, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec z, TVec p, ref Double k, TIirFrequencyTransform IirFrequencyTransform)Design Chebyshev type II IIR filter.
4Double ChebyshevIIFilter(Int32 Order, Double StopRipple, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec sos, TIirFrequencyTransform IirFrequencyTransform)The resulting transfer function is returned in the second order section form stored in the sos variable.

Overload 1: Double ChebyshevIIFilter(Int32 Order, Double StopRipple, 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.

#NameTypeDescription
1OrderInt32
2StopRippleDoublescalar
3CutoffFreqDouble[]
4FilterTypeTFilterType
5AnalogBoolean
6ATMtxsource TMtx
7BTVecsource TVec
8CTVecsource TVec
9dDouble (ref)output

Returns: Double

Examples
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 z = new Vector(0);
    Vector p = new Vector(0);
    Vector num = new Vector(0);
    Vector den = new Vector(0);
    Vector Response = new Vector(0);

    double[] WcArray = new double[1];
    int Order;

    Order = IIRFilters.ChebyshevIIOrder(new double[2] { 10.0*2/30, 12.0*2/30 }, 0.2, 50, TFilterType.ftHighpass, ref WcArray, false);  //design analog protype
    IIRFilters.ChebyshevIIFilter(Order, 50, WcArray, TFilterType.ftHighpass, false, num, den, TIirFrequencyTransform.ftStateSpaceAnalog);
    SignalUtils.FrequencyResponse(num, den, Response, 32, false, TSignalWindowType.wtRectangular, 0);
    Vector FreqFr = MtxExpr.Ramp(Response.Length, mvDouble,0, 1.0 / Response.Length); //X axis
    DrawIt(FreqFr,20*MtxExpr.Log10(MtxExpr.Abs(Response)),"Magnitude",false);
}
See Also: SignalUtils.IirFilter, IIRFilters.ButterFilter, IIRFilters.ChebyshevIFilter, IIRFilters.EllipticFilter, IIRFilters.BesselFilter, IIRFilters.ChebyshevIIOrder, IIRFilters.ChebyshevIAnalog, LinearSystems.Bilinear

Overload 2: Double ChebyshevIIFilter(Int32 Order, Double StopRipple, 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.

#NameTypeDescription
1OrderInt32
2StopRippleDoublescalar
3CutoffFreqDouble[]
4FilterTypeTFilterType
5AnalogBoolean
6NumTVecsource TVec
7DenTVecsource TVec
8IirFrequencyTransformTIirFrequencyTransform

Returns: Double

Overload 3: Double ChebyshevIIFilter(Int32 Order, Double StopRipple, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec z, TVec p, ref Double k, TIirFrequencyTransform IirFrequencyTransform)

Design Chebyshev type II IIR filter.

#NameTypeDescription
1OrderInt32
2StopRippleDoublescalar
3CutoffFreqDouble[]
4FilterTypeTFilterType
5AnalogBoolean
6zTVecsource TVec
7pTVecsource TVec
8kDouble (ref)output
9IirFrequencyTransformTIirFrequencyTransform

Returns: Double

Remarks:

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.

Overload 4: Double ChebyshevIIFilter(Int32 Order, Double StopRipple, Double[] CutoffFreq, TFilterType FilterType, Boolean Analog, TVec sos, TIirFrequencyTransform IirFrequencyTransform)

The resulting transfer function is returned in the second order section form stored in the sos variable.

#NameTypeDescription
1OrderInt32
2StopRippleDoublescalar
3CutoffFreqDouble[]
4FilterTypeTFilterType
5AnalogBoolean
6sosTVecsource TVec
7IirFrequencyTransformTIirFrequencyTransform

Returns: Double

Remarks:

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.