private void BuildWaveletTree(WaveletPacket parent, Wavelet wavelet, int toLevel) { if (parent.Coefficients.Length >= wavelet.GetWaveLength() && parent.DecompositionLevel < toLevel) { Tuple <WaveletPacket, WaveletPacket> forwardTransform = wavelet.Forward(parent); parent.SetChildren(forwardTransform.Item1, forwardTransform.Item2); // set children and recurse down to desired level BuildWaveletTree(parent.LeftChild, wavelet, toLevel); BuildWaveletTree(parent.RightChild, wavelet, toLevel); } }
protected OptimalWaveletPacketTransform(Wavelet wavelet, int toLevel, double r, int[] columns, List <WaveletSubspace>[] optimalSubspace, int trainingColumnCount, int trainingRowCount, Preprocessor predecessor) : base(predecessor) { // Copy-constructor this.columns = columns; this.toLevel = toLevel; this.wavelet = wavelet; this.r = r; this.optimalSubspace = optimalSubspace; this.trainingColumnCount = trainingColumnCount; this.trainingRowCount = trainingRowCount; }
public OptimalWaveletPacketTransform(Wavelet wavelet, int toLevel, double r, params int[] columns) : this(wavelet, toLevel, r, columns, null, 0, 0, null) { }
public WaveletPacket GetWaveletPacketDecomposition(ISample sample, int column, Wavelet wavelet, int toLevel) { WaveletPacket top = new WaveletPacket(sample.GetDataRows(column), sample.GetIdentifier()); BuildWaveletTree(top, wavelet, toLevel); return(top); }