Multilevel 1D Discrete Wavelet Transform of data. Parameters ---------- data: array_like Input data wavelet : Wavelet object or name string Wavelet to use mode : str, optional Signal extension mode, see :ref:`Modes `. level : int, opti
(data, wavelet, mode='symmetric', level=None, axis=-1)
| 47 | |
| 48 | |
| 49 | def wavedec(data, wavelet, mode='symmetric', level=None, axis=-1): |
| 50 | """ |
| 51 | Multilevel 1D Discrete Wavelet Transform of data. |
| 52 | |
| 53 | Parameters |
| 54 | ---------- |
| 55 | data: array_like |
| 56 | Input data |
| 57 | wavelet : Wavelet object or name string |
| 58 | Wavelet to use |
| 59 | mode : str, optional |
| 60 | Signal extension mode, see :ref:`Modes <ref-modes>`. |
| 61 | level : int, optional |
| 62 | Decomposition level (must be >= 0). If level is None (default) then it |
| 63 | will be calculated using the ``dwt_max_level`` function. |
| 64 | axis: int, optional |
| 65 | Axis over which to compute the DWT. If not given, the |
| 66 | last axis is used. |
| 67 | |
| 68 | Returns |
| 69 | ------- |
| 70 | [cA_n, cD_n, cD_n-1, ..., cD2, cD1] : list |
| 71 | Ordered list of coefficients arrays |
| 72 | where ``n`` denotes the level of decomposition. The first element |
| 73 | (``cA_n``) of the result is approximation coefficients array and the |
| 74 | following elements (``cD_n`` - ``cD_1``) are details coefficients |
| 75 | arrays. |
| 76 | |
| 77 | Examples |
| 78 | -------- |
| 79 | >>> from pywt import wavedec |
| 80 | >>> coeffs = wavedec([1,2,3,4,5,6,7,8], 'db1', level=2) |
| 81 | >>> cA2, cD2, cD1 = coeffs |
| 82 | >>> cD1 |
| 83 | array([-0.70710678, -0.70710678, -0.70710678, -0.70710678]) |
| 84 | >>> cD2 |
| 85 | array([-2., -2.]) |
| 86 | >>> cA2 |
| 87 | array([ 5., 13.]) |
| 88 | |
| 89 | """ |
| 90 | data = np.asarray(data) |
| 91 | |
| 92 | wavelet = _as_wavelet(wavelet) |
| 93 | try: |
| 94 | axes_shape = data.shape[axis] |
| 95 | except IndexError: |
| 96 | raise AxisError("Axis greater than data dimensions") |
| 97 | level = _check_level(axes_shape, wavelet.dec_len, level) |
| 98 | |
| 99 | coeffs_list = [] |
| 100 | |
| 101 | a = data |
| 102 | for i in range(level): |
| 103 | a, d = dwt(a, wavelet, mode, axis) |
| 104 | coeffs_list.append(d) |
| 105 | |
| 106 | coeffs_list.append(a) |
no test coverage detected