PySDKit 0.4.16__tar.gz → 0.4.18__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. {pysdkit-0.4.16 → pysdkit-0.4.18}/PKG-INFO +20 -8
  2. {pysdkit-0.4.16 → pysdkit-0.4.18}/PySDKit.egg-info/PKG-INFO +20 -8
  3. {pysdkit-0.4.16 → pysdkit-0.4.18}/PySDKit.egg-info/SOURCES.txt +7 -0
  4. pysdkit-0.4.18/PySDKit.egg-info/requires.txt +5 -0
  5. {pysdkit-0.4.16 → pysdkit-0.4.18}/README.md +5 -3
  6. pysdkit-0.4.18/pysdkit/__init__.py +175 -0
  7. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/__init__.py +4 -0
  8. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/ceemdan.py +3 -3
  9. pysdkit-0.4.18/pysdkit/_emd/efd.py +204 -0
  10. pysdkit-0.4.18/pysdkit/_emd/hht/__init__.py +7 -0
  11. pysdkit-0.4.18/pysdkit/_emd/hht/frequency.py +105 -0
  12. pysdkit-0.4.18/pysdkit/_emd/hht/hht.py +251 -0
  13. pysdkit-0.4.18/pysdkit/_fmd/nfmd.py +25 -0
  14. pysdkit-0.4.18/pysdkit/_osd/__init__.py +21 -0
  15. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vncmd/incmd.py +7 -3
  16. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vncmd/vncmd.py +9 -3
  17. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/__init__.py +4 -1
  18. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/_generator.py +19 -1
  19. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/hht/hht.py +2 -0
  20. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/__init__.py +7 -5
  21. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/_fourier_spectra.py +80 -1
  22. pysdkit-0.4.18/pysdkit/tests/test_ceemdan.py +294 -0
  23. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/__init__.py +8 -0
  24. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_hilbert.py +90 -1
  25. {pysdkit-0.4.16 → pysdkit-0.4.18}/setup.py +4 -4
  26. pysdkit-0.4.16/PySDKit.egg-info/requires.txt +0 -5
  27. pysdkit-0.4.16/pysdkit/__init__.py +0 -112
  28. {pysdkit-0.4.16 → pysdkit-0.4.18}/LICENSE +0 -0
  29. {pysdkit-0.4.16 → pysdkit-0.4.18}/PySDKit.egg-info/dependency_links.txt +0 -0
  30. {pysdkit-0.4.16 → pysdkit-0.4.18}/PySDKit.egg-info/top_level.txt +0 -0
  31. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/_find_extrema.py +0 -0
  32. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/_prepare_points.py +0 -0
  33. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/_splines.py +0 -0
  34. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/eemd.py +0 -0
  35. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/emd.py +0 -0
  36. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/memd.py +0 -0
  37. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/remd.py +0 -0
  38. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd/tvf_emd.py +0 -0
  39. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd2d/__init__.py +0 -0
  40. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd2d/bemd.py +0 -0
  41. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd2d/bmemd.py +0 -0
  42. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_emd2d/emd2d.py +0 -0
  43. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_esmd/__init__.py +0 -0
  44. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_esmd/esmd.py +0 -0
  45. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ewt/__init__.py +0 -0
  46. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ewt/ewt.py +0 -0
  47. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ewt/ewt2d.py +0 -0
  48. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/__init__.py +0 -0
  49. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/extrema.py +0 -0
  50. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/faemd.py +0 -0
  51. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/faemd2d.py +0 -0
  52. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/faemd3d.py +0 -0
  53. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_faemd/filter.py +0 -0
  54. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_fmd/__init__.py +0 -0
  55. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_fmd/fmd.py +0 -0
  56. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_hvd/__init__.py +0 -0
  57. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_hvd/hvd.py +0 -0
  58. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ifd/__init__.py +0 -0
  59. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_itd/__init__.py +0 -0
  60. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_itd/itd.py +0 -0
  61. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_jmd/__init__.py +0 -0
  62. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_jmd/jmd.py +0 -0
  63. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_jmd/mjmd.py +0 -0
  64. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_lmd/__init__.py +0 -0
  65. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_lmd/lmd.py +0 -0
  66. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_lmd/rlmd.py +0 -0
  67. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ssa/__init__.py +0 -0
  68. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_ssa/ssa.py +0 -0
  69. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/__init__.py +0 -0
  70. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/acmd.py +0 -0
  71. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/avmd.py +0 -0
  72. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/ba_acmd.py +0 -0
  73. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/base.py +0 -0
  74. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/mvmd.py +0 -0
  75. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/svmd.py +0 -0
  76. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/vmd_c.py +0 -0
  77. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/vmd_f.py +0 -0
  78. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd/vme.py +0 -0
  79. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd2d/__init__.py +0 -0
  80. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd2d/cvmd2d.py +0 -0
  81. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vmd2d/vmd2d.py +0 -0
  82. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vncmd/__init__.py +0 -0
  83. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vncmd/anvcmd.py +0 -0
  84. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/_vncmd/mncmd.py +0 -0
  85. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/_add_noise.py +0 -0
  86. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/_cube.py +0 -0
  87. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/_image.py +0 -0
  88. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/_time_series.py +0 -0
  89. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/data/texture.txt +0 -0
  90. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/entropy/__init__.py +0 -0
  91. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/entropy/_approxiamte_entropy.py +0 -0
  92. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/entropy/_permutation_entropy.py +0 -0
  93. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/entropy/_sample_entropy.py +0 -0
  94. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/hht/__init__.py +0 -0
  95. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/_functions.py +0 -0
  96. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/_plot_images.py +0 -0
  97. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/_plot_imfs.py +0 -0
  98. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/plot/_plot_signal.py +0 -0
  99. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/__init__.py +0 -0
  100. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_all.py +0 -0
  101. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_emd.py +0 -0
  102. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_ewt.py +0 -0
  103. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_faemd.py +0 -0
  104. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_faemd2d.py +0 -0
  105. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_faemd3d.py +0 -0
  106. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_generator_cube.py +0 -0
  107. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_generator_image.py +0 -0
  108. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_generator_signal.py +0 -0
  109. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_moving_decomp.py +0 -0
  110. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_vmd.py +0 -0
  111. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tests/test_vmd2d.py +0 -0
  112. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/__init__.py +0 -0
  113. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/_dtw.py +0 -0
  114. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/_knn.py +0 -0
  115. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/_moving_decomp.py +0 -0
  116. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/_mstl.py +0 -0
  117. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/tsa/_stl.py +0 -0
  118. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_cite.py +0 -0
  119. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_correlation.py +0 -0
  120. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_diagnalization.py +0 -0
  121. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_differ.py +0 -0
  122. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_fft.py +0 -0
  123. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_function.py +0 -0
  124. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_instantaneous.py +0 -0
  125. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_kernel_matrix.py +0 -0
  126. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_mirror.py +0 -0
  127. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_process.py +0 -0
  128. {pysdkit-0.4.16 → pysdkit-0.4.18}/pysdkit/utils/_smooth1d.py +0 -0
  129. {pysdkit-0.4.16 → pysdkit-0.4.18}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: PySDKit
