View source: R/GSD_functions.R
sgemd | R Documentation |
This function performs statistical graph empirical mode decomposition.
sgemd(graph, nimf, smoothing = FALSE, smlevels = c(1),
boundary = FALSE, reflperc = 0.3, reflaver = FALSE,
connperc = 0.05, connweight = "boundary",
tol = 0.1^3, max.sift = 50, verbose = FALSE)
graph |
an igraph graph object with vertex attributes of coordinates |
nimf |
specifies the maximum number of intrinsic mode functions (IMF). |
smoothing |
specifies whether intrinsic mode functions are constructed by interpolating or smoothing envelopes.
When |
smlevels |
specifies which level of the IMF is obtained by smoothing other than interpolation. |
boundary |
When |
reflperc |
expand a graph by adding specified percentage of a graph at the boundary when |
reflaver |
specifies the method assigning signal to reflected vertices.
When |
connperc |
specifies percentage of a graph for connecting a given graph and reflected graph when |
connweight |
specifies the method assigning the edge weights for connecting a given graph and reflected graph
when |
tol |
tolerance for stopping rule of sifting. |
max.sift |
the maximum number of sifting. |
verbose |
specifies whether sifting steps are displayed. |
This function performs statistical graph empirical mode decomposition utilizing extrema detection of a graph signal.
imf |
list of IMF's according to the frequencies with |
residue |
residue signal after extracting IMF's. |
nimf |
the number of IMF's. |
n_extrema |
Each row specifies the number of local maxima and local minima of the remaining signal after extracting the i-th IMF. The first row represents the number of local maxima and local minima of a given signal. |
Huang, N. E., Shen, Z., Long, S. R., Wu, M. C., Shih, H. H., Zheng, Q., Yen, N.- C., Tung, C. C., and Liu, H. H. (1998). The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis. Proceedings of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences, 454(1971), 903–-995. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1098/rspa.1998.0193")}
Johnstone, I. and Silverman, B.~W. (2004). Needles and straw in haystacks: empirical Bayes estimates of possibly sparse sequences. The Annals of Statistics, 32, 594–1649. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1214/009053604000000030")}
Kim, D., Kim, K. O., and Oh, H.-S. (2012a). Extending the scope of empirical mode decomposition by smoothing. EURASIP Journal on Advances in Signal Processing, 2012, 1–17. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1186/1687-6180-2012-168")}
Kim, D., Park, M., and Oh, H.-S. (2012b). Bidimensional statistical empirical mode decomposition. IEEE Signal Processing Letters, 19(4), 191–194. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1109/LSP.2012.2186566")}
Ortega, A., Frossard, P., Kovačević, J., Moura, J. M. F., and Vandergheynst, P. (2018). Graph signal processing: overview, challenges, and applications. Proceedings of the IEEE 106, 808–828. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1109/JPROC.2018.2820126")}
Shuman, D. I., Narang, S. K., Frossard, P., Ortega, A., and Vandergheynst, P. (2013). The emerging field of signal processing on graphs: Extending high-dimensional data analysis to networks and other irregular domains. IEEE Signal Processing Magazine, 30(3), 83–98. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1109/MSP.2012.2235192")}
Tremblay, N., Borgnat, P., and Flandrin, P. (2014). Graph empirical mode decomposition. 22nd European Signal Processing Conference (EUSIPCO), 2350–2354
Zeng, J., Cheung, G., and Ortega, A. (2017). Bipartite approximation for graph wavelet signal decomposition. IEEE Transactions on Signal Processing, 65(20), 5466–5480. \Sexpr[results=rd]{tools:::Rd_expr_doi("https://doi.org/10.1109/TSP.2017.2733489")}
gextrema
, gsmoothing
, ginterpolating
.
#### example : composite of two components having different frequencies
## define vertex coordinate
x <- y <- seq(0, 1, length=30)
xy <- expand.grid(x=x, y=y)
## weighted adjacency matrix by Gaussian kernel
## for connecting vertices within distance 0.04
A <- adjmatrix(xy, method = "dist", 0.04)
## signal
# high-frequency component
signal1 <- rep(sin(12.5*pi*x - 1.25*pi), 30)
# low-frequency component
signal2 <- rep(sin(5*pi*x - 0.5*pi), 30)
# composite signal
signal0 <- signal1 + signal2
# noisy signal with SNR(signal-to-noise ratio)=5
signal <- signal0 + rnorm(900, 0, sqrt(var(signal0) / 5))
# graph with signal
gsig <- gsignal(vertex = cbind(xy, signal), edge = A, edgetype = "matrix")
# graph empirical mode decomposition (GEMD) without boundary treatment
out1 <- sgemd(gsig, nimf=3, smoothing=FALSE, boundary=FALSE)
# denoised signal by GEMD
dsignal1 <- out1$imf[[2]] + out1$imf[[3]] + out1$residue
# statistical graph empirical mode decomposition (SGEMD) with boundary treatment
out2 <- sgemd(gsig, nimf=3, smoothing=TRUE, boundary=TRUE)
names(out2)
# denoised signal by SGEMD
dsignal2 <- out2$imf[[2]] + out2$imf[[3]] + out2$residue
# display of a signal, denoised signal, imf2, imf3 and residue by SGEMD
gplot(gsig, size=3)
gplot(gsig, dsignal2, size=3)
gplot(gsig, out2$imf[[2]], size=3)
gplot(gsig, out2$imf[[3]], size=3)
gplot(gsig, out2$residue, size=3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.