public Waves_Params(Wavelet_Type waveType, int decompositionLevel, string analysisName, int rpeaksStep) { this.WaveType = waveType; this.DecompositionLevel = decompositionLevel; this.AnalysisName = analysisName; this.RpeaksStep = rpeaksStep; }
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; }
public Waves_Params() { _waveType = Wavelet_Type.haar; }
public void CopyParametersFrom(Waves_Params parameters) { this.WaveType = parameters.WaveType; this.DecompositionLevel = parameters.DecompositionLevel; this.RpeaksStep = parameters.RpeaksStep; }