PySDKit 0.4.49__tar.gz → 0.4.50__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 (203) hide show
  1. {pysdkit-0.4.49 → pysdkit-0.4.50}/PKG-INFO +3 -3
  2. {pysdkit-0.4.49 → pysdkit-0.4.50}/PySDKit.egg-info/PKG-INFO +3 -3
  3. {pysdkit-0.4.49 → pysdkit-0.4.50}/PySDKit.egg-info/SOURCES.txt +6 -1
  4. {pysdkit-0.4.49 → pysdkit-0.4.50}/README.md +2 -2
  5. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/__init__.py +7 -6
  6. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_acmd/acmd.py +5 -7
  7. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_acmd/ba_acmd.py +4 -12
  8. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_acmd/dd_acmd.py +15 -7
  9. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/__init__.py +0 -2
  10. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/hht/hht.py +2 -2
  11. pysdkit-0.4.50/pysdkit/_emd/remd.py +481 -0
  12. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/tvf_emd.py +127 -156
  13. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_ewt/__init__.py +5 -1
  14. pysdkit-0.4.50/pysdkit/_ewt/efd.py +319 -0
  15. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ddacmd.py +6 -2
  16. pysdkit-0.4.50/pysdkit/tests/test_efd.py +278 -0
  17. pysdkit-0.4.50/pysdkit/tests/test_hht.py +294 -0
  18. pysdkit-0.4.50/pysdkit/tests/test_mvmd.py +208 -0
  19. pysdkit-0.4.50/pysdkit/tests/test_remd.py +200 -0
  20. pysdkit-0.4.50/pysdkit/tests/test_tvfemd.py +182 -0
  21. pysdkit-0.4.49/pysdkit/_emd/efd.py +0 -203
  22. pysdkit-0.4.49/pysdkit/_emd/remd.py +0 -544
  23. {pysdkit-0.4.49 → pysdkit-0.4.50}/LICENSE +0 -0
  24. {pysdkit-0.4.49 → pysdkit-0.4.50}/PySDKit.egg-info/dependency_links.txt +0 -0
  25. {pysdkit-0.4.49 → pysdkit-0.4.50}/PySDKit.egg-info/requires.txt +0 -0
  26. {pysdkit-0.4.49 → pysdkit-0.4.50}/PySDKit.egg-info/top_level.txt +0 -0
  27. {pysdkit-0.4.49 → pysdkit-0.4.50}/pyproject.toml +0 -0
  28. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_acmd/__init__.py +0 -0
  29. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/_find_extrema.py +0 -0
  30. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/_prepare_points.py +0 -0
  31. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/_splines.py +0 -0
  32. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/ceemdan.py +0 -0
  33. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/eemd.py +0 -0
  34. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/emd.py +0 -0
  35. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/esmd.py +0 -0
  36. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/hht/__init__.py +0 -0
  37. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/hht/frequency.py +0 -0
  38. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/memd.py +0 -0
  39. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd/semd.py +0 -0
  40. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd2d/__init__.py +0 -0
  41. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd2d/bemd.py +0 -0
  42. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd2d/bmemd.py +0 -0
  43. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_emd2d/emd2d.py +0 -0
  44. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_ewt/ewt.py +0 -0
  45. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_ewt/ewt2d.py +0 -0
  46. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/__init__.py +0 -0
  47. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/extrema.py +0 -0
  48. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/faemd.py +0 -0
  49. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/faemd2d.py +0 -0
  50. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/faemd3d.py +0 -0
  51. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_faemd/filter.py +0 -0
  52. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_gdmd/__init__.py +0 -0
  53. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_gdmd/agncmd.py +0 -0
  54. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_gdmd/gdmd.py +0 -0
  55. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_gdmd/ivgnmd.py +0 -0
  56. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_gdmd/vgnmd.py +0 -0
  57. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_imd/__init__.py +0 -0
  58. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_imd/apmd.py +0 -0
  59. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_imd/data/gearbox_fault_snippet.npy +0 -0
  60. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_imd/data/input_sig.npy +0 -0
  61. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_imd/imd.py +0 -0
  62. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_jmd/__init__.py +0 -0
  63. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_jmd/jmd.py +0 -0
  64. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_jmd/mjmd.py +0 -0
  65. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_jmd/sjmd.py +0 -0
  66. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_lmd/__init__.py +0 -0
  67. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_lmd/lmd.py +0 -0
  68. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_lmd/rlmd.py +0 -0
  69. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_osd/__init__.py +0 -0
  70. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_osd/components.py +0 -0
  71. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_osd/osd.py +0 -0
  72. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_osd/swd.py +0 -0
  73. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/__init__.py +0 -0
  74. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/data/__init__.py +0 -0
  75. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/data/dual_signal_noise.npy +0 -0
  76. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/data/map2.npy +0 -0
  77. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/data/single_nsignal.npy +0 -0
  78. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tfa/vtfmtd.py +0 -0
  79. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/__init__.py +0 -0
  80. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/alif.py +0 -0
  81. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/data/__init__.py +0 -0
  82. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/data/prefixed_double_filter.npy +0 -0
  83. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/fmd.py +0 -0
  84. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/hvd.py +0 -0
  85. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/itd.py +0 -0
  86. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/iterative_filtering.py +0 -0
  87. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_tid/ssa.py +0 -0
  88. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/__init__.py +0 -0
  89. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/avmd.py +0 -0
  90. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/base.py +0 -0
  91. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/mvmd.py +0 -0
  92. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/namvmd.py +0 -0
  93. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/ovmd.py +0 -0
  94. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/stvmd.py +0 -0
  95. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/svmd.py +0 -0
  96. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/vmd_c.py +0 -0
  97. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/vmd_f.py +0 -0
  98. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd/vme.py +0 -0
  99. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd2d/__init__.py +0 -0
  100. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd2d/cvmd2d.py +0 -0
  101. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vmd2d/vmd2d.py +0 -0
  102. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vncmd/__init__.py +0 -0
  103. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vncmd/avncmd.py +0 -0
  104. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vncmd/incmd.py +0 -0
  105. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vncmd/stnbmd.py +0 -0
  106. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/_vncmd/vncmd.py +0 -0
  107. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/__init__.py +0 -0
  108. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_add_noise.py +0 -0
  109. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_cube.py +0 -0
  110. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_generator.py +0 -0
  111. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_image.py +0 -0
  112. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_models.py +0 -0
  113. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_test_univariate.py +0 -0
  114. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/_time_series.py +0 -0
  115. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/fmd_demo.npy +0 -0
  116. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/texture.txt +0 -0
  117. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/data/vmd_example.npy +0 -0
  118. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/entropy/__init__.py +0 -0
  119. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/entropy/_approxiamte_entropy.py +0 -0
  120. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/entropy/_permutation_entropy.py +0 -0
  121. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/entropy/_sample_entropy.py +0 -0
  122. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/models/__init__.py +0 -0
  123. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/models/_base.py +0 -0
  124. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/models/_kmeans.py +0 -0
  125. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/models/_knn.py +0 -0
  126. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/models/_pca.py +0 -0
  127. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/__init__.py +0 -0
  128. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/_fourier_spectra.py +0 -0
  129. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/_functions.py +0 -0
  130. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/_plot_images.py +0 -0
  131. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/_plot_imfs.py +0 -0
  132. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/plot/_plot_signal.py +0 -0
  133. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/__init__.py +0 -0
  134. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/data/__init__.py +0 -0
  135. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/data/test_generator_cube.py +0 -0
  136. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/data/test_generator_image.py +0 -0
  137. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/data/test_generator_signal.py +0 -0
  138. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/data/test_generator_univariate_signal.py +0 -0
  139. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/models/__init__.py +0 -0
  140. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/models/test_knn.py +0 -0
  141. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/models/test_pca.py +0 -0
  142. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/run_all.py +0 -0
  143. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_acmd.py +0 -0
  144. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_agncmd.py +0 -0
  145. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_alif.py +0 -0
  146. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_apmd.py +0 -0
  147. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_avncmd.py +0 -0
  148. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_baacmd.py +0 -0
  149. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_bmemd.py +0 -0
  150. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ceemdan.py +0 -0
  151. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_cvmd2d.py +0 -0
  152. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_eemd.py +0 -0
  153. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_emd.py +0 -0
  154. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_esmd.py +0 -0
  155. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ewt.py +0 -0
  156. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ewt2d.py +0 -0
  157. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_faemd.py +0 -0
  158. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_faemd2d.py +0 -0
  159. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_faemd3d.py +0 -0
  160. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_fmd.py +0 -0
  161. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_gdmd.py +0 -0
  162. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_hvd.py +0 -0
  163. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_imd.py +0 -0
  164. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_itd.py +0 -0
  165. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ivgnmd.py +0 -0
  166. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_jmd.py +0 -0
  167. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_lmd.py +0 -0
  168. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_moving_decomp.py +0 -0
  169. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_mstl.py +0 -0
  170. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_osd.py +0 -0
  171. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ovmd.py +0 -0
  172. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_rlmd.py +0 -0
  173. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_semd.py +0 -0
  174. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_sjmd.py +0 -0
  175. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_ssa.py +0 -0
  176. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_stl.py +0 -0
  177. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_stnbmd.py +0 -0
  178. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_stvmd.py +0 -0
  179. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_svmd.py +0 -0
  180. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_swd.py +0 -0
  181. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_vgnmd.py +0 -0
  182. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_vmd.py +0 -0
  183. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_vmd2d.py +0 -0
  184. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_vncmd.py +0 -0
  185. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tests/test_vtfmtd.py +0 -0
  186. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tsa/__init__.py +0 -0
  187. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tsa/_dtw.py +0 -0
  188. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tsa/_moving_decomp.py +0 -0
  189. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tsa/_mstl.py +0 -0
  190. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/tsa/_stl.py +0 -0
  191. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/__init__.py +0 -0
  192. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_correlation.py +0 -0
  193. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_diagnalization.py +0 -0
  194. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_differ.py +0 -0
  195. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_fft.py +0 -0
  196. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_function.py +0 -0
  197. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_hilbert.py +0 -0
  198. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_instantaneous.py +0 -0
  199. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_kernel_matrix.py +0 -0
  200. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_mirror.py +0 -0
  201. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_process.py +0 -0
  202. {pysdkit-0.4.49 → pysdkit-0.4.50}/pysdkit/utils/_smooth1d.py +0 -0
  203. {pysdkit-0.4.49 → pysdkit-0.4.50}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PySDKit
