Gabor representation of a signal
[TFR,DGR,GAM] = tfrgabor(SIG, N, Q) [TFR,DGR,GAM] = tfrgabor(SIG, N, Q, H) [TFR,DGR,GAM] = tfrgabor(SIG, N, Q, H, TRACE) [TFR,DGR,GAM] = tfrgabor(...,'plot')
signal to be analyzed (length(SIG)=N1).
number of Gabor coefficients in time (N1 must be a multiple of N) (default : divider(N1)).
degree of oversampling ; must be a divider of N (default : Q=divider(N)).
synthesis window, which was originally chosen as a Gaussian window by Gabor. Length(H) should be as closed as possible from N, and must be >=N (default : Gauss(N+1)). H must be of unit energy, and CENTERED.
if nonzero, the progression of the algorithm is shown (default : 0).
if one input parameter is 'plot', tfrgabor runs tfrqview. and TFR will be plotted
a N1 by N1 real matrix: the Square modulus of the Gabor coefficients.
a N1 by N1 complex matrix: the Gabor coefficients.
a column vector of size N: the biorthogonal (dual frame) window associated to H.
tfrgabor computes the Gabor representation of signal X, for a given synthesis window H, on a rectangular grid of size (N,M) in the time-frequency plane. M and N must be such that N1 = M * N / Q where N1=length(X) and Q is an integer corresponding to the degree of oversampling. If Q=1, the time-frequency plane (TFP) is critically sampled, so there is no redundancy in the TFP. If Q>1, the TFP is oversampled, allowing a greater numerical stability of the algorithm.
N1 = 128; sig = fmlin(N1); N = N1/2; q = N/2; [tfr,dgr,gam] = tfrgabor(sig,N,q); t = 1:2:N1; nf = size(tfr,1)/2; f = (0.5*(0:nf-1)/nf); clf; gcf().color_map = jetcolormap(128); grayplot(t,f,tfr(1:$/2,:)'); | ![]() | ![]() |