You are here: Symbol Reference > Dew.Signal Namespace > IIRFilters Class > IIRFilters Methods > ChebyshevIFilter Method > ChebyshevIFilter Method (integer, TSample, array of TSample, TFilterType, boolean, TMtx, TVec, TVec, TSample)
Dew DSP for .NET
Contents
C# Example

Design an analog bandpass filter with transition band between 1..2 and 5..7 rad/sec and with at least 50dB attenuation in the stopband 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 num = new Vector(0);
    Vector den = new Vector(0);
    Vector Response = new Vector(0);
    Vector FreqFr = new Vector(0);
    double[] WcArray= new double[2];

    //design analog filter
    int Order = IIRFilters.ChebyshevIIOrder(new double[4] { 1, 2, 5, 7 }, 0.2, 50, TFilterType.ftBandPass, ref WcArray, true);
    IIRFilters.ChebyshevIIFilter(Order, 50, WcArray, TFilterType.ftBandPass, true, num,den, TIirFrequencyTransform.ftStateSpaceAnalog);  //design analog protype
    FreqFr.Length = 1000;
    SignalUtils.LogRamp(FreqFr, -1, 1);
    SignalUtils.FrequencyResponseS(num, den, FreqFr, Response, 0);
    TeeChart.DrawIt(Response, "Frequency response", false);

    //Alternative: Design a digital filter with the passband between 0.2 and 0.5 Hz (FS =2)
    Order = IIRFilters.ChebyshevIOrder(new double[4] { 0.1, 0.2, 0.5, 0.6 }, 0.2, 50, TFilterType.ftBandPass, ref WcArray, false);
    IIRFilters.ChebyshevIFilter(Order, 0.2, WcArray, TFilterType.ftBandPass, false, num, den, TIirFrequencyTransform.ftStateSpaceAnalog);  //design analog protype
    FreqFr = MtxExpr.Ramp(Response.Length, 0, 1.0 / FreqFr.Length);
    TeeChart.DrawIt(Response, "Frequency response", false);
}
Copyright (c) 1999-2010 by Dew Research. All rights reserved.