Time frequency filtering of a signal
Y = tffilter(TFR, X, T) Y = tffilter(TFR, X, T, TRACE)
a M by N array: the Wigner-Ville distribution of the filter frequency axis is graduated from 0.0 to 0.5.
a complex vector of size N: the input signal (must be analytic).
a real vector with elements in [1 N]: the time instant(s)(default : 1:length(X)).
if nonzero, the progression of the algorithm is shown (default : 0).
a vector with same sizes as X: the filtered signal.
tffilter filters the signal X with a non stationary filter.
clf; gcf().color_map = jetcolormap(128); Nt = 128; t = 1:Nt; sig = fmlin(Nt,0.05,0.3) + fmlin(Nt,0.2,0.45); sig(Nt/2) = sig(Nt/2)+8; [TFR,T,F] = tfrwv(sig,t); subplot(221); grayplot(T,F,TFR'); Nf = 128; freqs = 0.5*(0:Nf-1).'/Nf; H = []; for tloop = 1:Nt, rate = 0.2*(tloop-1)/(Nt-1); H(:,tloop) = (0+rate<freqs).*(freqs<0.1+rate); end y = tffilter(H,sig,t); [TFR,T,F] = tfrwv(y,t); subplot(222); grayplot(T,F,TFR'); Nt = 128; t = 1:Nt; sig = atoms(128,[64 0.25 round(sqrt(128)) 1],0); [TFR,T,F] = tfrwv(sig,t); subplot(223); grayplot(T,F,TFR'); Nf = 64; H = zeros(Nf,Nt);H(Nf/4+(-15:15),Nt/2+(-15:15))=ones(31); y = tffilter(H,sig,t); [TFR,T,F] = tfrwv(y,t); subplot(224); grayplot(T,F,TFR'); | ![]() | ![]() |