# snake: Ridge Estimation by Snake Method In Rwave: Time-Frequency Analysis of 1-D Signals

## Description

Estimate a ridge from a time-frequency representation, using the snake method.

## Usage

 ```1 2 3 4``` ```snake(tfrep, guessA, guessB, snakesize=length(guessB), tfspec=numeric(dim(modulus)[2]), subrate=1, temprate=3, muA=1, muB=muA, lambdaB=2 * muB, lambdaA=2 * muA, iteration=1000000, seed=-7, costsub=1, stagnant=20000, plot=TRUE) ```

## Arguments

 `tfrep` Time-Frequency representation (real valued). `guessA` Initial guess for the algorithm (frequency variable). `guessB` Initial guess for the algorithm (time variable). `snakesize` the length of the initial guess of time variable. `tfspec` Estimate for the contribution of the noise to modulus. `subrate` Subsampling rate for ridge estimation. `temprate` Initial value of temperature parameter. `muA` Coefficient of the ridge's derivative in cost function (frequency component). `muB` Coefficient of the ridge's derivative in cost function (time component). `lambdaB` Coefficient of the ridge's second derivative in cost function (time component). `lambdaA` Coefficient of the ridge's second derivative in cost function (frequency component). `iteration` Maximal number of moves. `seed` Initialization of random number generator. `costsub` Subsampling of cost function in output. `stagnant` maximum number of steps without move (for the stopping criterion) `plot` when set (by default), certain results will be displayed

## Value

Returns a structure containing:

 `ridge` 1D array (of same length as the signal) containing the ridge. `cost` 1D array containing the cost function.

## References

See discussions in the text of “Practical Time-Frequency Analysis”.

`corona`, `coronoid`, `icm`, `snakoid`.