Learn R Programming

hht (version 2.1.1)

HHGramImage: Display Hilbert spectrogram

Description

This function displays the Hilbert spectrogram of EMD and EEMD results.

Usage

HHGramImage(hgram, time.span = NULL, freq.span = NULL, amp.span = NULL, 
    blur = NULL, clustergram = FALSE, cluster.span = NULL, imf.list = NULL, 
    fit.line = FALSE, scaling = "none", grid = TRUE, colorbar = TRUE, 
    backcol = c(0, 0, 0), colormap = NULL, pretty = FALSE, ...)

Arguments

hgram
Data structure generated by HHRender.
time.span
Time span to render spectrogram over. NULL will draw the spectrogram over the entire signal.
freq.span
Frequency span to render spectrogram over. NULL plots everything up to the max frequency set when HHRender was run.
amp.span
This is the amplitude span to plot, everything below is set to backcol, everything above is set to max color, NULL scales to the range in the signal.
blur
Apply a Gaussian smoother. Default NULL - no smoothing
blur$bleed determines whether to allow values to bleed out of the domain of the image. Default TRUE

Value

  • imgThe spectrogram image, suitable for plotting with the generic image function

item

  • clustergram
  • cluster.span
  • imf.list
  • fit.line
  • scaling
  • grid
  • colorbar
  • backcol
  • colormap
  • pretty
  • ...
  • img.x.format
  • img.y.format
  • colorbar.format
  • cex.lab
  • cex.colorbar
  • cex.trace
  • img.x.lab
  • img.y.lab
  • main

code

rainbow

itemize

  • trace.format

Details

This function plots the image generated by HHRender along with the original signal trace. The plotter can use data from both EMD and EEMD runs. When it plots EEMD data, it shows the time frequency plot of every single trial at once. The cluster.span option is useful in this case because it can distinguish ``signal'' (pixels where multiple trials intersect) from ``noise'' (whether from EEMD or from nature) where only one trial contributes data.

See Also

FTGramImage, HHRender, HHSpecPlot

Examples

Run this code
data(PortFosterEvent)

trials <- 10
nimf <- 10
noise.amp <- 6.4e-07
trials.dir <- "test"

set.seed(628)
#Run EEMD (this may take some time)
EEMD(sig, tt, noise.amp, trials, nimf, trials.dir = trials.dir)

#Compile the results
EEMD.result <- EEMDCompile(trials.dir, trials, nimf)

#Calculate spectrogram
dt  <-  0.1
dfreq  <-  0.1
hgram <- HHRender(EEMD.result, dt, dfreq)


#Plot spectrogram 
time.span <- c(4, 10)
freq.span <- c(0, 25)
HHGramImage(hgram, time.span, freq.span,  
pretty = TRUE, img.x.format = "%.1f", img.y.format = "%.0f", 
main = "Port Foster event - ensemble Hilbert spectrogram")

#Plot intersections

HHGramImage(hgram, time.span, freq.span, amp.span = c(1, 5),  
clustergram = TRUE, pretty = TRUE, img.x.format = "%.1f", colorbar.format = "%.0f",
img.y.format = "%.0f", main = "Port Foster event - signal stability")

#Decluster
#show only areas with stable signal 
#i.e. each pixel has data from at least 3 EEMD trials
HHGramImage(hgram, time.span = time.span, freq.span = freq.span,
cluster.span = c(, 10), pretty = TRUE, img.x.format = "%.1f", 
img.y.format = "%.0f",
main = "Port Foster event - ensemble Hilbert spectrogram")

#Log amplitude plot

HHGramImage(hgram, time.span = time.span, freq.span = freq.span,
scaling = "log", pretty = TRUE, img.x.format = "%.1f", img.y.format = "%.0f",
main = "Port Foster event - ensemble Hilbert spectrogram with log amplitude")

#Log frequency plot
dfreq <- 0.001
hgram=HHRender(EEMD.result, dt, dfreq, scaling = "log")
HHGramImage(hgram, time.span, freq.span = c(0, 2),          
pretty = TRUE, img.x.format = "%.1f", img.y.format = "%.2f",
img.y.lab = "log frequency",
main = "Port Foster event - ensemble Hilbert spectrogram with log frequency")

#Only show IMF 1
dfreq <- 0.1
hgram=HHRender(EEMD.result, dt, dfreq, combine.imfs = FALSE)
HHGramImage(hgram, time.span, freq.span, imf.list = 1,
pretty = TRUE, img.x.format = "%.1f", img.y.format = "%.0f",
main = "Port Foster event - ensemble Hilbert spectrogram of IMF 1")

Run the code above in your browser using DataLab