3
- Version: 0.4.16
3
+ Version: 0.4.18
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
5
  Home-page: https://github.com/wwhenxuan/PySDKit
6
6
  Author: whenxuan
@@ -20,11 +20,21 @@ Classifier: Programming Language :: Python :: 3.10
20
20
  Requires-Python: >=3.6
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: numpy<=1.26.4,>=1.24.3
24
- Requires-Dist: scipy<=1.13.1,>=1.11.1
25
- Requires-Dist: matplotlib<=3.8.4,>=3.7.2
23
+ Requires-Dist: numpy>=1.24.3
24
+ Requires-Dist: scipy>=1.11.1
25
+ Requires-Dist: matplotlib>=3.7.2
26
26
  Requires-Dist: tqdm>=4.66.5
27
27
  Requires-Dist: requests>=2.32.3
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: keywords
35
+ Dynamic: requires-dist
36
+ Dynamic: requires-python
37
+ Dynamic: summary
28
38
 
29
39
  # PySDKit: signal decomposition in Python
30
40
 
@@ -123,10 +133,11 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
123
133
  | [`CEMD`]() (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
124
134
  | [`EEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/eemd.py) (Ensemble Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/topics/physics-and-astronomy/ensemble-empirical-mode-decomposition) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
125
135
  | [`REMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/remd.py) (Robust Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0019057821003785) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/70032-robust-empirical-mode-decomposition-remd) | ✔️ |
