Exemple #1
0
    // Start is called before the first frame update
    void Start()
    {
        cam = GetComponent <Camera>();

        minFOV = cam.fieldOfView;
        maxFOV = minFOV * MaxZoomOutFactor;

        filter    = new IIRFilter3(new Vector3(0.0f, 0.0f, 0.0f), 0.002f);
        fovFilter = new IIRFilter(minFOV, 0.001f);
    }
Exemple #2
0
 public override void Initialize()
 {
     VoltageFilter         = new IIRFilter(IIRFilter.FilterTypes.Butterworth, 1, IIRFilter.HzToRad(0.7f), 0.001f);
     Battery.ChargePercent = 100;
     Battery.VoltageV      = 72;
     Rele_minima           = new Timer(this);
     Rele_minima.Setup(2f * 60f + 30);
     Convertidor_Estático = new Convertidor_3000Vcc_380Vca3(() => new Electricity(CurrentCircuitBreakerState() == CircuitBreakerState.Closed && Contactor_bateria ? RealLineVoltageV : 0, Acceleration / 0.7f * 315 + 15));
     Cargador_Batería     = new Cargador_Bateria(Convertidor_Estático);
 }
Exemple #3
0
        public override void Initialize()
        {
            VoltageFilter = new IIRFilter(IIRFilter.FilterTypes.Butterworth, 1, IIRFilter.HzToRad(0.7f), 0.001f);

            PowerOnTimer = new Timer(this);
            PowerOnTimer.Setup(PowerOnDelayS());

            AuxPowerOnTimer = new Timer(this);
            AuxPowerOnTimer.Setup(AuxPowerOnDelayS());
        }
Exemple #4
0
    // filter data. Each IIRFilter stores two data points of filtered and unfiltered data. Therefore, filtering should be continuous and not be switched on and off.
    // Furthermore, each IIRFilter may only process one data stream. If you intend to filter two data streams with the same kind of filter, you need to initialize
    // two IIRFilters accordingly (e.g. "Notch50_1" and "Notch50_2"), each filtering only one data stream.
    public float filter(float x0, IIRFilter iirfilter)
    {
        float y = iirfilter.a0 * x0 + iirfilter.a1 * iirfilter.x1 + iirfilter.a2 * iirfilter.x2 + iirfilter.b1 * iirfilter.y1 + iirfilter.b2 * iirfilter.y2;

        iirfilter.x2 = iirfilter.x1;
        iirfilter.x1 = x0;
        iirfilter.y2 = iirfilter.y1;
        iirfilter.y1 = y;

        return(y);
    }
Exemple #5
0
        public override void Initialize()
        {
            PantographFilter = new IIRFilter(IIRFilterType.Butterworth, 1, Frequency.Angular.HzToRad(0.7f), 0.001f);
            VoltageFilter    = new IIRFilter(IIRFilterType.Butterworth, 1, Frequency.Angular.HzToRad(0.7f), 0.001f);

            PowerOnTimer = new Timer(this);
            PowerOnTimer.Setup(PowerOnDelayS());

            AuxPowerOnTimer = new Timer(this);
            AuxPowerOnTimer.Setup(AuxPowerOnDelayS());
        }
Exemple #6
0
    // Start is called before the first frame update
    void Start()
    {
        startTime = Time.time;

        CurrentRotation = new Vector3(0.0f, 0.0f, 0.0f);
        CurrentScale    = new Vector3(0.0f, 0.0f, 0.0f);
        CurrentPosition = new Vector3(0.0f, 0.0f, 0.0f);

        windPhase      = Gen.RandomRange(0.0f, Mathf.PI * 2.0f);
        deltaWindPhase = Gen.RandomRange(0.003f, 0.007f) * 60.0f;

        windStrengthFilter = new IIRFilter(Gen.SpeedMultiplier, 0.01f);
    }
        public Deemphasis(float fs, float tau = 75e-6f)
        {
            double c  = 1 / tau;
            double ca = (2 * fs * Math.Atan(c / (2 * fs)));

            double k  = -ca / (2 * fs);
            double p1 = (1 + k) / (1 - k);
            double b0 = -k / (1 - k);

            double[] btaps = new double[] { b0, b0 };
            double[] ataps = new double[] { 1.0, -p1 };

            iir = new IIRFilter(btaps, ataps);
        }
