# spectrogram: Spectrogram In EMD: Empirical Mode Decomposition and Hilbert Spectral Analysis

## Description

This function produces image of amplitude by time index and instantaneous frequency. The horizontal axis represents time, the vertical axis is instantaneous frequency, and the color of each point in the image represents amplitude of a particular frequency at a particular time.

## Usage

 ```1 2``` ```spectrogram(amplitude, freq, tt = NULL, multi = FALSE, nlevel = NULL, size = NULL) ```

## Arguments

 `amplitude` vector or matrix of amplitudes for multiple signals `freq` vector or matrix of instantaneous frequencies for multiple signals `tt` observation index or time index `multi` specifies whether spectrograms of multiple signals are separated or not. `nlevel` the number of color levels used in legend strip `size` vector of image size.

## Details

This function produces image of amplitude by time index and instantaneous frequency. The horizontal axis represents time, the vertical axis is instantaneous frequency, and the color of each point in the image represents amplitude of a particular frequency at a particular time.

image

## References

Huang, N. E., Shen, Z., Long, S. R., Wu, M. L. Shih, H. H., Zheng, Q., Yen, N. C., Tung, C. C. and Liu, H. H. (1998) The empirical mode decomposition and Hilbert spectrum for nonlinear and nonstationary time series analysis. Proceedings of the Royal Society London A, 454, 903–995.

`hilbertspec`.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```tt <- seq(0, 0.1, length = 2001)[1:2000] f1 <- 1776; f2 <- 1000 xt <- sin(2*pi*f1*tt) * (tt <= 0.033 | tt >= 0.067) + sin(2*pi*f2*tt) ### Before treating intermittence interm1 <- emd(xt, tt, boundary="wave", max.imf=2, plot.imf=FALSE) ### After treating intermittence interm2 <- emd(xt, tt, boundary="wave", max.imf=2, plot.imf=FALSE, interm=0.0007) par(mfrow=c(2,1), mar=c(2,2,2,1)) test1 <- hilbertspec(interm1\$imf) spectrogram(test1\$amplitude[,1], test1\$instantfreq[,1]) test2 <- hilbertspec(interm2\$imf, tt=tt) spectrogram(test2\$amplitude[,1], test2\$instantfreq[,1]) ```

### Example output

```Loading required package: fields
Spam version 2.1-1 (2017-07-02) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package.
Help for individual functions is also obtained by adding the
suffix '.spam' to the function name, e.g. 'help( chol.spam)'.

Attaching package: 'spam'

The following objects are masked from 'package:base':

backsolve, forwardsolve