HHRender: Render Hilbert spectrogram

View source: R/rendering_and_plotting.R

HHRenderR Documentation

Render Hilbert spectrogram

Description

This function prepares results from the Hilbert transform of EMD or EEMD results for display using HHGramImage.

Usage

HHRender(hres, dt, dfreq, time.span = NULL, freq.span = NULL, scaling = "none", 
    combine.imfs = TRUE, verbose = TRUE)  

Arguments

hres

This is the output generated by Sig2IMF, EEMDCompile, EEMDResift

, or CEEMD.

dt

Time resolution of spectrogram. Must be greater than the sample rate of the time series to avoid gaps.

dfreq

Frequency resolution of spectrogram.

time.span

Time span to render spectrogram over; NULL means over the whole time series.

freq.span

Frequency span to include in spectrogram; NULL means render all the frequencies in the time series

scaling

If "log", render a log frequency spectrogram. Defaults to "none" (linear).

combine.imfs

If TRUE, add the spectra for all IMFS together in one ensemble Hilbert spectrogram, if FALSE, keep separate so you can investigate individual IMFs in HHGramImage.

verbose

If TRUE, print progress messages.

Details

HHRender processes Hilbert spectral data prior to displaying with HHGramImage. HHRender returns the ensemble Hilbert spectrogram if combine.imfs = TRUE, otherwise it returns an IMF-by-IMF Hilbert spectrogram of dimensions [time, freq, imf]. The user can then choose which IMFs to plot when he or she calls HHGramImage, but this makes HHGramImage run about 40x slower on my machine. The trade off is in speed versus flexibility for HHGramImage; the combine.imfs option does not affect HHRender very much.

Value

hgram

A data structure containing the spectrogram image and other information required by HHGramImage.

Note

The HHRender function also keeps track of which trial contributes what data to the spectrogram. For the EMD, this does not make much sense, because there is only one trial. However, when HHRender is run on EEMD results, it remembers which time/frequency bin gets data from each trial. This is a way to distinguish between noise and signal in data: signal is where multiple trials contribute data to the same time/frequency bin, noise is where only one (or a couple) of trials contribute data. See options for HHGramImage for ways to plot data based on signal stability.

Author(s)

Daniel Bowman danny.c.bowman@gmail.com

See Also

EEMDCompile, HHGramImage

Examples

data(PortFosterEvent)

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

set.seed(628)
#Run EEMD (this may take some time)
## Not run: EEMD(sig, tt, noise.amp, trials, nimf, noise.amp, trials.dir <- trials.dir)

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

#Calculate spectrogram
dt <- 0.1
dfreq <- 0.1

## Not run: hgram <- HHRender(EEMD.result, dt, dfreq)

#Plot spectrogram 
time.span <- c(5, 10)
freq.span <- c(0, 25)
amp.span <- c(1e-6, 2.5e-5)
## Not run: HHGramImage(hgram, time.span = time.span, 
    freq.span = freq.span, amp.span = amp.span)
## End(Not run)

hht documentation built on March 31, 2023, 10:08 p.m.

Related to HHRender in hht...