Code covered by the BSD License  

Highlights from
Logiciels temps réel

Logiciels temps réel

by

 

Real-time software concerning the domains of the signal processing, feedback and regulation

tfdinv.m
function [y,t]=tfdinv(Y,fe,option)

% TFDINV = Transforme de FOURIER discrte inverse
%          (utilisation d'un algorithme FFT)
%
%          Domaine spectral -----> Domaine temporel
%
%       SYNTAXE : [y,t]=TFDINV(Y,fe,option)
%
%                 Y = signal dont on veut calculer la TFD inverse
%                 fe = frquence d'chantillonnage
%                 y = TFD inverse de Y
%                 t = instants d'chentillonnage 
%                     ( t = n.te = n/fe)
%                 option : paramtre facultatif :  'r' ou sans option : spectre non centr
%                                                                 'c' : spectre centr sur f=0
%
%       REMARQUE : yp=tfdinv(tfd(y,te),1/te,'c'); redonne le signal y : y=yp
%

N=length(Y);
[ligne col]=size(Y);
if ligne>col
    Y=Y.';
end;    
if nargin==2
	option=[];
end;
te=1/fe;
if (nargin==2)|strcmp(option,'r')
    yp=[Y,Y(1)];
    somme=N+1;
	ypr=fliplr(yp);
	test=(abs(conj(ypr)-yp)<=1e-6);
	if sum(test)==somme
		yc=ifft(Y,N)*N;
		y=real(yc);
		t=(0:N-1)*te;
	else
		error('Spectre non symtrique ');
	end;
elseif (nargin==3) & strcmp(option,'c')
        YP=ifftshift(Y);
        yp=[YP,YP(1)] ;       
        somme=N+1;
        ypr=fliplr(yp);
	    test=(abs(conj(ypr)-yp)<=1e-6);
	    if sum(test)==somme
		    yc=ifft(YP,N)*N;
		    y=real(yc);
		    t=(0:N-1)*te;
	    else
		    error('Spectre non symtrique ');
	    end;
	else
	error('la fonction TDINV ncessite 2 arguments !');
end;

Contact us