The Discrete Wavelet Transform (DWT) is a mathematical technique used to decompose a signal into different sets of coefficients. These coefficients include an approximation coefficients set (cA) and multiple detail coefficient sets (cD). The DWT is achieved by convolving the signal with low-pass and high-pass filters over time. In PAL implementation, a single-level 1-D DWT is supported. The process of decomposing a signal using DWT is illustrated in a diagram.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_DWT_DATA_TBL;
CREATE COLUMN TABLE PAL_DWT_DATA_TBL (
	"ID" INTEGER,
	"VAL" DOUBLE
);

INSERT INTO PAL_DWT_DATA_TBL VALUES (1, 266.0);
INSERT INTO PAL_DWT_DATA_TBL VALUES (2, 145.9);
INSERT INTO PAL_DWT_DATA_TBL VALUES (3, 181.3);
INSERT INTO PAL_DWT_DATA_TBL VALUES (4, 119.3);
INSERT INTO PAL_DWT_DATA_TBL VALUES (5, 180.3);
INSERT INTO PAL_DWT_DATA_TBL VALUES (6, 168.5);
INSERT INTO PAL_DWT_DATA_TBL VALUES (7, 231.8);
INSERT INTO PAL_DWT_DATA_TBL VALUES (8, 224.5);
INSERT INTO PAL_DWT_DATA_TBL VALUES (9, 192.8);
INSERT INTO PAL_DWT_DATA_TBL VALUES (10, 122.9);
INSERT INTO PAL_DWT_DATA_TBL VALUES (11, 336.5);
INSERT INTO PAL_DWT_DATA_TBL VALUES (12, 185.9);
INSERT INTO PAL_DWT_DATA_TBL VALUES (13, 194.3);
INSERT INTO PAL_DWT_DATA_TBL VALUES (14, 149.5);

DROP TABLE #PAL_PARAMETER_TBL;
CREATE LOCAL TEMPORARY COLUMN TABLE #PAL_PARAMETER_TBL (
	"PARAM_NAME" VARCHAR(100),
	"INT_VALUE" INTEGER,
	"DOUBLE_VALUE" DOUBLE,
	"STRING_VALUE" VARCHAR(100)
);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('PADDING_TYPE', 1, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('LEVEL', 2, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('FILTER_TYPE', NULL, NULL, 'db2');


CALL _SYS_AFL.PAL_DISCRETE_WAVELET_TRANSFORM(PAL_DWT_DATA_TBL, "#PAL_PARAMETER_TBL", ?);
