<< Linear Time-Frequency Processing Linear Time-Frequency Processing tfrgabor >>

stftb >> stftb > Linear Time-Frequency Processing > tffilter

tffilter

Time frequency filtering of a signal

Calling Sequence

Y = tffilter(TFR, X, T)
Y = tffilter(TFR, X, T, TRACE)

Parameters

TFR :

a M by N array: the Wigner-Ville distribution of the filter frequency axis is graduated from 0.0 to 0.5.

X :

a complex vector of size N: the input signal (must be analytic).

T :

a real vector with elements in [1 N]: the time instant(s)(default : 1:length(X)).

TRACE :

if nonzero, the progression of the algorithm is shown (default : 0).

Y:

a vector with same sizes as X: the filtered signal.

Description

tffilter filters the signal X with a non stationary filter.

Examples

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');

See also

Authors


Report an issue
<< Linear Time-Frequency Processing Linear Time-Frequency Processing tfrgabor >>