dwt(data, wavelet, mode='symmetric', axis=-1) Single level Discrete Wavelet Transform. Parameters ---------- data : array_like Input signal wavelet : Wavelet object or name Wavelet to use mode : str, optional Signal extension mode, see :ref:`Mod
(data, wavelet, mode='symmetric', axis=-1)
| 118 | |
| 119 | |
| 120 | def dwt(data, wavelet, mode='symmetric', axis=-1): |
| 121 | """ |
| 122 | dwt(data, wavelet, mode='symmetric', axis=-1) |
| 123 | |
| 124 | Single level Discrete Wavelet Transform. |
| 125 | |
| 126 | Parameters |
| 127 | ---------- |
| 128 | data : array_like |
| 129 | Input signal |
| 130 | wavelet : Wavelet object or name |
| 131 | Wavelet to use |
| 132 | mode : str, optional |
| 133 | Signal extension mode, see :ref:`Modes <ref-modes>`. |
| 134 | axis: int, optional |
| 135 | Axis over which to compute the DWT. If not given, the |
| 136 | last axis is used. |
| 137 | |
| 138 | Returns |
| 139 | ------- |
| 140 | (cA, cD) : tuple |
| 141 | Approximation and detail coefficients. |
| 142 | |
| 143 | Notes |
| 144 | ----- |
| 145 | Length of coefficients arrays depends on the selected mode. |
| 146 | For all modes except periodization: |
| 147 | |
| 148 | ``len(cA) == len(cD) == floor((len(data) + wavelet.dec_len - 1) / 2)`` |
| 149 | |
| 150 | For periodization mode ("per"): |
| 151 | |
| 152 | ``len(cA) == len(cD) == ceil(len(data) / 2)`` |
| 153 | |
| 154 | Examples |
| 155 | -------- |
| 156 | >>> import pywt |
| 157 | >>> (cA, cD) = pywt.dwt([1, 2, 3, 4, 5, 6], 'db1') |
| 158 | >>> cA |
| 159 | array([ 2.12132034, 4.94974747, 7.77817459]) |
| 160 | >>> cD |
| 161 | array([-0.70710678, -0.70710678, -0.70710678]) |
| 162 | |
| 163 | """ |
| 164 | if not _have_c99_complex and np.iscomplexobj(data): |
| 165 | data = np.asarray(data) |
| 166 | cA_r, cD_r = dwt(data.real, wavelet, mode, axis) |
| 167 | cA_i, cD_i = dwt(data.imag, wavelet, mode, axis) |
| 168 | return (cA_r + 1j*cA_i, cD_r + 1j*cD_i) |
| 169 | |
| 170 | # accept array_like input; make a copy to ensure a contiguous array |
| 171 | dt = _check_dtype(data) |
| 172 | data = np.asarray(data, dtype=dt, order='C') |
| 173 | mode = Modes.from_object(mode) |
| 174 | wavelet = _as_wavelet(wavelet) |
| 175 | |
| 176 | if axis < 0: |
| 177 | axis = axis + data.ndim |
no test coverage detected