Esempio n. 1
0
 public Waves_Params(Wavelet_Type waveType, int decompositionLevel, string analysisName, int rpeaksStep)
 {
     this.WaveType = waveType;
     this.DecompositionLevel = decompositionLevel;
     this.AnalysisName = analysisName;
     this.RpeaksStep = rpeaksStep;
 }
Esempio n. 2
0
        public List<Vector<double>> ListDWT(Vector<double> signal, int n, Wavelet_Type waveType)
        {
            double[] Hfilter =  { 0 };
            double[] Lfilter = { 0 };
            int filterSize = 0;
                //generated from wfilters Matlab function
                switch (waveType)
                {
                case Wavelet_Type.haar:
                    return ListHaarDWT(signal, n);

                case Wavelet_Type.db2:
                    Hfilter = new double []{ -0.482962913144690 ,    0.836516303737469, -0.224143868041857 ,-0.129409522550921};
                    Lfilter = new double[] { -0.129409522550921, 0.224143868041857, 0.836516303737469, 0.482962913144690 };
                    filterSize = 4;
                    break;

                case Wavelet_Type.db3:
                    Hfilter = new double[] { -0.332670552950957,  0.806891509313339, - 0.459877502119331, - 0.135011020010391,  0.0854412738822415,  0.0352262918821007 };
                    Lfilter = new double[] { 0.0352262918821007, - 0.0854412738822415, - 0.135011020010391,  0.459877502119331,   0.806891509313339,   0.332670552950957 };
                    filterSize = 6;
                    break;
                }
                int decompSize = signal.Count();
                Vector<double> outVec = Vector<double>.Build.Dense(decompSize);
                Vector<double> signalTemp = signal;
                List<Vector<double>> listOut = new List<Vector<double>>();
                for (int i = 0; i < n; i++)
                {
                    decompSize /= 2;
                    for (int dataInd = 0; dataInd < decompSize; dataInd++)
                    {
                        outVec[dataInd] = 0;
                        outVec[decompSize + dataInd] = 0;
                        for( int filtIt = 0; filtIt < filterSize && (2*dataInd + filtIt) < signalTemp.Count ; filtIt++)
                        {
                            outVec[dataInd] += signalTemp[2 * dataInd + filtIt]*Lfilter[filterSize - filtIt - 1] ;
                            outVec[decompSize + dataInd] += signalTemp[2 * dataInd + filtIt]* Hfilter[filterSize - filtIt - 1];
                        }

                    }
                    signalTemp = outVec.SubVector(0, decompSize);
                    listOut.Add(outVec.SubVector(decompSize, decompSize));
                }
                return listOut;
        }
Esempio n. 3
0
 public Waves_Params()
 {
     _waveType = Wavelet_Type.haar;
 }
Esempio n. 4
0
 public void CopyParametersFrom(Waves_Params parameters)
 {
     this.WaveType = parameters.WaveType;
     this.DecompositionLevel = parameters.DecompositionLevel;
     this.RpeaksStep = parameters.RpeaksStep;
 }