(Lapped) Hierarchical Graph Laplacian Eigen Transform
MultiscaleGraphSignalTransforms.HGLET.HGLET_Analysis
MultiscaleGraphSignalTransforms.HGLET.HGLET_Analysis_All
MultiscaleGraphSignalTransforms.HGLET.HGLET_BestBasis
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_BestBasis
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_BestBasis_minrelerror
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_Synthesis
MultiscaleGraphSignalTransforms.HGLET.HGLET_Synthesis
MultiscaleGraphSignalTransforms.HGLET.HGLET_jkl
MultiscaleGraphSignalTransforms.HGLET_dictionary
MultiscaleGraphSignalTransforms.LPHGLET_Analysis_All
MultiscaleGraphSignalTransforms.LPHGLET_Synthesis
MultiscaleGraphSignalTransforms.LPHGLET_dictionary
MultiscaleGraphSignalTransforms.HGLET.HGLET_Analysis
— Functionfunction HGLET_Analysis(G::GraphSig, GP::GraphPart, gltype::Symbol = :L)
For a GraphSig object 'G', generate the matrix of HGLET expansion
coefficients corresponding to the eigenvectors of specified version of
the graph Laplacian matrix, i.e., either L, Lrw, or Lsym
Input Arguments
G
: a GraphSig objectGP
: a GraphPart objectgltype
: :L, :Lrw, or :Lsym, indicating which eigenvectors are used
Output Argument
dmatrix
: the matrix of expansion coefficients using the specific GL matrix
MultiscaleGraphSignalTransforms.HGLET.HGLET_Analysis_All
— Methodfunction HGLETAnalysisAll(G::GraphSig, GP::GraphPart)
For a GraphSig object 'G', generate the 3 matrices of HGLET expansion
coefficients corresponding to the eigenvectors of L, Lrw and Lsym
Input Arguments
G
: a GraphSig objectGP
: a GraphPart object
Output Argument
dmatrixH
: the matrix of expansion coefficients for LdmatrixHrw
: the matrix of expansion coefficients for LrwdmatrixHsym
: the matrix of expansion coefficients for Lsym
MultiscaleGraphSignalTransforms.HGLET.HGLET_BestBasis
— Methodfunction HGLET_BestBasis(GP::GraphPart; dmatrix::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), gltype::Symbol = :L, cfspec::Any = 0.1, flatten::Any = 1)
Select the HGLET best basis from the input matrix of expansion coefficients
Input Arguments
GP
: a GraphPart objectdmatrix
: the matrix of HGLET expansion coefficientsgltype
: the type of graph Laplacian matrix used for HGLET dictionary (default = :L)cfspec
: the cost functional specification to be used: see utils.jl for the detail. If it's a number, say, p, then the l^p norm is used. If it's a function, then that function is used. Default is 0.1, i.e., l^0.1flatten
: the method for flattening vector-valued data to scalar-valued data; If it's a number, say, p, then the sum of the l^p norm is computed. There are many other options, such as :ash, :entropy, etc. See utils.jl for the detail. Default is 1, i.e, the sum of the l^1 norm of the coefs.
Output Argument
dvec
: the vector of expansion coefficients corresponding to the bestbasisBS
: a BasisSpec object which specifies the best basis
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_BestBasis
— Methodfunction HGLETGHWTBestBasis(GP::GraphPart; dmatrixH::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixHrw::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixHsym::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixG::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), cfspec::Any = 0.1,flatten::Any = 1)
Select the best basis from several matrices of expansion coefficients
Input Arguments
dmatrixH
: the matrix of HGLET expansion coefficients ==> eigenvectors of LdmatrixHrw
: the matrix of HGLET expansion coefficients ==> eigenvectors of LrwdmatrixHsym
: the matrix of HGLET expansion coefficients ==> eigenvectors of LsymdmatrixG
: the matrix of GHWT expansion coefficientsGP
: a GraphPart objectcfspec
: the cost functional specification to be used: see utils.jl for the detail. If it's a number, say, p, then the l^p norm is used. If it's a function, then that function is used. Default is 0.1, i.e., l^0.1flatten
: the method for flattening vector-valued data to scalar-valued data; If it's a number, say, p, then the sum of the l^p norm is computed. There are many other options, such as :ash, :entropy, etc. See utils.jl for the detail. Default is 1, i.e, the sum of the l^1 norm of the coefs.
Output Argument
dvec
: the vector of expansion coefficients corresponding to the bestbasisBS
: a BasisSpec object which specifies the best basistrans
: specifies which transform was used for that portion of the signal: 00 = HGLET with L 01 = HGLET with Lrw 10 = HGLET with Lsym 11 = GHWT
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_BestBasis_minrelerror
— Methodfunction HGLETGHWTBestBasis_minrelerror(GP::GraphPart, G::GraphSig; dmatrixH::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixHrw::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixHsym::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), dmatrixG::Array{Float64,3} = Array{Float64,3}(undef,0,0,0), compare::Bool = true)
Find the best basis for approximating the signal 'G' by performing the
best basis search with a range of tau-measures as cost functionals
(tau = 0.1,0.2,...,1.9) and minimizing the relative error.
Input argument:
dmatrixH
: the matrix of HGLET expansion coefficients ==> eigenvectors of LdmatrixHrw
: the matrix of HGLET expansion coefficients ==> eigenvectors of LrwdmatrixHsym
: the matrix of HGLET expansion coefficients ==> eigenvectors of LsymdmatrixG
: the matrix of GHWT expansion coefficientsGP
: a GraphPart objectG
: the GraphSig objectcompare
: if it is false, don't compare the hybrid best basis to the GHWT fine-to-coarse best basis
Output argument:
dvec
: the vector of expansion coefficients corresponding to the bestbasisBS
: a BasisSpec object which specifies the best basistrans
: specifies which transform was used for that portion of the signal 00 = HGLET with L 01 = HGLET with Lrw 10 = HGLET with Lsym 11 = GHWTtau
: the tau that yields the smallest relative error
MultiscaleGraphSignalTransforms.HGLET.HGLET_GHWT_Synthesis
— Methodfunction HGLETGHWTSynthesis(dvec::Matrix{Float64},GP::GraphPart,BS::BasisSpec,trans::Array{Bool,2},G::GraphSig)
Given a vector of HGLET & GHWT expansion coefficients, info about the
graph partitioning, and the choice of basis and corresponding transforms,
reconstruct the signal.
Input Arguments
dvec
: the expansion coefficients corresponding to the chosen basisGP
: a GraphPart objectBS
: a BasisSpec objecttrans
: a specification of the transforms used for the HGLET-GHWT hybrid transform 00 = HGLET with L 01 = HGLET with Lrw 10 = HGLET with Lsym 11 = GHWTG
: a GraphSig object
Output Argument
f
: the reconstructed signalGS
: the reconstructed GraphSig object
MultiscaleGraphSignalTransforms.HGLET.HGLET_Synthesis
— Methodfunction HGLET_Synthesis(dvec::Vector{Float64}, GP::GraphPart, BS::BasisSpec, G::GraphSig; gltype::Symbol = :L)
Input Arguments
dvec
: the expansion coefficients corresponding to the chosen basisGP
: a GraphPart objectBS
: a BasisSpec objectG
: a GraphSig objectgltype
: :L, :Lrw, or :Lsym, indicating which eigenvectors are used
Output Argument
f
: the reconstructed signalGS
: the reconstructed GraphSig object
MultiscaleGraphSignalTransforms.HGLET.HGLET_jkl
— Methodfunction HGLET_jkl(GP::GraphPart, drow::Int, dcol::Int)
Generate the (j,k,l) indices for the HGLET basis vector corresponding to
the coefficient dmatrix(drow,dcol)
Input Arguments
GP
: a GraphPart objectdrow
: the row of the expansion coefficientdcol
: the column of the expansion coefficient
Output Argument
j
: the level index of the expansion coefficientk
: the subregion index of the expansion coefficientl
: the eigenvector index of the expansion coefficient
MultiscaleGraphSignalTransforms.HGLET_dictionary
— MethodHGLET_dictionary(GP::GraphPart, G::GraphSig; gltype::Symbol = :L)
assemble the whole HGLET dictionary
Input Arguments
GP
: a GraphPart objectG
: a GraphSig objectgltype
::L
or:Lsym
Output Argument
dictionary
: the HGLET dictionary
MultiscaleGraphSignalTransforms.LPHGLET_Analysis_All
— Methodfunction LPHGLET_Analysis_All(G::GraphSig, GP::GraphPart; ϵ::Float64 = 0.3)
For a GraphSig object 'G', generate the 2 matrices of Lapped-HGLET expansion coefficients corresponding to the eigenvectors of L and Lsym
Input Arguments
G
: a GraphSig objectGP
: a GraphPart objectϵ
: relative action bandwidth (default: 0.3)
Output Argument
dmatrixlH
: the matrix of expansion coefficients for LdmatrixlHsym
: the matrix of expansion coefficients for LsymGP
: a GraphPart object
MultiscaleGraphSignalTransforms.LPHGLET_Synthesis
— Methodfunction LPHGLET_Synthesis(dvec::Vector{Float64}, GP::GraphPart, BS::BasisSpec, G::GraphSig; gltype::Symbol = :L, ϵ::Float64 = 0.3)
Perform Lapped-HGLET Synthesis transform
Input Arguments
dvec
: the expansion coefficients corresponding to the chosen basisGP
: a GraphPart objectBS
: a BasisSpec objectG
: a GraphSig objectgltype
: :L or :Lsym, indicating which eigenvectors are usedϵ
: relative action bandwidth (default: 0.3)
Output Argument
f
: the reconstructed signalGS
: the reconstructed GraphSig object
MultiscaleGraphSignalTransforms.LPHGLET_dictionary
— MethodLPHGLET_dictionary(GP::GraphPart, G::GraphSig; gltype::Symbol = :L, ϵ::Float64 = 0.3)
assemble the whole LP-HGLET dictionary
Input Arguments
GP
: a GraphPart objectG
: a GraphSig objectgltype
::L
or:Lsym
ϵ
: relative action bandwidth (default: 0.3)
Output Argument
dictionary
: the LP-HGLET dictionary