Exemple #8
0
    // Use this for initialization
    void Start()
    {
        if (!Input.gyro.enabled)
        {
            Input.gyro.enabled = true;
        }


        low0Hz0 = new IIRFilter(new float[] { 1f, -1.979133761292768f, 0.979521463540373f }, new float[] { 0.000086384997973502f, 0.000172769995947004f, 0.000086384997973502f });
        low0Hz1 = new IIRFilter(new float[] { 1f, -1.979133761292768f, 0.979521463540373f }, new float[] { 0.000086384997973502f, 0.000172769995947004f, 0.000086384997973502f });
        low0Hz2 = new IIRFilter(new float[] { 1f, -1.979133761292768f, 0.979521463540373f }, new float[] { 0.000086384997973502f, 0.000172769995947004f, 0.000086384997973502f });
        low0Hz3 = new IIRFilter(new float[] { 1f, -1.979133761292768f, 0.979521463540373f }, new float[] { 0.000086384997973502f, 0.000172769995947004f, 0.000086384997973502f });
        low0Hz4 = new IIRFilter(new float[] { 1f, -1.979133761292768f, 0.979521463540373f }, new float[] { 0.000086384997973502f, 0.000172769995947004f, 0.000086384997973502f });


        low5Hz0 = new IIRFilter(new float[] { 1f, -1.80898117793047f, 0.827224480562408f }, new float[] { 0.095465967120306f, -0.172688631608676f, 0.095465967120306f });
        low5Hz1 = new IIRFilter(new float[] { 1f, -1.80898117793047f, 0.827224480562408f }, new float[] { 0.095465967120306f, -0.172688631608676f, 0.095465967120306f });
        low5Hz2 = new IIRFilter(new float[] { 1f, -1.80898117793047f, 0.827224480562408f }, new float[] { 0.095465967120306f, -0.172688631608676f, 0.095465967120306f });
        low5Hz3 = new IIRFilter(new float[] { 1f, -1.80898117793047f, 0.827224480562408f }, new float[] { 0.095465967120306f, -0.172688631608676f, 0.095465967120306f });
        low5Hz4 = new IIRFilter(new float[] { 1f, -1.80898117793047f, 0.827224480562408f }, new float[] { 0.095465967120306f, -0.172688631608676f, 0.095465967120306f });

        // high1Hz = new IIRFilter(new float[] { 1f, -1.905384612118461f, 0.910092542787947f }, new float[] { 0.953986986993339f, -1.907503180919730f, 0.953986986993339f });
    }
Exemple #9
0
 // Use this for initialization
 void Start()
 {
     Notch50  = new IIRFilter(250, 50, 5); // sample rate 250Hz, Notch at 50Hz with bandwidth of 5
     Notch100 = new IIRFilter(250, 100, 5);
 }
 // Start is called before the first frame update
 void Start()
 {
     filter = new IIRFilter(DefaultScale, 0.02f);
 }
Exemple #11
0
        private void cmbLowPass_SelectedIndexChanged(object sender, EventArgs e)
        {
            lock (this)
            {
                switch (cmbLowPass.SelectedIndex)
                {
                case 0:
                    LowPass  = null;
                    LowPassI = null;
                    LowPassQ = null;
                    break;

                case 1:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_2);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_2);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_2);
                    break;

                case 2:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_4);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_4);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_4);
                    break;

                case 3:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_8);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_8);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_8);
                    break;

                case 4:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_16);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_16);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_16);
                    break;

                case 5:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_32);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_32);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_32);
                    break;

                case 6:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_64);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_64);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_64);
                    break;

                case 7:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_128);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_128);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_128);
                    break;

                case 8:
                    LowPass  = new IIRFilter(IIRCoefficients.IIRLowPass_256);
                    LowPassI = new IIRFilter(IIRCoefficients.IIRLowPass_256);
                    LowPassQ = new IIRFilter(IIRCoefficients.IIRLowPass_256);
                    break;
                }
            }
        }
Exemple #12
0
 public Cargador_Bateria(Convertidor_3000Vcc_380Vca3 Input)
 {
     VFilter    = new IIRFilter(IIRFilter.FilterTypes.Butterworth, 1, IIRFilter.HzToRad(0.7f), 0.001f);
     this.Input = Input;
 }