View source: R/GSD_functions.R
ginterpolating | R Documentation |
This function interpolates a graph signal utilizing the Laplacian matrix.
ginterpolating(ad_mat, signal, vertices)
ad_mat |
an weighted adjacency matrix. |
signal |
a graph signal. |
vertices |
specifies vertices for the observed signal. A signal on |
This function interpolates a graph signal utilizing the Laplacian matrix.
a signal with interpolated points.
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
, sgemd
.
#### 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")
# local extrema using graph object
extremaout <- gextrema(as_adjacency_matrix(gsig, attr="weight"), V(gsig)$z)
maxima <- extremaout$maxima_list; minima <- extremaout$minima_list
# Interpolation of upper, lower and mean envelope
uenvelope <- ginterpolating(as_adjacency_matrix(gsig, attr="weight"),
V(gsig)$z, maxima)
lenvelope <- ginterpolating(as_adjacency_matrix(gsig, attr="weight"),
V(gsig)$z, minima)
menvelope <- (uenvelope + lenvelope) / 2
# display a graph signal
gplot(gsig, size=3, legend=FALSE)
# display mean envelope
gplot(gsig, menvelope, size=3, legend=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.