コード例 #1
0
ファイル: BoltMath.cs プロジェクト: Gooddbird/MainWpfApp
    /**
     * 零相位延迟FIR滤波
     * @param:
     *      dataSerial          输入波形
     *      samplingFreq        采样率 Hz
     *      lowCutOff           低截至频率 Hz
     *      highCutOff          高截至频率 Hz
     *
     * @return FIRResult        滤波后数据
     */
    public double[] ZeroPhaseFIR(double[] dataSerial, double samplingFreq, double lowCutOff, double highCutOff)
    {
        IList <double> coef = new List <double>();

        double[] hf = FirCoefficients.BandPass(samplingFreq, lowCutOff, highCutOff, 64);     //获得滤波系数
        foreach (double number in hf)
        {
            coef.Add(number);
        }

        OnlineFirFilter filter = new OnlineFirFilter(coef);

        double[] FIRResult = filter.ProcessSamples(dataSerial);           //正向滤波
        FIRResult = filter.ProcessSamples(FIRResult.Reverse().ToArray()); //反向滤波
        FIRResult = FIRResult.Reverse().ToArray();                        //反转

        return(FIRResult);
    }
コード例 #2
0
        protected override void Execute()
        {
            _filteredDatas.Clear();
            OnlineFirFilter filter = _configForm.Filter;

            for (int i = 0; i < this.DataBuf.Count; i++)
            {
                double[] showData = this.DataBuf[i];
                _filteredDatas.AddRange(filter.ProcessSamples(showData));
            }
        }
コード例 #3
0
        protected override void Execute()
        {
            _filteredDatas.Clear();
            int samplesPerView = GlobalInfo.SamplesInChart;
//            if (null == _filteredWave || _filteredWave.Length != samplesPerView)
//            {
//                _filteredWave = new double[samplesPerView];
//            }
            OnlineFirFilter filter = _configForm.Filter;

            for (int i = 0; i < GlobalInfo.EnableChannelCount; i++)
            {
                double[] showData = DataBuf.GetRange(i * samplesPerView, samplesPerView).ToArray();
                _filteredDatas.AddRange(filter.ProcessSamples(showData));
            }
        }