You are here: Symbol Reference > Dew.Signal Namespace > IIRFilters Class > IIRFilters Methods > ButterOrder Method
Dew DSP for .NET
Contents
PreviousUpNext
IIRFilters.ButterOrder Method

Estimate the order a butterworth IIR filter.

C#
public int ButterOrder(double[] BEdges, double PassRipple, double StopRipple, TFilterType FilterType, ref double[] CutoffFreq, bool Analog);

Returns the order of a butterworth type IIR filter. Bedg array must contain the band edges of the transition region(s) sorted in ascending order. PassRipple defines the ripple of the passband and StopRipple defines the ripple of the stopband. The length of the CutoffFreq array must be equal to one half of the length of the BEdg array and must match the specified FilterType. The routine returns the estimated order as a result and fill's the CutoffFreq array. This array can then be passed to the ButterFilter routine.

Design an analog lowpass filter with transition band between 2 and 6 rad/sec and with at least 40dB attenuation at the end of the transition band and. The passband should not have more then 0.2dB ripple. 

 

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);
    Vector FreqFr = new Vector(0);
    double k;
    double[] Wc = new double[1];
    int Order; //design a fifth order filter.

    Order = IIRFilters.ButterOrder(new double[2] { 2, 6 }, 0.2,40,TFilterType.ftLowPass,ref Wc,true);  //design analog protype
    IIRFilters.ButterAnalog(Order,z, p, out k);  //design analog protype
    LinearSystems.LowpassToLowpass(z, p, ref k, Wc[0]);
    LinearSystems.ZeroPoleToTransferFun(num, den, z, p, k);
    FreqFr.Length = 1000;
    SignalUtils.LogRamp(FreqFr, -1, 1);

    SignalUtils.FrequencyResponseS(num, den, FreqFr, Response, 0);
    TeeChart.DrawIt(Response, "Frequency response", false);
}
What do you think about this topic? Send feedback!
Copyright (c) 1999-2010 by Dew Research. All rights reserved.