Constant-Q nonstationary Gabor transform

returns the constant-Q transform (CQT), `cfs`

= cqt(`x`

)`cfs`

, of the input
signal `x`

. The input signal must have at least four samples.

If

`x`

is a vector, then`cqt`

returns a matrix corresponding to the CQT.If

`x`

is a matrix, then`cqt`

obtains the CQT for each column (independent channel) of`x`

. The function returns a multidimensional array corresponding to the maximally redundant version of the CQT.

`[`

returns the frequency intervals, `cfs`

,`f`

,`g`

,`fshifts`

,`fintervals`

] = cqt(`x`

)`fintervals`

, corresponding the
rows of `cfs`

. The `k`

th element of
`fshifts`

is the frequency shift in DFT bins between the
`((k-1) mod N)`

and` (k mod N)`

element of
`fintervals`

with `k = 0,1,2,...,N-1`

where
`N`

is the number of frequency shifts. Because MATLAB^{®} indexes from 1, `fshifts(1)`

contains the frequency
shift between `fintervals{end}`

and
`fintervals{1}`

, `fshifts(2)`

contains the
frequency shift between `fintervals{1}`

and
`fintervals{2}`

, and so on.

`[___] = cqt(___,`

returns the CQT with additional options specified by one or more
`Name,Value`

)`Name,Value`

pair arguments, using any of the preceding
syntaxes.

`cqt(___)`

with no output arguments plots the CQT
in the current figure. Plotting is supported for vector inputs only. If the input
signal is real and `Fs`

is the sampling frequency, the CQT is
plotted over the range `[0,Fs/2]`

. If the signal is complex, the
CQT is plotted over the range [`0,Fs`

).

**Note**

In order to visualize a sparse CQT, coefficients have to be interpolated.
When interpolation occurs, the plot can have significant smearing and be
difficult to interpret. If you want to plot the CQT, we recommend using the
default `TransformType`

value
`'full'`

.

[1] Holighaus, N., M. Dörfler, G.
A. Velasco, and T. Grill. "A framework for invertible real-time constant-Q transforms."
*IEEE Transactions on Audio, Speech, and Language Processing.*
Vol. 21, No. 4, 2013, pp. 775–785.

[2] Velasco, G. A., N. Holighaus,
M. Dörfler, and T. Grill. "Constructing an invertible constant-Q transform with
nonstationary Gabor frames." In *Proceedings of the 14th International
Conference on Digital Audio Effects (DAFx-11)*. Paris, France:
2011.

[3] Schörkhuber, C., A. Klapuri,
N. Holighaus, and M. Dörfler. "A Matlab Toolbox for Efficient Perfect Reconstruction
Time-Frequency Transforms with Log-Frequency Resolution." Submitted to the *AES
53rd International Conference on Semantic Audio*. London, UK:
2014.

[4] Průša, Z., P. L. Søndergaard,
N. Holighaus, C. Wiesmeyr, and P. Balazs. *The Large Time-Frequency Analysis
Toolbox 2.0*. Sound, Music, and Motion, Lecture Notes in Computer Science
2014, pp 419-442.