Data structure representing Wavelet Packet decomposition of signal. Parameters ---------- data : 1D ndarray Original data (signal) wavelet : Wavelet object or name string Wavelet used in DWT decomposition and reconstruction mode : str, optional Signa
| 681 | |
| 682 | |
| 683 | class WaveletPacket(Node): |
| 684 | """ |
| 685 | Data structure representing Wavelet Packet decomposition of signal. |
| 686 | |
| 687 | Parameters |
| 688 | ---------- |
| 689 | data : 1D ndarray |
| 690 | Original data (signal) |
| 691 | wavelet : Wavelet object or name string |
| 692 | Wavelet used in DWT decomposition and reconstruction |
| 693 | mode : str, optional |
| 694 | Signal extension mode for the `dwt` and `idwt` decomposition and |
| 695 | reconstruction functions. |
| 696 | maxlevel : int, optional |
| 697 | Maximum level of decomposition. |
| 698 | If None, it will be calculated based on the `wavelet` and `data` |
| 699 | length using `pywt.dwt_max_level`. |
| 700 | axis : int, optional |
| 701 | The axis to transform. |
| 702 | """ |
| 703 | def __init__(self, data, wavelet, mode='symmetric', maxlevel=None, |
| 704 | axis=-1): |
| 705 | super().__init__(None, data, "") |
| 706 | |
| 707 | if not isinstance(wavelet, Wavelet): |
| 708 | wavelet = Wavelet(wavelet) |
| 709 | self.wavelet = wavelet |
| 710 | self.mode = mode |
| 711 | self.axes = axis # self.axes is just an integer for 1D transforms |
| 712 | |
| 713 | if data is not None: |
| 714 | data = np.asarray(data) |
| 715 | if self.axes < 0: |
| 716 | self.axes = self.axes + data.ndim |
| 717 | if not 0 <= self.axes < data.ndim: |
| 718 | raise ValueError("Axis greater than data dimensions") |
| 719 | self.data_size = data.shape |
| 720 | if maxlevel is None: |
| 721 | maxlevel = dwt_max_level(data.shape[self.axes], self.wavelet) |
| 722 | else: |
| 723 | self.data_size = None |
| 724 | |
| 725 | self._maxlevel = maxlevel |
| 726 | |
| 727 | def __reduce__(self): |
| 728 | return (WaveletPacket, |
| 729 | (self.data, self.wavelet, self.mode, self.maxlevel)) |
| 730 | |
| 731 | def reconstruct(self, update=True): |
| 732 | """ |
| 733 | Reconstruct data value using coefficients from subnodes. |
| 734 | |
| 735 | Parameters |
| 736 | ---------- |
| 737 | update : bool, optional |
| 738 | If True (default), then data values will be replaced by |
| 739 | reconstruction values, also in subnodes. |
| 740 | """ |
no outgoing calls
no test coverage detected