126
- | [`EMD2D`]() (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
136
+ | [`EMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/emd2d.py) (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
127
137
  | [`BMEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/bmemd.py) (Bidimensional Multivariate Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8805082) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/72343-bidimensional-multivariate-empirical-mode-decomposition?s_tid=FX_rc1_behav) | ✖️ |
128
138
  | [`CEEMDAN`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/ceemdan.py) (Complete Ensemble EMD with Adaptive Noise) | [[paper]](https://ieeexplore.ieee.org/document/5947265) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
129
139
  | [`TVF_EMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/tvf_emd.py) (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
140
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/efd.py) (Empirical Fourier Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327021005355) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/97747-empirical-fourier-decomposition-efd) | ✔️ |
130
141
  | [`FAEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd.py) (Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✔️ |
131
142
  | [`FAEMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd2d.py) (Two-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
132
143
  | [`FAEMD3D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd3d.py) (Three-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
@@ -135,7 +146,8 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
135
146
  | [`ALIF`]() (Adaptive Local Iterative Filtering) | [[paper]](https://arxiv.org/abs/1411.6051) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56210-alif) | ✖️ |
136
147
  | [`LMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/lmd.py) (Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S1051200418308133?via%3Dihub) | [[code]](https://github.com/shownlin/PyLMD/blob/master/PyLMD/LMD.py) | ✔️ |
137
148
  | [`RLMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/rlmd.py) (Robust Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327017301619) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/66935-robust-local-mean-decomposition-rlmd) | ✖️ |
138
- | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
149
+ | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
150
+ | [`NFMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/nfmd.py) (Non-stationary Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://github.com/sheadan/NFMD-ExtractionInstantaneous/blob/master/nfmd/NFMD.py) | ✖️ |
139
151
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ssa/ssa.py) (Singular Spectral Analysis) | [[paper]](https://orca.cardiff.ac.uk/id/eprint/15208/1/Zhiglavsky_SSA_encyclopedia.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/58967-singular-spectrum-analysis-beginners-guide) | ✔️ |
140
152
  | [`EWT`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt.py) (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
141
153
  | [`EWT2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt2d.py) (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
@@ -160,4 +172,4 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
160
172
 
161
173
  ## Acknowledgements 🎖️ <a id="Acknowledgements"></a>
162
174
 
163
- We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools).
175
+ We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools), [signal-decomposition](https://github.com/wwhenxuan/signal-decomposition).
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: PySDKit
3
- Version: 0.4.16
3
+ Version: 0.4.18
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
5
  Home-page: https://github.com/wwhenxuan/PySDKit
6
6
  Author: whenxuan
@@ -20,11 +20,21 @@ Classifier: Programming Language :: Python :: 3.10
20
20
  Requires-Python: >=3.6
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: numpy<=1.26.4,>=1.24.3
24
- Requires-Dist: scipy<=1.13.1,>=1.11.1
25
- Requires-Dist: matplotlib<=3.8.4,>=3.7.2
23
+ Requires-Dist: numpy>=1.24.3
24
+ Requires-Dist: scipy>=1.11.1
25
+ Requires-Dist: matplotlib>=3.7.2
26
26
  Requires-Dist: tqdm>=4.66.5
27
27
  Requires-Dist: requests>=2.32.3
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: keywords
35
+ Dynamic: requires-dist
36
+ Dynamic: requires-python
37
+ Dynamic: summary
28
38
 
29
39
  # PySDKit: signal decomposition in Python
30
40
 
@@ -123,10 +133,11 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
123
133
  | [`CEMD`]() (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
124
134
  | [`EEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/eemd.py) (Ensemble Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/topics/physics-and-astronomy/ensemble-empirical-mode-decomposition) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
125
135
  | [`REMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/remd.py) (Robust Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0019057821003785) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/70032-robust-empirical-mode-decomposition-remd) | ✔️ |
126
- | [`EMD2D`]() (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
136
+ | [`EMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/emd2d.py) (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
127
137
  | [`BMEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/bmemd.py) (Bidimensional Multivariate Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8805082) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/72343-bidimensional-multivariate-empirical-mode-decomposition?s_tid=FX_rc1_behav) | ✖️ |
128
138
  | [`CEEMDAN`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/ceemdan.py) (Complete Ensemble EMD with Adaptive Noise) | [[paper]](https://ieeexplore.ieee.org/document/5947265) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
129
139
  | [`TVF_EMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/tvf_emd.py) (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
140
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/efd.py) (Empirical Fourier Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327021005355) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/97747-empirical-fourier-decomposition-efd) | ✔️ |
130
141
  | [`FAEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd.py) (Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✔️ |
131
142
  | [`FAEMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd2d.py) (Two-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
132
143
  | [`FAEMD3D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd3d.py) (Three-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
@@ -135,7 +146,8 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
135
146
  | [`ALIF`]() (Adaptive Local Iterative Filtering) | [[paper]](https://arxiv.org/abs/1411.6051) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56210-alif) | ✖️ |
136
147
  | [`LMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/lmd.py) (Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S1051200418308133?via%3Dihub) | [[code]](https://github.com/shownlin/PyLMD/blob/master/PyLMD/LMD.py) | ✔️ |
137
148
  | [`RLMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/rlmd.py) (Robust Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327017301619) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/66935-robust-local-mean-decomposition-rlmd) | ✖️ |
138
- | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
149
+ | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
150
+ | [`NFMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/nfmd.py) (Non-stationary Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://github.com/sheadan/NFMD-ExtractionInstantaneous/blob/master/nfmd/NFMD.py) | ✖️ |
139
151
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ssa/ssa.py) (Singular Spectral Analysis) | [[paper]](https://orca.cardiff.ac.uk/id/eprint/15208/1/Zhiglavsky_SSA_encyclopedia.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/58967-singular-spectrum-analysis-beginners-guide) | ✔️ |
140
152
  | [`EWT`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt.py) (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
141
153
  | [`EWT2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt2d.py) (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
@@ -160,4 +172,4 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
160
172
 
161
173
  ## Acknowledgements 🎖️ <a id="Acknowledgements"></a>
162
174
 
163
- We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools).
175
+ We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools), [signal-decomposition](https://github.com/wwhenxuan/signal-decomposition).
@@ -13,6 +13,7 @@ pysdkit/_emd/_prepare_points.py
13
13
  pysdkit/_emd/_splines.py
14
14
  pysdkit/_emd/ceemdan.py
15
15
  pysdkit/_emd/eemd.py
16
+ pysdkit/_emd/efd.py
16
17
  pysdkit/_emd/emd.py
17
18
  pysdkit/_emd/memd.py
18
19
  pysdkit/_emd/remd.py
@@ -21,6 +22,9 @@ pysdkit/_emd2d/__init__.py
21
22
  pysdkit/_emd2d/bemd.py
22
23
  pysdkit/_emd2d/bmemd.py
23
24
  pysdkit/_emd2d/emd2d.py
25
+ pysdkit/_emd/hht/__init__.py
26
+ pysdkit/_emd/hht/frequency.py
27
+ pysdkit/_emd/hht/hht.py
24
28
  pysdkit/_esmd/__init__.py
25
29
  pysdkit/_esmd/esmd.py
26
30
  pysdkit/_ewt/__init__.py
@@ -34,6 +38,7 @@ pysdkit/_faemd/faemd3d.py
34
38
  pysdkit/_faemd/filter.py
35
39
  pysdkit/_fmd/__init__.py
36
40
  pysdkit/_fmd/fmd.py
41
+ pysdkit/_fmd/nfmd.py
37
42
  pysdkit/_hvd/__init__.py
38
43
  pysdkit/_hvd/hvd.py
39
44
  pysdkit/_ifd/__init__.py
@@ -45,6 +50,7 @@ pysdkit/_jmd/mjmd.py
45
50
  pysdkit/_lmd/__init__.py
46
51
  pysdkit/_lmd/lmd.py
47
52
  pysdkit/_lmd/rlmd.py
53
+ pysdkit/_osd/__init__.py
48
54
  pysdkit/_ssa/__init__.py
49
55
  pysdkit/_ssa/ssa.py
50
56
  pysdkit/_vmd/__init__.py
@@ -86,6 +92,7 @@ pysdkit/plot/_plot_imfs.py
86
92
  pysdkit/plot/_plot_signal.py
87
93
  pysdkit/tests/__init__.py
88
94
  pysdkit/tests/test_all.py
95
+ pysdkit/tests/test_ceemdan.py
89
96
  pysdkit/tests/test_emd.py
90
97
  pysdkit/tests/test_ewt.py
91
98
  pysdkit/tests/test_faemd.py
@@ -0,0 +1,5 @@
1
+ numpy>=1.24.3
2
+ scipy>=1.11.1
3
+ matplotlib>=3.7.2
4
+ tqdm>=4.66.5
5
+ requests>=2.32.3
@@ -95,10 +95,11 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
95
95
  | [`CEMD`]() (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
96
96
  | [`EEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/eemd.py) (Ensemble Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/topics/physics-and-astronomy/ensemble-empirical-mode-decomposition) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
97
97
  | [`REMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/remd.py) (Robust Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0019057821003785) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/70032-robust-empirical-mode-decomposition-remd) | ✔️ |
98
- | [`EMD2D`]() (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
98
+ | [`EMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/emd2d.py) (Empirical Mode Decomposition 2D for images) | [[paper]](http://aquador.vovve.net/IEMD/) | [[code]](http://aquador.vovve.net/IEMD/) | ✔️ |
99
99
  | [`BMEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd2d/bmemd.py) (Bidimensional Multivariate Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8805082) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/72343-bidimensional-multivariate-empirical-mode-decomposition?s_tid=FX_rc1_behav) | ✖️ |
100
100
  | [`CEEMDAN`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/ceemdan.py) (Complete Ensemble EMD with Adaptive Noise) | [[paper]](https://ieeexplore.ieee.org/document/5947265) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✔️ |
101
101
  | [`TVF_EMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/tvf_emd.py) (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
102
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/efd.py) (Empirical Fourier Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327021005355) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/97747-empirical-fourier-decomposition-efd) | ✔️ |
102
103
  | [`FAEMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd.py) (Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✔️ |
103
104
  | [`FAEMD2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd2d.py) (Two-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
104
105
  | [`FAEMD3D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_faemd/faemd3d.py) (Three-Dimensional Fast and Adaptive EMD) | [[paper]](https://ieeexplore.ieee.org/document/8447300) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
@@ -107,7 +108,8 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
107
108
  | [`ALIF`]() (Adaptive Local Iterative Filtering) | [[paper]](https://arxiv.org/abs/1411.6051) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56210-alif) | ✖️ |
108
109
  | [`LMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/lmd.py) (Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S1051200418308133?via%3Dihub) | [[code]](https://github.com/shownlin/PyLMD/blob/master/PyLMD/LMD.py) | ✔️ |
109
110
  | [`RLMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_lmd/rlmd.py) (Robust Local Mean Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0888327017301619) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/66935-robust-local-mean-decomposition-rlmd) | ✖️ |
110
- | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
111
+ | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
112
+ | [`NFMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_fmd/nfmd.py) (Non-stationary Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://github.com/sheadan/NFMD-ExtractionInstantaneous/blob/master/nfmd/NFMD.py) | ✖️ |
111
113
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ssa/ssa.py) (Singular Spectral Analysis) | [[paper]](https://orca.cardiff.ac.uk/id/eprint/15208/1/Zhiglavsky_SSA_encyclopedia.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/58967-singular-spectrum-analysis-beginners-guide) | ✔️ |
112
114
  | [`EWT`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt.py) (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
113
115
  | [`EWT2D`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/ewt2d.py) (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
@@ -132,4 +134,4 @@ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
132
134
 
133
135
  ## Acknowledgements 🎖️ <a id="Acknowledgements"></a>
134
136
 
135
- We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools).
137
+ We would like to thank the researchers in signal processing for providing us with valuable algorithms and promoting the continuous progress in this field. However, since the main programming language used in `signal processing` is `Matlab`, and `Python` is the main battlefield of `machine learning` and `deep learning`, the usage of signal decomposition in machine learning and deep learning is far less extensive than `wavelet transformation`. In order to further promote the organic combination of signal decomposition and machine learning, we developed `PySDKit`. We would like to express our gratitude to [PyEMD](https://github.com/laszukdawid/PyEMD), [Sktime](https://www.sktime.net/en/latest/index.html), [Scikit-learn](https://scikit-learn.org/stable/), [Scikit-Image](https://scikit-image.org/docs/stable/), [statsmodels](https://www.statsmodels.org/stable/index.html), [vmdpy](https://github.com/vrcarva/vmdpy), [MEMD-Python-](https://github.com/mariogrune/MEMD-Python-), [ewtpy](https://github.com/vrcarva/ewtpy), [EWT-Python](https://github.com/bhurat/EWT-Python), [PyLMD](https://github.com/shownlin/PyLMD), [pywt](https://github.com/PyWavelets/pywt), [SP_Lib](https://github.com/hustcxl/SP_Lib)and [dsatools](https://github.com/MVRonkin/dsatools), [signal-decomposition](https://github.com/wwhenxuan/signal-decomposition).
@@ -0,0 +1,175 @@
1
+ """
2
+ A Python library for signal decomposition algorithms.
3
+ """
4
+
5
+ __version__ = "0.4.18"
6
+
7
+ # Empirical Mode Decomposition
8
+ from ._emd import EMD
9
+
10
+ # Ensemble Empirical Mode Decomposition
11
+ from ._emd import EEMD
12
+
13
+ # Complete Ensemble Empirical Mode Decomposition with Adaptive Noise
14
+ from ._emd import CEEMDAN
15
+
16
+ # Robust Empirical Mode Decomposition
17
+ from ._emd import REMD
18
+
19
+ # Multivariate Empirical Mode Decomposition
20
+ from ._emd import MEMD
21
+
22
+ # Time Varying Filter based Empirical Mode Decomposition
23
+ from ._emd import TVF_EMD
24
+
25
+ # Empirical Fourier Decomposition
26
+ from ._emd import EFD
27
+
28
+ # Fast and Adaptive Empirical Mode Decomposition
29
+ from ._faemd import FAEMD
30
+
31
+ # Empirical Mode Decomposition 2D for images
32
+ from ._emd2d import EMD2D
33
+
34
+ # Hilbert Vibration Decomposition
35
+ from ._hvd import HVD
36
+
37
+ # Intrinsic Time-Scale Decomposition
38
+ from ._itd import ITD
39
+
40
+ # Local Mean Decomposition
41
+ from ._lmd import LMD
42
+
43
+ # Robust Local Mean Decomposition
44
+ from ._lmd import RLMD
45
+
46
+ # Singular Spectral Analysis
47
+ from ._ssa import SSA
48
+
49
+ # Variational Mode Decomposition
50
+ from ._vmd import vmd, VMD
51
+
52
+ # Adaptive Chirp Mode Decomposition
53
+ from ._vmd import ACMD
54
+
55
+ # Multivariate Variational Mode Decomposition
56
+ from ._vmd import MVMD
57
+
58
+ # Variational Mode Extraction, to extract a specific mode from the signal
59
+ from ._vmd import VME
60
+
61
+ # Variational Mode Decomposition for 2D Image
62
+ from ._vmd2d import VMD2D
63
+
64
+ # Compact Variational Mode Decomposition for 2D Images
65
+ from ._vmd2d import CVMD2D
66
+
67
+ # Variational Nonlinear Chirp Mode Decomposition
68
+ from ._vncmd import VNCMD
69
+
70
+ # Iterative Nonlinear Chirp Mode Decomposition
71
+ from ._vncmd import INCMD
72
+
73
+ # Empirical Wavelet Transform
74
+ from ._ewt import ewt, EWT
75
+
76
+ # Jump Plus AM-FM Mode Decomposition
77
+ from ._jmd import JMD
78
+
79
+ # Moving Average Decomposition
80
+ from .tsa import Moving_Decomp
81
+
82
+ # Hilbert-Huang Transform
83
+ from ._emd import HHT
84
+
85
+
86
+ def greet():
87
+ print(
88
+ """
89
+ ____ ____ ____ _ __ _ _
90
+ | _ \ _ _ / ___| | _ \ | |/ /(_)| |_
91
+ | |_) || | | |\___ \ | | | || ' / | || __|
92
+ | __/ | |_| | ___) || |_| || . \ | || |_
93
+ |_| \__, ||____/ |____/ |_|\_\|_| \__|
94
+ |___/
95
+
96
+ A Python library for signal decomposition algorithms.
97
+ https://github.com/wwhenxuan/PySDKit
98
+ """
99
+ )
100
+
101
+
102
+ def print_functions():
103
+ """"""
104
+ print(
105
+ """
106
+ _______________________________________________________________
107
+ Algorithm Name | Abbreviation
108
+ _______________________________________________________________
109
+ Empirical Mode Decomposition | EMD
110
+ Ensemble Empirical Mode Decomposition | EEMD
111
+ Complete Ensemble EMD with Adaptive Noise | CEEMDAN
112
+ Robust Empirical Mode Decomposition | REMD
113
+ Multivariate Empirical Mode Decomposition | MEMD
114
+ Time Varying Filter based EMD | TVF_EMD
115
+ Empirical Fourier Decomposition | EFD
116
+ Fast and Adaptive Empirical Mode Decomposition | FAEMD
117
+ Empirical Mode Decomposition 2D for images | EMD2D
118
+ Hilbert Vibration Decomposition | HVD
119
+ Intrinsic Time-Scale Decomposition | ITD
120
+ Local Mean Decomposition | LMD
121
+ Robust Local Mean Decomposition | RLMD
122
+ Singular Spectral Analysis | SSA
123
+ Variational Mode Decomposition | VMD
124
+ Multivariate Variational Mode Decomposition | MVMD
125
+ Variational Mode Extraction | VME
126
+ Variational Mode Decomposition for 2D Image | VMD2D
127
+ Compact VMD for 2D Image | CVMD2D
128
+ Variational Nonlinear Chirp Mode Decomposition | VNCMD
129
+ Iterative Nonlinear Chirp Mode Decomposition | INCMD
130
+ Empirical Wavelet Transform | EWT
131
+ Jump Plus AM-FM Mode Decomposition | JMD
132
+ Moving Average Decomposition | Moving
133
+ Hilbert-Huang Transform | HHT
134
+ _______________________________________________________________
135
+ """
136
+ )
137
+
138
+
139
+ __all__ = [
140
+ "EMD",
141
+ "EEMD",
142
+ "CEEMDAN",
143
+ "REMD",
144
+ "MEMD",
145
+ "TVF_EMD",
146
+ "EFD",
147
+ "FAEMD",
148
+ "EMD2D",
149
+ "HVD",
150
+ "ITD",
151
+ "LMD",
152
+ "RLMD",
153
+ "SSA",
154
+ "vmd",
155
+ "VMD",
156
+ "ACMD",
157
+ "MVMD",
158
+ "VME",
159
+ "CVMD2D",
160
+ "VNCMD",
161
+ "INCMD",
162
+ "ewt",
163
+ "EWT",
164
+ "JMD",
165
+ "Moving_Decomp",
166
+ "data",
167
+ "entropy",
168
+ "HHT",
169
+ "plot",
170
+ "tsa",
171
+ "utils",
172
+ "greet",
173
+ "print_functions",
174
+ "__version__",
175
+ ]
@@ -21,3 +21,7 @@ from .remd import REMD
21
21
  from .memd import MEMD
22
22
 
23
23
  from .tvf_emd import TVF_EMD
24
+
25
+ from .efd import EFD
26
+
27
+ from .hht import HHT
@@ -119,7 +119,7 @@ class CEEMDAN(object):
119
119
  self,
120
120
  signal: np.ndarray,
121
121
  time: Optional[np.ndarray] = None,
122
- max_imfs: Optional[int] = None,
122
+ max_imfs: Optional[int] = -1,
123
123
  progress: bool = False,
124
124
  ) -> np.ndarray:
125
125
  """allow instances to be called like functions"""
@@ -177,7 +177,7 @@ class CEEMDAN(object):
177
177
  self,
178
178
  signal: np.ndarray,
179
179
  time: Optional[np.ndarray] = None,
180
- max_imfs: Optional[int] = None,
180
+ max_imfs: Optional[int] = -1,
181
181
  progress: Optional[bool] = True,
182
182
  ) -> np.ndarray:
183
183
  """Perform the specified EEMD algorithm to obtain the corresponding signal decomposition results."""
@@ -328,7 +328,7 @@ class CEEMDAN(object):
328
328
  self,
329
329
  signal: np.ndarray,
330
330
  time: Optional[np.ndarray] = None,
331
- max_imfs: Optional[int] = None,
331
+ max_imfs: Optional[int] = -1,
332
332
  progress: bool = False,
333
333
  ) -> np.ndarray:
334
334
  """