Fonction Scilab
fr


plot_spectre2

Contenu du fichier


/////////////
//
//plot_spectre_2: fonction qui affiche le spectre d'une forme temporelle sous-échantillonnée
//                par translation de spectre
//
//Entrées
//vart : vecteur de la forme temporelle de taille (Nsav,1)
//Tse : pas temporel d'echantillonnage
//Tacqui : temps initial au début de l'analyse
//Fd : Fréquence centrale du spectre à observer
//l_win : taille de la fenêtre spectrale désirée (en nbr d'échantillons)
//nwin  : numéro de fenêtre
//flag  : drapeau échelle logarithmique flag==0 echelle linéaire
//                                      flag==1 échelle logarithmique
//
function [step]=plot_spectre2(vart,Tse,Tacqui,Fd,l_win,nwin,flag)

   //Calcul la longueur du vecteur de la forme temporelle
   Nsav=size(vart,'*');
   
   //Calcul du pas fréquentiel
   step=1/(Nsav*Tse);
   
   //Calcul de la date finale de l'analyse
   Tfin=Tacqui+Nsav*Tse;
   
   //Calcul du vecteur temps pour translation
   t=Tacqui:Tse:Tfin-Tse;
   
   //Réalise translation
   vart_t=vart'.*cos(2*%pi*Fd*t);
   
   //Calcul du spectre (non normalisé)
   DSP=10*log10((1/(Nsav)*abs(fftshift(fft(vart_t,-1))))^2)-10*log10(step);
   
   if flag==0
    //Calcul du vecteur échantillon
    vec=(Nsav-l_win)/2+1:1:(Nsav+l_win)/2;

    //Calcul du vecteur fréquentiel
    vec_f=(vec-Nsav/2)*step+Fd-step;
    
    //Ouvre la fenetre graphique
    scf(nwin);
    f=scf(nwin);
    f.figure_size=[300,350];

    //
    plot2d(vec_f,DSP(vec),rect=[min(vec_f),min(DSP(vec)),max(vec_f),max(DSP(vec))+5]);
    
   elseif flag==1
    //Calcul du vecteur échantillon
    vec=Nsav/2:1:(Nsav-1)-Nsav/2+l_win;
    
    //Calcul du vecteur fréquentiel
    vec_f=(vec-Nsav/2)*step;
    
    //Ouvre la fenetre graphique
    scf(nwin);
    f=scf(nwin);
    f.figure_size=[300,350];

    //
    plot2d("ln",vec_f+2*step,DSP(vec+2),,"011",rect=[step,min(DSP(vec+2)),max(vec_f+2*step),max(DSP(vec+2))]);
   end
   
endfunction