package be.tarsos.dsp.wavelet.lift; class LiftingSchemeTest { private static void print(float[] values) { System.out.print("["); for (double val : values) { System.out.print(val); System.out.print(","); } System.out.println("]"); } public static void main(String[] args) { /* * double vals[] = { 32.0, 10.0, 20.0, 38.0, 37.0, 28.0, 38.0, 34.0, * 18.0, 24.0, 18.0, 9.0, 23.0, 24.0, 28.0, 34.0 }; */ float vals[] = { 25, 40, 8, 24, 48, 48, 40, 16 }; /* * double vals[] = { 77.6875, 78.1875, 82.0625, 85.5625, 86.7500, * 82.4375, 82.2500, 82.7500, 81.2500, 79.5625, 80.2813, 79.8750, * 77.7500, 74.7500, 78.5000, 79.1875, 78.8125, 80.3125, 80.1250, * 79.3125, 83.7500, 89.8125, 87.7500, 91.1250, 94.4375, 92.7500, * 98.0000, 97.1875, 99.4375, 101.7500, 108.5000, 109.0000, 105.2500, * 105.5000, 110.0000, 107.0000, 107.2500, 103.3125, 102.8750, 102.4375, * 102.0000, 101.3125, 97.4375, 100.5000, 107.7500, 110.2500, 114.3125, * 111.2500, 114.8125, 112.6875, 109.4375, 108.0625, 104.5625, 103.2500, * 110.5625, 110.7500, 116.3125, 123.6250, 120.9375, 121.6250, 127.6875, * 126.0625, 126.3750, 124.3750 }; */ HaarWavelet hr = new HaarWavelet(); LineWavelet ln = new LineWavelet(); Daubechies4Wavelet d = new Daubechies4Wavelet(); HaarWithPolynomialInterpolationWavelet hrpy = new HaarWithPolynomialInterpolationWavelet(); PolynomialWavelets py = new PolynomialWavelets(); System.out.println("Data:"); print(vals); System.out.println(); System.out.println("HaarWavelet:"); hr.forwardTrans(vals); print(vals); System.out.println(); hr.inverseTrans(vals); print(vals); System.out.println(); System.out.println("Daubechies4Wavelet:"); d.forwardTrans(vals); print(vals); System.out.println(); d.inverseTrans(vals); print(vals); System.out.println(); System.out.println("Line:"); ln.forwardTrans(vals); print(vals); System.out.println(); ln.inverseTrans(vals); print(vals); System.out.println(); System.out .println("HaarWavelet, extended with polynomial interpolation:"); hrpy.forwardTrans(vals); print(vals); System.out.println(); hrpy.inverseTrans(vals); print(vals); System.out.println(); System.out.println("Poly:"); py.forwardTrans(vals); print(vals); System.out.println(); py.inverseTrans(vals); print(vals); System.out.println(); float[] t = { 56, 40, 8, 24, 48, 48, 40, 16 }; hr.forwardTransOne(t); float[] signal = { 56, 40, 8, 24, 48, 48, 40, 16 }; dwtHaar(signal); } private static void dwtHaar(float[] signal) { float[] s = new float[signal.length]; float[] d = new float[signal.length]; for (int i = 0; i < signal.length / 2; i++) { s[i] = (signal[2 * i] + signal[2 * i + 1]) / 2.0f; d[i] = signal[2 * i] - s[i]; } print(s); print(d); } /* * private static void decompose(float[] signal) { int length = * signal.length; int steps = (int) Math.round(Math.log(length) / * Math.log(2)); } */ }