PySDKit 0.4.7__tar.gz → 0.4.10__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 (76) hide show
  1. pysdkit-0.4.10/PKG-INFO +149 -0
  2. pysdkit-0.4.10/PySDKit.egg-info/PKG-INFO +149 -0
  3. {PySDKit-0.4.7 → pysdkit-0.4.10}/PySDKit.egg-info/SOURCES.txt +26 -9
  4. pysdkit-0.4.10/README.md +114 -0
  5. pysdkit-0.4.10/pysdkit/__init__.py +29 -0
  6. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/data/__init__.py +3 -0
  7. pysdkit-0.4.10/pysdkit/data/image.py +23 -0
  8. pysdkit-0.4.10/pysdkit/ewt/__init__.py +9 -0
  9. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/ewt/ewt.py +51 -39
  10. pysdkit-0.4.10/pysdkit/faemd/__init__.py +6 -0
  11. pysdkit-0.4.10/pysdkit/faemd/faemd.py +24 -0
  12. pysdkit-0.4.10/pysdkit/faemd/md_faemd.py +24 -0
  13. pysdkit-0.4.10/pysdkit/faemd/mv_faemd.py +24 -0
  14. pysdkit-0.4.10/pysdkit/fmd/__init__.py +6 -0
  15. pysdkit-0.4.10/pysdkit/fmd/fmd.py +176 -0
  16. pysdkit-0.4.10/pysdkit/ifd/__init__.py +7 -0
  17. pysdkit-0.4.10/pysdkit/itd/__init__.py +7 -0
  18. pysdkit-0.4.10/pysdkit/itd/itd.py +158 -0
  19. pysdkit-0.4.10/pysdkit/lmd/__init__.py +9 -0
  20. pysdkit-0.4.10/pysdkit/lmd/lmd.py +250 -0
  21. pysdkit-0.4.10/pysdkit/lmd/rlmd.py +23 -0
  22. pysdkit-0.4.10/pysdkit/plot/__init__.py +14 -0
  23. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/plot/_fourier_spectra.py +2 -1
  24. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/plot/_plot_imfs.py +16 -6
  25. pysdkit-0.4.10/pysdkit/plot/plot_GrayScale.py +49 -0
  26. pysdkit-0.4.10/pysdkit/tvf_emd/__init__.py +7 -0
  27. pysdkit-0.4.10/pysdkit/tvf_emd/tvf_emd.py +554 -0
  28. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/__init__.py +7 -0
  29. pysdkit-0.4.10/pysdkit/utils/instantaneous.py +224 -0
  30. pysdkit-0.4.10/pysdkit/vmd/__init__.py +14 -0
  31. pysdkit-0.4.10/pysdkit/vmd/acmd.py +207 -0
  32. pysdkit-0.4.10/pysdkit/vmd/avmd.py +24 -0
  33. PySDKit-0.4.7/pysdkit/vmd/_mvmd.py → pysdkit-0.4.10/pysdkit/vmd/mvmd.py +6 -3
  34. pysdkit-0.4.10/pysdkit/vmd/svmd.py +324 -0
  35. PySDKit-0.4.7/pysdkit/vmd/_vmd_c.py → pysdkit-0.4.10/pysdkit/vmd/vmd_c.py +13 -8
  36. PySDKit-0.4.7/pysdkit/vmd/_vmd_f.py → pysdkit-0.4.10/pysdkit/vmd/vmd_f.py +5 -4
  37. pysdkit-0.4.10/pysdkit/vmd2d/__init__.py +6 -0
  38. pysdkit-0.4.10/pysdkit/vmd2d/vmd2d.py +19 -0
  39. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/vncmd/vncmd.py +2 -2
  40. {PySDKit-0.4.7 → pysdkit-0.4.10}/setup.py +7 -5
  41. PySDKit-0.4.7/LICENSE +0 -121
  42. PySDKit-0.4.7/PKG-INFO +0 -94
  43. PySDKit-0.4.7/PySDKit.egg-info/PKG-INFO +0 -94
  44. PySDKit-0.4.7/README.md +0 -71
  45. PySDKit-0.4.7/pysdkit/__init__.py +0 -14
  46. PySDKit-0.4.7/pysdkit/ewt/__init__.py +0 -2
  47. PySDKit-0.4.7/pysdkit/metrics/__init__.py +0 -7
  48. PySDKit-0.4.7/pysdkit/plot/__init__.py +0 -2
  49. PySDKit-0.4.7/pysdkit/plot/main.py +0 -4
  50. PySDKit-0.4.7/pysdkit/vmd/__init__.py +0 -4
  51. PySDKit-0.4.7/pysdkit/vmd/_avmd.py +0 -20
  52. PySDKit-0.4.7/pysdkit/vmd/_svmd.py +0 -21
  53. {PySDKit-0.4.7 → pysdkit-0.4.10}/PySDKit.egg-info/dependency_links.txt +0 -0
  54. {PySDKit-0.4.7 → pysdkit-0.4.10}/PySDKit.egg-info/requires.txt +0 -0
  55. {PySDKit-0.4.7 → pysdkit-0.4.10}/PySDKit.egg-info/top_level.txt +0 -0
  56. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/data/_add_noise.py +0 -0
  57. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/data/_generator.py +0 -0
  58. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/BEMD.py +0 -0
  59. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/EMD.py +0 -0
  60. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/__init__.py +0 -0
  61. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/_find_extrema.py +0 -0
  62. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/_prepare_points.py +0 -0
  63. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd/_splines.py +0 -0
  64. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/emd2d/__init__.py +0 -0
  65. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/plot/_functions.py +0 -0
  66. {PySDKit-0.4.7/pysdkit/metrics → pysdkit-0.4.10/pysdkit/utils}/_Index_of_Orthogonality.py +0 -0
  67. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/_differ.py +0 -0
  68. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/_fft.py +0 -0
  69. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/_function.py +0 -0
  70. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/_smooth1d.py +0 -0
  71. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/hilbert.py +0 -0
  72. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/mirror.py +0 -0
  73. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/utils/process.py +0 -0
  74. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/vmd/base.py +0 -0
  75. {PySDKit-0.4.7 → pysdkit-0.4.10}/pysdkit/vncmd/__init__.py +0 -0
  76. {PySDKit-0.4.7 → pysdkit-0.4.10}/setup.cfg +0 -0
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.2
2
+ Name: PySDKit
3
+ Version: 0.4.10
4
+ Summary: A Python library for signal decomposition algorithms with a unified interface.
5
+ Home-page: https://github.com/wwhenxuan/PySDKit
6
+ Author: whenxuan
7
+ Author-email: wwhenxuan@gmail.com
8
+ Keywords: signal decomposition,signal processing,machine learning
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
12
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.6
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Requires-Python: >=3.6
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: numpy<=1.26.4,>=1.24.3
23
+ Requires-Dist: scipy<=1.13.1,>=1.11.1
24
+ Requires-Dist: matplotlib<=3.8.4,>=3.7.2
25
+ Dynamic: author
26
+ Dynamic: author-email
27
+ Dynamic: classifier
28
+ Dynamic: description
29
+ Dynamic: description-content-type
30
+ Dynamic: home-page
31
+ Dynamic: keywords
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
34
+ Dynamic: summary
35
+
36
+ # PySDKit: signal decomposition in Python
37
+
38
+ <div align="center">
39
+
40
+ [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
41
+ ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
42
+ [![codecov](https://codecov.io/gh/wwhenxuan/PySDKit/branch/main/graph/badge.svg?token=YOUR_TOKEN)](https://codecov.io/gh/wwhenxuan/PySDKit)
43
+ [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-brightgreen.svg)](https://arxiv.org/abs/1234.56789)
44
+ [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
45
+ ![Visits Badge](https://badges.pufler.dev/visits/ForestsKing/D3R)
46
+
47
+ A Python library for signal decomposition algorithms 🥳
48
+
49
+ <img src="https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/Logo_sd.png" alt="Logo_sd" width="500"/>
50
+
51
+ </div>
52
+
53
+ ## Installation 🚀
54
+
55
+ You can install `PySDKit` through pip:
56
+
57
+ ~~~
58
+ pip install pysdkit
59
+ ~~~
60
+
61
+ We only used [`NumPy`](https://numpy.org/), [`Scipy`](https://scipy.org/) and [`matplotlib`](https://matplotlib.org/) when developing the project.
62
+
63
+ ## Example script ✨
64
+
65
+ This project integrates simple signal processing methods, signal decomposition and visualization, and builds a general interface similar to [`Scikit-learn`](https://scikit-learn.org/stable/). It is mainly divided into three steps:
66
+ 1. Import the signal decomposition method;
67
+ 2. Create an instance for signal decomposition;
68
+ 3. Use the `fit_transform` method to implement signal decomposition;
69
+ 4. Visualize and analyze the original signal and the intrinsic mode functions IMFs obtained by decomposition.
70
+
71
+ ~~~python
72
+ from pysdkit import EMD
73
+ from pysdkit.data import test_emd
74
+ from pysdkit.plot import plot_IMFs
75
+
76
+ t, signal = test_emd()
77
+
78
+ # create an instance for signal decomposition
79
+ emd = EMD()
80
+ # implement signal decomposition
81
+ IMFs = emd.fit_transform(signal, max_imf=2)
82
+ plot_IMFs(signal, IMFs)
83
+ ~~~
84
+
85
+ ![example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/example.jpg)
86
+
87
+ The EMD in the above example is the most classic [`empirical mode decomposition`](https://www.mathworks.com/help/signal/ref/emd.html) algorithm in signal decomposition. For more complex signals, you can try other algorithms such as variational mode decomposition ([`VMD`](https://ieeexplore.ieee.org/abstract/document/6655981)).
88
+
89
+ ~~~python
90
+ import numpy as np
91
+ from pysdkit import VMD
92
+
93
+ # load new signal
94
+ signal = np.load("./example/example.npy")
95
+
96
+ # use variational mode decomposition
97
+ vmd = VMD(alpha=500, K=3, tau=0.0, tol=1e-9)
98
+ IMFs = vmd.fit_transform(signal=signal)
99
+ print(IMFs.shape)
100
+
101
+ vmd.plot_IMFs(save_figure=True)
102
+ ~~~
103
+
104
+ ![vmd_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/vmd_example.jpg)
105
+
106
+ Better observe the characteristics of the decomposed intrinsic mode function in the frequency domain.
107
+
108
+ ~~~python
109
+ from pysdkit.plot import plot_IMFs_amplitude_spectra
110
+
111
+ # frequency domain visualization
112
+ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
113
+ ~~~
114
+
115
+ ![frequency_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/frequency_example.jpg)
116
+
117
+ ## Target 🎯
118
+
119
+ | Algorithm | Paper | Code | State |
120
+ | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :---: |
121
+ | EMD (Empirical Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/help/signal/ref/emd.html) | ✔️ |
122
+ | MEMD (Multivariate Empirical Mode Decomposition) | [[paper]](https://royalsocietypublishing.org/doi/full/10.1098/rspa.2009.0502) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
123
+ | BEMD (Bidimensional Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0262885603000945) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/BEMD.py) | ✖️ |
124
+ | CEMD (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
125
+ | EEMD (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) | ✖️ |
126
+ | REMD (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) | ✖️ |
127
+ | BMEMD (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
+ | CEEMDAN (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
+ | TVF_EMD (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
130
+ | FAEMD (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
+ | MV_FAEMD (Multivariate 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
+ | MD_FAEMD (Multidimensional 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) | ✖️ |
133
+ | LMD (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) | ✔️ |
134
+ | RLMD (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) | ✖️ |
135
+ | FMD (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
136
+ | EWT (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
137
+ | EWT2D (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
138
+ | VMD (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
139
+ | MVMD (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
140
+ | VMD2D (Two-Dimensional Variational Mode Decomposition) | [[paper]](https://ww3.math.ucla.edu/camreport/cam14-16.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/45918-two-dimensional-variational-mode-decomposition?s_tid=srchtitle) | ✖️ |
141
+ | SVMD (Successive Variational Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168420301535) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/98649-successive-variational-mode-decomposition-svmd-m?s_tid=FX_rc3_behav) | ✖️ |
142
+ | VNCMD (Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/7990179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/64292-variational-nonlinear-chirp-mode-decomposition) | ✔️ |
143
+ | MNCMD (Multivariate Nonlinear Chirp Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0165168420302103) | [[code]]() | ✖️ |
144
+ | AVNCMD (Adaptive Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/9746147) | [[code]](https://github.com/HauLiang/AVNCMD) | ✖️ |
145
+ | ACMD (Adaptive Chirp Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/121373-data-driven-adaptive-chirp-mode-decomposition?s_tid=srchtitle) | ✔️ |
146
+ | BA-ACMD (Bandwidth-aware adaptive chirp mode decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/132792-bandwidth-aware-adaptive-chirp-mode-decomposition-ba-acmd?s_tid=srchtitle) | ✖️ |
147
+ | JMD (Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169388-jump-plus-am-fm-mode-decomposition-jmd?s_tid=prof_contriblnk) | ✖️ |
148
+ | MJMD (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://ms-intl.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=FX_rc2_behav) | ✖️ |
149
+ | ESMD (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✖️ |
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.2
2
+ Name: PySDKit
3
+ Version: 0.4.10
4
+ Summary: A Python library for signal decomposition algorithms with a unified interface.
5
+ Home-page: https://github.com/wwhenxuan/PySDKit
6
+ Author: whenxuan
7
+ Author-email: wwhenxuan@gmail.com
8
+ Keywords: signal decomposition,signal processing,machine learning
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
12
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.6
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Requires-Python: >=3.6
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: numpy<=1.26.4,>=1.24.3
23
+ Requires-Dist: scipy<=1.13.1,>=1.11.1
24
+ Requires-Dist: matplotlib<=3.8.4,>=3.7.2
25
+ Dynamic: author
26
+ Dynamic: author-email
27
+ Dynamic: classifier
28
+ Dynamic: description
29
+ Dynamic: description-content-type
30
+ Dynamic: home-page
31
+ Dynamic: keywords
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
34
+ Dynamic: summary
35
+
36
+ # PySDKit: signal decomposition in Python
37
+
38
+ <div align="center">
39
+
40
+ [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
41
+ ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
42
+ [![codecov](https://codecov.io/gh/wwhenxuan/PySDKit/branch/main/graph/badge.svg?token=YOUR_TOKEN)](https://codecov.io/gh/wwhenxuan/PySDKit)
43
+ [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-brightgreen.svg)](https://arxiv.org/abs/1234.56789)
44
+ [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
45
+ ![Visits Badge](https://badges.pufler.dev/visits/ForestsKing/D3R)
46
+
47
+ A Python library for signal decomposition algorithms 🥳
48
+
49
+ <img src="https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/Logo_sd.png" alt="Logo_sd" width="500"/>
50
+
51
+ </div>
52
+
53
+ ## Installation 🚀
54
+
55
+ You can install `PySDKit` through pip:
56
+
57
+ ~~~
58
+ pip install pysdkit
59
+ ~~~
60
+
61
+ We only used [`NumPy`](https://numpy.org/), [`Scipy`](https://scipy.org/) and [`matplotlib`](https://matplotlib.org/) when developing the project.
62
+
63
+ ## Example script ✨
64
+
65
+ This project integrates simple signal processing methods, signal decomposition and visualization, and builds a general interface similar to [`Scikit-learn`](https://scikit-learn.org/stable/). It is mainly divided into three steps:
66
+ 1. Import the signal decomposition method;
67
+ 2. Create an instance for signal decomposition;
68
+ 3. Use the `fit_transform` method to implement signal decomposition;
69
+ 4. Visualize and analyze the original signal and the intrinsic mode functions IMFs obtained by decomposition.
70
+
71
+ ~~~python
72
+ from pysdkit import EMD
73
+ from pysdkit.data import test_emd
74
+ from pysdkit.plot import plot_IMFs
75
+
76
+ t, signal = test_emd()
77
+
78
+ # create an instance for signal decomposition
79
+ emd = EMD()
80
+ # implement signal decomposition
81
+ IMFs = emd.fit_transform(signal, max_imf=2)
82
+ plot_IMFs(signal, IMFs)
83
+ ~~~
84
+
85
+ ![example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/example.jpg)
86
+
87
+ The EMD in the above example is the most classic [`empirical mode decomposition`](https://www.mathworks.com/help/signal/ref/emd.html) algorithm in signal decomposition. For more complex signals, you can try other algorithms such as variational mode decomposition ([`VMD`](https://ieeexplore.ieee.org/abstract/document/6655981)).
88
+
89
+ ~~~python
90
+ import numpy as np
91
+ from pysdkit import VMD
92
+
93
+ # load new signal
94
+ signal = np.load("./example/example.npy")
95
+
96
+ # use variational mode decomposition
97
+ vmd = VMD(alpha=500, K=3, tau=0.0, tol=1e-9)
98
+ IMFs = vmd.fit_transform(signal=signal)
99
+ print(IMFs.shape)
100
+
101
+ vmd.plot_IMFs(save_figure=True)
102
+ ~~~
103
+
104
+ ![vmd_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/vmd_example.jpg)
105
+
106
+ Better observe the characteristics of the decomposed intrinsic mode function in the frequency domain.
107
+
108
+ ~~~python
109
+ from pysdkit.plot import plot_IMFs_amplitude_spectra
110
+
111
+ # frequency domain visualization
112
+ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
113
+ ~~~
114
+
115
+ ![frequency_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/frequency_example.jpg)
116
+
117
+ ## Target 🎯
118
+
119
+ | Algorithm | Paper | Code | State |
120
+ | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :---: |
121
+ | EMD (Empirical Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/help/signal/ref/emd.html) | ✔️ |
122
+ | MEMD (Multivariate Empirical Mode Decomposition) | [[paper]](https://royalsocietypublishing.org/doi/full/10.1098/rspa.2009.0502) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
123
+ | BEMD (Bidimensional Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0262885603000945) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/BEMD.py) | ✖️ |
124
+ | CEMD (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
125
+ | EEMD (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) | ✖️ |
126
+ | REMD (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) | ✖️ |
127
+ | BMEMD (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
+ | CEEMDAN (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
+ | TVF_EMD (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
130
+ | FAEMD (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
+ | MV_FAEMD (Multivariate 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
+ | MD_FAEMD (Multidimensional 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) | ✖️ |
133
+ | LMD (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) | ✔️ |
134
+ | RLMD (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) | ✖️ |
135
+ | FMD (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
136
+ | EWT (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
137
+ | EWT2D (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
138
+ | VMD (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
139
+ | MVMD (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
140
+ | VMD2D (Two-Dimensional Variational Mode Decomposition) | [[paper]](https://ww3.math.ucla.edu/camreport/cam14-16.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/45918-two-dimensional-variational-mode-decomposition?s_tid=srchtitle) | ✖️ |
141
+ | SVMD (Successive Variational Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168420301535) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/98649-successive-variational-mode-decomposition-svmd-m?s_tid=FX_rc3_behav) | ✖️ |
142
+ | VNCMD (Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/7990179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/64292-variational-nonlinear-chirp-mode-decomposition) | ✔️ |
143
+ | MNCMD (Multivariate Nonlinear Chirp Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0165168420302103) | [[code]]() | ✖️ |
144
+ | AVNCMD (Adaptive Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/9746147) | [[code]](https://github.com/HauLiang/AVNCMD) | ✖️ |
145
+ | ACMD (Adaptive Chirp Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/121373-data-driven-adaptive-chirp-mode-decomposition?s_tid=srchtitle) | ✔️ |
146
+ | BA-ACMD (Bandwidth-aware adaptive chirp mode decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/132792-bandwidth-aware-adaptive-chirp-mode-decomposition-ba-acmd?s_tid=srchtitle) | ✖️ |
147
+ | JMD (Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169388-jump-plus-am-fm-mode-decomposition-jmd?s_tid=prof_contriblnk) | ✖️ |
148
+ | MJMD (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://ms-intl.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=FX_rc2_behav) | ✖️ |
149
+ | ESMD (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✖️ |
@@ -1,4 +1,3 @@
1
- LICENSE
2
1
  README.md
3
2
  setup.py
4
3
  PySDKit.egg-info/PKG-INFO
@@ -10,6 +9,7 @@ pysdkit/__init__.py
10
9
  pysdkit/data/__init__.py
11
10
  pysdkit/data/_add_noise.py
12
11
  pysdkit/data/_generator.py
12
+ pysdkit/data/image.py
13
13
  pysdkit/emd/BEMD.py
14
14
  pysdkit/emd/EMD.py
15
15
  pysdkit/emd/__init__.py
@@ -19,27 +19,44 @@ pysdkit/emd/_splines.py
19
19
  pysdkit/emd2d/__init__.py
20
20
  pysdkit/ewt/__init__.py
21
21
  pysdkit/ewt/ewt.py
22
- pysdkit/metrics/_Index_of_Orthogonality.py
23
- pysdkit/metrics/__init__.py
22
+ pysdkit/faemd/__init__.py
23
+ pysdkit/faemd/faemd.py
24
+ pysdkit/faemd/md_faemd.py
25
+ pysdkit/faemd/mv_faemd.py
26
+ pysdkit/fmd/__init__.py
27
+ pysdkit/fmd/fmd.py
28
+ pysdkit/ifd/__init__.py
29
+ pysdkit/itd/__init__.py
30
+ pysdkit/itd/itd.py
31
+ pysdkit/lmd/__init__.py
32
+ pysdkit/lmd/lmd.py
33
+ pysdkit/lmd/rlmd.py
24
34
  pysdkit/plot/__init__.py
25
35
  pysdkit/plot/_fourier_spectra.py
26
36
  pysdkit/plot/_functions.py
27
37
  pysdkit/plot/_plot_imfs.py
28
- pysdkit/plot/main.py
38
+ pysdkit/plot/plot_GrayScale.py
39
+ pysdkit/tvf_emd/__init__.py
40
+ pysdkit/tvf_emd/tvf_emd.py
41
+ pysdkit/utils/_Index_of_Orthogonality.py
29
42
  pysdkit/utils/__init__.py
30
43
  pysdkit/utils/_differ.py
31
44
  pysdkit/utils/_fft.py
32
45
  pysdkit/utils/_function.py
33
46
  pysdkit/utils/_smooth1d.py
34
47
  pysdkit/utils/hilbert.py
48
+ pysdkit/utils/instantaneous.py
35
49
  pysdkit/utils/mirror.py
36
50
  pysdkit/utils/process.py
37
51
  pysdkit/vmd/__init__.py
38
- pysdkit/vmd/_avmd.py
39
- pysdkit/vmd/_mvmd.py
40
- pysdkit/vmd/_svmd.py
41
- pysdkit/vmd/_vmd_c.py
42
- pysdkit/vmd/_vmd_f.py
52
+ pysdkit/vmd/acmd.py
53
+ pysdkit/vmd/avmd.py
43
54
  pysdkit/vmd/base.py
55
+ pysdkit/vmd/mvmd.py
56
+ pysdkit/vmd/svmd.py
57
+ pysdkit/vmd/vmd_c.py
58
+ pysdkit/vmd/vmd_f.py
59
+ pysdkit/vmd2d/__init__.py
60
+ pysdkit/vmd2d/vmd2d.py
44
61
  pysdkit/vncmd/__init__.py
45
62
  pysdkit/vncmd/vncmd.py
@@ -0,0 +1,114 @@
1
+ # PySDKit: signal decomposition in Python
2
+
3
+ <div align="center">
4
+
5
+ [![PyPI version](https://badge.fury.io/py/PySDKit.svg)](https://pypi.org/project/PySDKit/)
6
+ ![License](https://img.shields.io/github/license/wwhenxuan/PySDKit)
7
+ [![codecov](https://codecov.io/gh/wwhenxuan/PySDKit/branch/main/graph/badge.svg?token=YOUR_TOKEN)](https://codecov.io/gh/wwhenxuan/PySDKit)
8
+ [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-brightgreen.svg)](https://arxiv.org/abs/1234.56789)
9
+ [![Downloads](https://pepy.tech/badge/pysdkit)](https://pepy.tech/project/pysdkit)
10
+ ![Visits Badge](https://badges.pufler.dev/visits/ForestsKing/D3R)
11
+
12
+ A Python library for signal decomposition algorithms 🥳
13
+
14
+ <img src="https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/Logo_sd.png" alt="Logo_sd" width="500"/>
15
+
16
+ </div>
17
+
18
+ ## Installation 🚀
19
+
20
+ You can install `PySDKit` through pip:
21
+
22
+ ~~~
23
+ pip install pysdkit
24
+ ~~~
25
+
26
+ We only used [`NumPy`](https://numpy.org/), [`Scipy`](https://scipy.org/) and [`matplotlib`](https://matplotlib.org/) when developing the project.
27
+
28
+ ## Example script ✨
29
+
30
+ This project integrates simple signal processing methods, signal decomposition and visualization, and builds a general interface similar to [`Scikit-learn`](https://scikit-learn.org/stable/). It is mainly divided into three steps:
31
+ 1. Import the signal decomposition method;
32
+ 2. Create an instance for signal decomposition;
33
+ 3. Use the `fit_transform` method to implement signal decomposition;
34
+ 4. Visualize and analyze the original signal and the intrinsic mode functions IMFs obtained by decomposition.
35
+
36
+ ~~~python
37
+ from pysdkit import EMD
38
+ from pysdkit.data import test_emd
39
+ from pysdkit.plot import plot_IMFs
40
+
41
+ t, signal = test_emd()
42
+
43
+ # create an instance for signal decomposition
44
+ emd = EMD()
45
+ # implement signal decomposition
46
+ IMFs = emd.fit_transform(signal, max_imf=2)
47
+ plot_IMFs(signal, IMFs)
48
+ ~~~
49
+
50
+ ![example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/example.jpg)
51
+
52
+ The EMD in the above example is the most classic [`empirical mode decomposition`](https://www.mathworks.com/help/signal/ref/emd.html) algorithm in signal decomposition. For more complex signals, you can try other algorithms such as variational mode decomposition ([`VMD`](https://ieeexplore.ieee.org/abstract/document/6655981)).
53
+
54
+ ~~~python
55
+ import numpy as np
56
+ from pysdkit import VMD
57
+
58
+ # load new signal
59
+ signal = np.load("./example/example.npy")
60
+
61
+ # use variational mode decomposition
62
+ vmd = VMD(alpha=500, K=3, tau=0.0, tol=1e-9)
63
+ IMFs = vmd.fit_transform(signal=signal)
64
+ print(IMFs.shape)
65
+
66
+ vmd.plot_IMFs(save_figure=True)
67
+ ~~~
68
+
69
+ ![vmd_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/vmd_example.jpg)
70
+
71
+ Better observe the characteristics of the decomposed intrinsic mode function in the frequency domain.
72
+
73
+ ~~~python
74
+ from pysdkit.plot import plot_IMFs_amplitude_spectra
75
+
76
+ # frequency domain visualization
77
+ plot_IMFs_amplitude_spectra(IMFs, smooth="exp") # use exp smooth
78
+ ~~~
79
+
80
+ ![frequency_example](https://raw.githubusercontent.com/wwhenxuan/PySDKit/main/images/frequency_example.jpg)
81
+
82
+ ## Target 🎯
83
+
84
+ | Algorithm | Paper | Code | State |
85
+ | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :---: |
86
+ | EMD (Empirical Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/help/signal/ref/emd.html) | ✔️ |
87
+ | MEMD (Multivariate Empirical Mode Decomposition) | [[paper]](https://royalsocietypublishing.org/doi/full/10.1098/rspa.2009.0502) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/71270-fast-and-adaptive-multivariate-and-multidimensional-emd) | ✖️ |
88
+ | BEMD (Bidimensional Empirical Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0262885603000945) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/BEMD.py) | ✖️ |
89
+ | CEMD (Complex Empirical Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/4063369) | [[code]]() | ✖️ |
90
+ | EEMD (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) | ✖️ |
91
+ | REMD (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) | ✖️ |
92
+ | BMEMD (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) | ✖️ |
93
+ | CEEMDAN (Complete Ensemble EMD with Adaptive Noise) | [[paper]](https://ieeexplore.ieee.org/document/5947265) | [[code]](https://github.com/laszukdawid/PyEMD/blob/master/PyEMD/EEMD.py) | ✖️ |
94
+ | TVF_EMD (Time Varying Filter Based EMD) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168417301135) | [[code]](https://github.com/stfbnc/pytvfemd/tree/master) | ✔️ |
95
+ | FAEMD (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) | ✖️ |
96
+ | MV_FAEMD (Multivariate 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) | ✖️ |
97
+ | MD_FAEMD (Multidimensional 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) | ✖️ |
98
+ | LMD (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) | ✔️ |
99
+ | RLMD (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) | ✖️ |
100
+ | FMD (Feature Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/9732251) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/108099-feature-mode-decomposition-fmd) | ✖️ |
101
+ | EWT (Empirical Wavelet Transform) | [[paper]](https://ieeexplore.ieee.org/document/6522142) | [[code]](https://www.mathworks.com/help/wavelet/ug/empirical-wavelet-transform.html) | ✔️ |
102
+ | EWT2D (2D Empirical Wavelet Transform) | [[paper]](https://arxiv.org/abs/2405.06188) | [[code]](https://github.com/bhurat/EWT-Python) | ✖️ |
103
+ | VMD (Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/6655981) | [[code]](https://github.com/vrcarva/vmdpy) | ✔️ |
104
+ | MVMD (Multivariate Variational Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/8890883) | [[code]](https://github.com/yunyueye/MVMD) | ✔️ |
105
+ | VMD2D (Two-Dimensional Variational Mode Decomposition) | [[paper]](https://ww3.math.ucla.edu/camreport/cam14-16.pdf) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/45918-two-dimensional-variational-mode-decomposition?s_tid=srchtitle) | ✖️ |
106
+ | SVMD (Successive Variational Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/pii/S0165168420301535) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/98649-successive-variational-mode-decomposition-svmd-m?s_tid=FX_rc3_behav) | ✖️ |
107
+ | VNCMD (Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/document/7990179) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/64292-variational-nonlinear-chirp-mode-decomposition) | ✔️ |
108
+ | MNCMD (Multivariate Nonlinear Chirp Mode Decomposition) | [[paper]](https://www.sciencedirect.com/science/article/abs/pii/S0165168420302103) | [[code]]() | ✖️ |
109
+ | AVNCMD (Adaptive Variational Nonlinear Chirp Mode Decomposition) | [[paper]](https://ieeexplore.ieee.org/abstract/document/9746147) | [[code]](https://github.com/HauLiang/AVNCMD) | ✖️ |
110
+ | ACMD (Adaptive Chirp Mode Decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/121373-data-driven-adaptive-chirp-mode-decomposition?s_tid=srchtitle) | ✔️ |
111
+ | BA-ACMD (Bandwidth-aware adaptive chirp mode decomposition) | [[paper]]() | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/132792-bandwidth-aware-adaptive-chirp-mode-decomposition-ba-acmd?s_tid=srchtitle) | ✖️ |
112
+ | JMD (Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://www.mathworks.com/matlabcentral/fileexchange/169388-jump-plus-am-fm-mode-decomposition-jmd?s_tid=prof_contriblnk) | ✖️ |
113
+ | MJMD (Multivariate Jump Plus AM-FM Mode Decomposition) | [[paper]](https://arxiv.org/abs/2407.07800) | [[code]](https://ms-intl.mathworks.com/matlabcentral/fileexchange/169393-multivariate-jump-plus-am-fm-mode-decomposition-mjmd?s_tid=FX_rc2_behav) | ✖️ |
114
+ | ESMD (Extreme-Point Symmetric Mode Decomposition) | [[paper]](https://arxiv.org/abs/1303.6540) | [[code]](https://github.com/WuShichao/esmd) | ✖️ |
@@ -0,0 +1,29 @@
1
+ # 经验模态分解算法
2
+ from .emd import EMD
3
+
4
+ # 基于时变滤波器的经验模态分解
5
+ from .tvf_emd import TVF_EMD
6
+
7
+ # 变分模态分解算法
8
+ from .vmd import vmd, VMD
9
+
10
+ # 自适应调频模态分解
11
+ from .vmd import ACMD
12
+
13
+ # 多元变分模态分解算法
14
+ from .vmd import MVMD
15
+
16
+ # 非线性啁啾模式分解
17
+ from .vncmd import VNCMD
18
+
19
+ # 经验小波变换
20
+ from .ewt import ewt, EWT
21
+
22
+ # 本征时间尺度分解
23
+ from .itd import ITD
24
+
25
+ # 局部均值分解
26
+ from .lmd import LMD
27
+
28
+ # 稳健局部均值分解
29
+ from .lmd import RLMD
@@ -18,3 +18,6 @@ from ._generator import plot_generate_signal
18
18
 
19
19
  # add Gaussian noise
20
20
  from ._add_noise import add_noise
21
+
22
+ # 加载二维灰度图像的测试案例
23
+ from .image import test_grayscale
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Created on 2025/02/02 13:01:46
4
+ @author: Whenxuan Wang
5
+ @email: wwhenxuan@gmail.com
6
+ 生成用于测试二维图像数据的样例
7
+ """
8
+ import numpy as np
9
+ from os import path
10
+
11
+
12
+ def test_grayscale() -> np.ndarray:
13
+ """
14
+ 加载用于测试的二维灰度图像样例
15
+ This data comes from https://www.mathworks.com/matlabcentral/fileexchange/45918-two-dimensional-variational-mode-decomposition
16
+ Konstantin, Dragomiretskiy, and Dominique Zosso. "Two-dimensional variational mode decomposition."
17
+ Energy Minimization Methods in Computer Vision and Pattern Recognition. Vol. 8932. 2015.
18
+ """
19
+ # 获取当前数据的路径
20
+ current_file_path = path.dirname(path.abspath(__file__))
21
+ data_path = path.join(current_file_path, "texture.txt")
22
+ # 读取数据并返回文件
23
+ return np.loadtxt(data_path)
@@ -0,0 +1,9 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Created on 2024/7/12 13:41
4
+ @author: Whenxuan Wang
5
+ @email: wwhenxuan@gmail.com
6
+ """
7
+ from .ewt import ewt
8
+
9
+ from .ewt import EWT