CQT Constant-Q non-stationary Gabor filterbank
Usage: [c,Ls,g,shift,M] = cqt(f,fmin,fmax,bins,fs,M)
[c,Ls,g,shift,M] = cqt(f,fmin,fmax,bins,fs)
[c,Ls,g,shift] = cqt(...)
[c,Ls] = cqt(...)
c = cqt(...)
Input parameters:
f : The signal to be analyzed (For multichannel
signals, input should be a matrix which each
column storing a channel of the signal).
fmin : Minimum frequency (in Hz)
fmax : Maximum frequency (in Hz)
bins : Vector consisting of the number of bins per octave
fs : Sampling rate (in Hz)
M : Number of time channels (optional)
If M is constant, the output is converted to a
matrix
Output parameters:
c : Transform coefficients (matrix or cell array)
Ls : Original signal length (in samples)
g : Cell array of Fourier transforms of the analysis
windows
shift : Vector of frequency shifts
M : Number of time channels
This function computes a constant-Q transform via non-stationary Gabor
filterbanks. Given the signal f, the constant-Q parameters fmin,
fmax and bins, as well as the sampling rate fs of f, the
corresponding constant-Q coefficients c are given as output. For
reconstruction, the length of f and the filterbank parameters can
be returned also.
The transform produces phase-locked coefficients in the
sense that each filter is considered to be centered at
0 and the signal itself is modulated accordingly.
Optional input arguments arguments can be supplied like this:
cqt(f,fmin,fmax,bins,fs,'min_win',min_win)
The arguments must be character strings followed by an
argument:
'min_win',min_win Minimum admissible window length
(in samples)
'Qvar',Qvar Bandwidth variation factor
'M_fac',M_fac Number of time channels are rounded to
multiples of this
'winfun',winfun Filter prototype (see FIRWIN for available
filters)
'fractional' Allow fractional shifts and bandwidths
Example:
--------
The following example shows analysis and synthesis with CQT and ICQT:
[f,fs] = gspi;
fmin = 200;
fmax = fs/2;
[c,Ls,g,shift,M] = cqt(f,fmin,fmax,48,fs);
fr = icqt(c,g,shift,Ls);
rel_err = norm(f-fr)/norm(f);
plotfilterbank(c,Ls./M,[],fs,'dynrange',60);
References:
N. Holighaus, M. Doerfler, G. A. Velasco, and T. Grill. A framework for
invertible, real-time constant-Q transforms. IEEE Transactions on
Audio, Speech and Language Processing, 21(4):775 --785, 2013.
G. A. Velasco, N. Holighaus, M. Doerfler, and T. Grill. Constructing an
invertible constant-Q transform with non-stationary Gabor frames.
Proceedings of DAFX11, 2011.
Url: http://ltfat.github.io/doc/filterbank/cqt.html
See also: icqt, firwin.
Package: ltfat