3
- Version: 0.4.49
3
+ Version: 0.4.50
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
5
  Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
6
6
  Maintainer-email: Whenxuan Wang <wwhenxuan@gmail.com>, RuiZhe Wang <3133986068@qq.com>
@@ -160,7 +160,6 @@ plot_IMFs(signal, IMFs) # per-channel panels
160
160
  | [`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) | ✔️ |
161
161
  | [`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) | ✔️ |
162
162
  | [`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) | ✔️ |
163
- | [`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) | ✔️ |
164
163
  | [`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) | ✔️ |
165
164
  | [`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) | ✔️ |
166
165
  | [`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) | ✔️ |
@@ -174,6 +173,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
174
173
  | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✔️ |
175
174
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/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) | ✔️ |
176
175
  | [`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) | ✔️ |
176
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/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) | ✔️ |
177
177
  | [`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) | ✔️ |
178
178
  | [`VMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/vmd_c.py) (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
179
179
  | [`MVMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/mvmd.py) (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
@@ -198,7 +198,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
198
198
  | [`MJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/mjmd.py) (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=prof_contriblnk) | ✔️ |
199
199
  | [`SJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/sjmd.py) / `SMJMD` (Successive Jump and Mode Decomposition) | [[paper]](https://arxiv.org/abs/2504.08453) | [[code]]() | ✔️ |
200
200
  | [`ESMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/esmd.py) (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✔️ |
201
- | [`STNBMD`]() (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
201
+ | [`STNBMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vncmd/stnbmd.py) (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
202
202
  | [`VTFMTD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tfa/vftmtd.py) (Variational TF Mode Tracking Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168426001179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/183389-variational-time-frequency-mode-tracking-decomposition) | ✔️ |
203
203
  | [`SWD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/swd.py) (Swarm Decomposition) | [[paper]](https://doi.org/10.1016/j.sigpro.2016.09.004) | [[code]](https://github.com/gkaposto/Swarm-Decomposition) | ✔️ |
204
204
  | [`OSD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/osd.py) (Optimization-based Signal Decomposition) | [[paper]](https://web.stanford.edu/~boyd/papers/sig_decomp_mprox.html) | [[code]](https://github.com/cvxgrp/signal-decomposition) | ✔️ |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PySDKit
3
- Version: 0.4.49
3
+ Version: 0.4.50
4
4
  Summary: A Python library for signal decomposition algorithms with a unified interface.
5
5
  Author: Whenxuan Wang, RuiZhe Wang, Rongkun Zhu, Kai Wu, Lei Wang, josefinez, Deeksha Manjunath, Yuan Feng, WenTong Zhao, JacktheFowler
6
6
  Maintainer-email: Whenxuan Wang <wwhenxuan@gmail.com>, RuiZhe Wang <3133986068@qq.com>
@@ -160,7 +160,6 @@ plot_IMFs(signal, IMFs) # per-channel panels
160
160
  | [`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) | ✔️ |
161
161
  | [`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) | ✔️ |
162
162
  | [`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) | ✔️ |
163
- | [`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) | ✔️ |
164
163
  | [`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) | ✔️ |
165
164
  | [`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) | ✔️ |
166
165
  | [`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) | ✔️ |
@@ -174,6 +173,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
174
173
  | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✔️ |
175
174
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/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) | ✔️ |
176
175
  | [`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) | ✔️ |
176
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/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) | ✔️ |
177
177
  | [`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) | ✔️ |
178
178
  | [`VMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/vmd_c.py) (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
179
179
  | [`MVMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/mvmd.py) (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
@@ -198,7 +198,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
198
198
  | [`MJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/mjmd.py) (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=prof_contriblnk) | ✔️ |
199
199
  | [`SJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/sjmd.py) / `SMJMD` (Successive Jump and Mode Decomposition) | [[paper]](https://arxiv.org/abs/2504.08453) | [[code]]() | ✔️ |
200
200
  | [`ESMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/esmd.py) (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✔️ |
201
- | [`STNBMD`]() (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
201
+ | [`STNBMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vncmd/stnbmd.py) (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
202
202
  | [`VTFMTD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tfa/vftmtd.py) (Variational TF Mode Tracking Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168426001179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/183389-variational-time-frequency-mode-tracking-decomposition) | ✔️ |
203
203
  | [`SWD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/swd.py) (Swarm Decomposition) | [[paper]](https://doi.org/10.1016/j.sigpro.2016.09.004) | [[code]](https://github.com/gkaposto/Swarm-Decomposition) | ✔️ |
204
204
  | [`OSD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/osd.py) (Optimization-based Signal Decomposition) | [[paper]](https://web.stanford.edu/~boyd/papers/sig_decomp_mprox.html) | [[code]](https://github.com/cvxgrp/signal-decomposition) | ✔️ |
@@ -17,7 +17,6 @@ pysdkit/_emd/_prepare_points.py
17
17
  pysdkit/_emd/_splines.py
18
18
  pysdkit/_emd/ceemdan.py
19
19
  pysdkit/_emd/eemd.py
20
- pysdkit/_emd/efd.py
21
20
  pysdkit/_emd/emd.py
22
21
  pysdkit/_emd/esmd.py
23
22
  pysdkit/_emd/memd.py
@@ -32,6 +31,7 @@ pysdkit/_emd2d/bemd.py
32
31
  pysdkit/_emd2d/bmemd.py
33
32
  pysdkit/_emd2d/emd2d.py
34
33
  pysdkit/_ewt/__init__.py
34
+ pysdkit/_ewt/efd.py
35
35
  pysdkit/_ewt/ewt.py
36
36
  pysdkit/_ewt/ewt2d.py
37
37
  pysdkit/_faemd/__init__.py
@@ -134,6 +134,7 @@ pysdkit/tests/test_ceemdan.py
134
134
  pysdkit/tests/test_cvmd2d.py
135
135
  pysdkit/tests/test_ddacmd.py
136
136
  pysdkit/tests/test_eemd.py
137
+ pysdkit/tests/test_efd.py
137
138
  pysdkit/tests/test_emd.py
138
139
  pysdkit/tests/test_esmd.py
139
140
  pysdkit/tests/test_ewt.py
@@ -143,6 +144,7 @@ pysdkit/tests/test_faemd2d.py
143
144
  pysdkit/tests/test_faemd3d.py
144
145
  pysdkit/tests/test_fmd.py
145
146
  pysdkit/tests/test_gdmd.py
147
+ pysdkit/tests/test_hht.py
146
148
  pysdkit/tests/test_hvd.py
147
149
  pysdkit/tests/test_imd.py
148
150
  pysdkit/tests/test_itd.py
@@ -151,8 +153,10 @@ pysdkit/tests/test_jmd.py
151
153
  pysdkit/tests/test_lmd.py
152
154
  pysdkit/tests/test_moving_decomp.py
153
155
  pysdkit/tests/test_mstl.py
156
+ pysdkit/tests/test_mvmd.py
154
157
  pysdkit/tests/test_osd.py
155
158
  pysdkit/tests/test_ovmd.py
159
+ pysdkit/tests/test_remd.py
156
160
  pysdkit/tests/test_rlmd.py
157
161
  pysdkit/tests/test_semd.py
158
162
  pysdkit/tests/test_sjmd.py
@@ -162,6 +166,7 @@ pysdkit/tests/test_stnbmd.py
162
166
  pysdkit/tests/test_stvmd.py
163
167
  pysdkit/tests/test_svmd.py
164
168
  pysdkit/tests/test_swd.py
169
+ pysdkit/tests/test_tvfemd.py
165
170
  pysdkit/tests/test_vgnmd.py
166
171
  pysdkit/tests/test_vmd.py
167
172
  pysdkit/tests/test_vmd2d.py
@@ -107,7 +107,6 @@ plot_IMFs(signal, IMFs) # per-channel panels
107
107
  | [`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) | ✔️ |
108
108
  | [`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) | ✔️ |
109
109
  | [`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) | ✔️ |
110
- | [`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) | ✔️ |
111
110
  | [`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) | ✔️ |
112
111
  | [`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) | ✔️ |
113
112
  | [`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) | ✔️ |
@@ -121,6 +120,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
121
120
  | [`FMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/fmd.py) (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✔️ |
122
121
  | [`SSA`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tid/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) | ✔️ |
123
122
  | [`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) | ✔️ |
123
+ | [`EFD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_ewt/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) | ✔️ |
124
124
  | [`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) | ✔️ |
125
125
  | [`VMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/vmd_c.py) (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
126
126
  | [`MVMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vmd/mvmd.py) (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
@@ -145,7 +145,7 @@ plot_IMFs(signal, IMFs) # per-channel panels
145
145
  | [`MJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/mjmd.py) (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=prof_contriblnk) | ✔️ |
146
146
  | [`SJMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_jmd/sjmd.py) / `SMJMD` (Successive Jump and Mode Decomposition) | [[paper]](https://arxiv.org/abs/2504.08453) | [[code]]() | ✔️ |
147
147
  | [`ESMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_emd/esmd.py) (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✔️ |
148
- | [`STNBMD`]() (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
148
+ | [`STNBMD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_vncmd/stnbmd.py) (Short-Time Narrow-Band Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0022460X16002443?via%3Dihub) | [[code]](https://ww2.mathworks.cn/matlabcentral/fileexchange/56226-short-time-narrow-band-mode-decomposition-stnbmd-toolbox) | ✔️ |
149
149
  | [`VTFMTD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_tfa/vftmtd.py) (Variational TF Mode Tracking Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168426001179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/183389-variational-time-frequency-mode-tracking-decomposition) | ✔️ |
150
150
  | [`SWD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/swd.py) (Swarm Decomposition) | [[paper]](https://doi.org/10.1016/j.sigpro.2016.09.004) | [[code]](https://github.com/gkaposto/Swarm-Decomposition) | ✔️ |
151
151
  | [`OSD`](https://github.com/wwhenxuan/PySDKit/blob/main/pysdkit/_osd/osd.py) (Optimization-based Signal Decomposition) | [[paper]](https://web.stanford.edu/~boyd/papers/sig_decomp_mprox.html) | [[code]](https://github.com/cvxgrp/signal-decomposition) | ✔️ |
@@ -2,7 +2,7 @@
2
2
  A Python library for signal decomposition algorithms.
3
3
  """
4
4
 
5
- __version__ = "0.4.49"
5
+ __version__ = "0.4.50"
6
6
 
7
7
  # Empirical Mode Decomposition
8
8
  from ._emd import EMD
@@ -25,9 +25,6 @@ from ._emd import SEMD
25
25
  # Time Varying Filter based Empirical Mode Decomposition
26
26
  from ._emd import TVF_EMD
27
27
 
28
- # Empirical Fourier Decomposition
29
- from ._emd import EFD
30
-
31
28
  # Fast and Adaptive Empirical Mode Decomposition
32
29
  from ._faemd import FAEMD, FAEMD2D, FAEMD3D
33
30
 
@@ -130,6 +127,9 @@ from ._imd import APMD, IMD, imd
130
127
  # Empirical Wavelet Transform
131
128
  from ._ewt import ewt, EWT
132
129
 
130
+ # Empirical Fourier Decomposition (spectrum segmentation + ideal filter bank)
131
+ from ._ewt import efd, EFD
132
+
133
133
  # Empirical Wavelet Transform for 2D Images
134
134
  from ._ewt import ewt2d, EWT2D
135
135
 
@@ -188,7 +188,6 @@ Robust Empirical Mode Decomposition | REMD
188
188
  Multivariate Empirical Mode Decomposition | MEMD
189
189
  Serial Empirical Mode Decomposition | SEMD
190
190
  Time Varying Filter based EMD | TVF_EMD
191
- Empirical Fourier Decomposition | EFD
192
191
  Fast and Adaptive Empirical Mode Decomposition | FAEMD
193
192
  Bidimensional FAEMD | FAEMD2D
194
193
  Tridimensional FAEMD | FAEMD3D
@@ -223,6 +222,7 @@ Variational TF Mode Tracking Decomposition | VTFMTD
223
222
  Adaptive Polymorphic Mode Decomposition | APMD
224
223
  Impulsive Mode Decomposition | IMD
225
224
  Empirical Wavelet Transform | EWT
225
+ Empirical Fourier Decomposition | EFD
226
226
  Empirical Wavelet Transform for 2D Image | EWT2D
227
227
  Jump Plus AM-FM Mode Decomposition | JMD
228
228
  Multivariate Jump Plus AM-FM Mode Decomposition | MJMD
@@ -245,7 +245,6 @@ __all__ = [
245
245
  "MEMD",
246
246
  "SEMD",
247
247
  "TVF_EMD",
248
- "EFD",
249
248
  "FAEMD",
250
249
  "FAEMD2D",
251
250
  "FAEMD3D",
@@ -298,6 +297,8 @@ __all__ = [
298
297
  "imd",
299
298
  "ewt",
300
299
  "EWT",
300
+ "efd",
301
+ "EFD",
301
302
  "ewt2d",
302
303
  "EWT2D",
303
304
  "JMD",
@@ -146,7 +146,7 @@ def stft(
146
146
  win_len = int(np.ceil(win_len / 2.0) * 2)
147
147
  t_win = np.linspace(-1.0, 1.0, win_len)
148
148
  sigma = 0.28
149
- win_fun = (np.pi * sigma**2) ** (-0.25) * np.exp((- (t_win**2)) / (2.0 * sigma**2))
149
+ win_fun = (np.pi * sigma**2) ** (-0.25) * np.exp((-(t_win**2)) / (2.0 * sigma**2))
150
150
  lh = (win_len - 1) / 2.0
151
151
 
152
152
  spec = np.zeros((n_fft, sig_len), dtype=complex)
@@ -199,9 +199,9 @@ def _spsolve_safe(a, b: np.ndarray) -> np.ndarray:
199
199
  """Sparse solve with dense lstsq fallback (MATLAB ``\\`` robustness)."""
200
200
  x = spsolve(a, b)
201
201
  if not np.all(np.isfinite(x)):
202
- x = np.linalg.lstsq(a.toarray(), np.asarray(b, dtype=float).ravel(), rcond=None)[
203
- 0
204
- ]
202
+ x = np.linalg.lstsq(
203
+ a.toarray(), np.asarray(b, dtype=float).ravel(), rcond=None
204
+ )[0]
205
205
  return np.asarray(x, dtype=float).ravel()
206
206
 
207
207
 
@@ -275,9 +275,7 @@ class ACMD(Base):
275
275
  return peak_fre * np.ones(N, dtype=float)
276
276
 
277
277
  @staticmethod
278
- def differ(
279
- y: np.ndarray, delta: float, dtype: np.dtype = np.float64
280
- ) -> np.ndarray:
278
+ def differ(y: np.ndarray, delta: float, dtype: np.dtype = np.float64) -> np.ndarray:
281
279
  """Instance-accessible wrapper around module-level ``differ``."""
282
280
  out = differ(y, delta)
283
281
  return np.asarray(out, dtype=dtype)
@@ -81,9 +81,7 @@ def gini_squared_envelope(signal: np.ndarray) -> float:
81
81
  return float(1.0 - 2.0 * temp / (np.linalg.norm(se, 1) + np.finfo(float).eps))
82
82
 
83
83
 
84
- def extract_if_ia(
85
- y: np.ndarray, fs: float
86
- ) -> Tuple[np.ndarray, np.ndarray]:
84
+ def extract_if_ia(y: np.ndarray, fs: float) -> Tuple[np.ndarray, np.ndarray]:
87
85
  """
88
86
  Instantaneous frequency / amplitude via padded analytic signal
89
87
  (MATLAB ``IFIAextrc``).
@@ -190,15 +188,11 @@ def coef_overcomplete_fourier(
190
188
  if (j + 1) > half:
191
189
  k = (j + 1) - half
192
190
  tmatrix_inte[:, j] = (
193
- -1.0
194
- / (2.0 * np.pi * f0 * k)
195
- * np.cos(2.0 * np.pi * f0 * k * dt)
191
+ -1.0 / (2.0 * np.pi * f0 * k) * np.cos(2.0 * np.pi * f0 * k * dt)
196
192
  )
197
193
 
198
194
  eye_m = np.eye(order_amp)
199
- coeff = np.linalg.solve(
200
- alpha * eye_m + tmatrix.T @ tmatrix, tmatrix.T @ f
201
- )
195
+ coeff = np.linalg.solve(alpha * eye_m + tmatrix.T @ tmatrix, tmatrix.T @ f)
202
196
  fitf = tmatrix @ coeff
203
197
  finte = tmatrix_inte @ coeff
204
198
  return fitf, finte
@@ -232,9 +226,7 @@ def spectrum_trend_generate(
232
226
 
233
227
  # Local minima of the spectrum trend
234
228
  minima, _ = find_peaks(-spec_trend)
235
- temp_index = np.concatenate(
236
- ([0], minima.astype(int), [freq_bin.size - 1])
237
- )
229
+ temp_index = np.concatenate(([0], minima.astype(int), [freq_bin.size - 1]))
238
230
 
239
231
  temp_frn = temp_index[:-1]
240
232
  temp_end = temp_index[1:]
@@ -107,9 +107,7 @@ def phase_arccos(g: np.ndarray) -> np.ndarray:
107
107
  return theta
108
108
 
109
109
 
110
- def low_filter(
111
- sig: np.ndarray, cut_freq: float, samp_freq: float
112
- ) -> np.ndarray:
110
+ def low_filter(sig: np.ndarray, cut_freq: float, samp_freq: float) -> np.ndarray:
113
111
  """
114
112
  Linear-phase FIR low-pass with delay compensation (MATLAB ``low_filter``).
115
113
 
@@ -283,13 +281,19 @@ def generate_nonstationary_demo(
283
281
  """MATLAB Test (noisy non-stationary) mixture."""
284
282
  t = np.arange(0.0, duration, 1.0 / fs)
285
283
  a1 = 1.0 + 0.3 * np.cos(2.0 * np.pi * t)
286
- sig1 = a1 * np.cos(2.0 * np.pi * (8 * t**3 + 16 * t**2 + 80 * t) + np.sin(10 * np.pi * t))
284
+ sig1 = a1 * np.cos(
285
+ 2.0 * np.pi * (8 * t**3 + 16 * t**2 + 80 * t) + np.sin(10 * np.pi * t)
286
+ )
287
287
  if1 = 24 * t**2 + 32 * t + 80 + 5 * np.cos(10 * np.pi * t)
288
288
  a2 = 1.0 + 0.3 * np.cos(2.0 * np.pi * t + np.pi / 4)
289
- sig2 = a2 * np.cos(2.0 * np.pi * (6 * t**3 + 12 * t**2 + 60 * t) + np.sin(10 * np.pi * t))
289
+ sig2 = a2 * np.cos(
290
+ 2.0 * np.pi * (6 * t**3 + 12 * t**2 + 60 * t) + np.sin(10 * np.pi * t)
291
+ )
290
292
  if2 = 18 * t**2 + 24 * t + 60 + 5 * np.cos(10 * np.pi * t)
291
293
  a3 = 1.0 + 0.3 * np.cos(2.0 * np.pi * t + np.pi / 2)
292
- sig3 = a3 * np.cos(2.0 * np.pi * (4 * t**3 + 8 * t**2 + 40 * t) + np.sin(10 * np.pi * t))
294
+ sig3 = a3 * np.cos(
295
+ 2.0 * np.pi * (4 * t**3 + 8 * t**2 + 40 * t) + np.sin(10 * np.pi * t)
296
+ )
293
297
  if3 = 12 * t**2 + 16 * t + 40 + 5 * np.cos(10 * np.pi * t)
294
298
  clean = sig1 + sig2 + sig3
295
299
  noisy = clean + add_noise(clean.size, 0.0, noise_std, rng=rng)
@@ -318,7 +322,11 @@ def generate_close_modes_demo(
318
322
  sig3 = np.exp(-0.3 * t) * np.cos(2.0 * np.pi * (-60 * t**3 + 180 * t**2 + 80 * t))
319
323
  if3 = -180 * t**2 + 360 * t + 80
320
324
  clean = sig1 + sig2 + sig3
321
- noisy = clean + add_noise(clean.size, 0.0, noise_std, rng=rng) if noise_std > 0 else clean.copy()
325
+ noisy = (
326
+ clean + add_noise(clean.size, 0.0, noise_std, rng=rng)
327
+ if noise_std > 0
328
+ else clean.copy()
329
+ )
322
330
  return {
323
331
  "t": t,
324
332
  "fs": fs,
@@ -21,8 +21,6 @@ from .memd import MEMD
21
21
 
22
22
  from .tvf_emd import TVF_EMD
23
23
 
24
- from .efd import EFD
25
-
26
24
  from .hht import HHT
27
25
 
28
26
  from .semd import SEMD, concatenate_signals, deconcatenate_imfs, transition_bridge
@@ -70,9 +70,9 @@ class HHT(object):
70
70
  elif self.algorithm == "REMD":
71
71
  return REMD(max_imfs=self.max_imfs)
72
72
  elif self.algorithm == "EEMD":
73
- return EEMD(self.max_imfs)
73
+ return EEMD(max_imfs=self.max_imfs)
74
74
  elif self.algorithm == "CEEMDAN":
75
- return CEEMDAN(self.max_imfs)
75
+ return CEEMDAN(max_imfs=self.max_imfs)
76
76
  else:
77
77
  raise ValueError("algorithm must be EMD, REMD, EEMD or CEEMDAN!")
78
78