TP Fourier

download TP Fourier

of 4

Transcript of TP Fourier

  • 7/30/2019 TP Fourier

    1/4

    TP - Proprits de la transforme de Fourier rapide

    Partie I Signaux dterministes

    1) Crer une sinusode de 100Hz avec une frquence dchantillonnage fe = 8192 Hz et une

    dure dobservation T = 1 s.

    Tracer la puis visualiser son spectre (module, argument, partie relle, partie imaginaire).

    Donner vos commentaires.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % dtermination des paramtres

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    fe=8192; % Hz

    T=1; % sN=T*fe;

    freq1=100;%Hz

    tDeb=0;

    tFin=1;

    tPas=(tFin-tDeb)/N;

    t=tDeb:tPas:(tFin-tPas);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % affichage d'une raie 100Hz

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    plot(t,y);

    zoom on

    % Afficher partie relle et imaginaire

    subplot(3,1,2);

    plot(real(fy));

    subplot(3,1,3);

    plot(imag(fy));

    2) Crer un vecteur contenant une cosinusode et afficher son spectre.

    Commentaires.

    3) Crer une sinusode de 6000 Hz et afficher son spectre.

    Commentaires.

    4) Crer une sinusode de 100 Hz (Cf. 1) plus un point dchantillonnage.

    Afficher son spectre.

    Commentaires.

    5) Crer une sinusode de 100 Hz priodique au sens fft puis une sinusode de 100.5 Hz.

    Commentaires sur les diffrences dans les spectres.

    6) Reprendre la sinusode de 100. 5Hz et sur-chantillonner le spectre avec le

    zeropadding .

    Commentaires.

    fy3=fft([ y3 zeros(1, N*9)]);

  • 7/30/2019 TP Fourier

    2/4

    7) La troncature vaut 2 secondes.

    Tracer la FFT de la sinusode de 100.5Hz et sur-chantillonner.

    Commentaires.

    8) Crer un Dirac en t=0 puis retarder le dun chantillon, puis de 3.

    Commentaires sur les spectres.

    9) Transformer le Dirac prcdent en fonction porte sur deux chantillons puis sur-

    chantillonner le spectre.

    Commentaires.

    10) Prendre une sinusode de 100Hz sur T = 1.045s.

    Analyser son spectre avec et sans fentre de pondration (Hanning, Blackman, )

    Commentaires sur le module et la phase des spectres.

    y3=sin(2*pi*freq3*t).*blackman(N)' ;

    ou

    y3=sin(2*pi*freq3*t).*window(hm,N) ;

    Puis sur-chantillonner les spectres pour voir les secondaires.

    Partie II Signaux alatoires (utiliser lnonc en annexe)

    1) Gnrer une suite alatoire de 20 symboles {-1 , 1} indpendants.

    Les symboles sont obtenus aux instants 1 s, 2 s, 3 s , ...

    2) Charger le fichier h.mat qui contient une rponse impulsionnelle h, chantillonne la

    frquence Fe = 10Hz.

    h = [0.00000 0.00072 0.00302 0.00688 0.01188 0.01715 0.02144 ...

    0.02325 0.02106 0.01357 -0.00000 -0.01959 -0.04413 -0.07141 ...

    -0.09812 -0.12004 -0.13240 -0.13034 -0.10950 -0.06661 0.00000 ...

    0.08998 0.20075 0.32748 0.46339 0.60021 0.72891 0.84048 ...

    0.92677 0.98133 1.00000 0.98133 0.92677 0.84048 0.72891 ...

    0.60021 0.46339 0.32748 0.20075 0.08998 0.00000 -0.06661 ...

    -0.10950 -0.13034 -0.13240 -0.12004 -0.09812 -0.07141 -0.04413 ...

    -0.01959 -0.00000 0.01357 0.02106 0.02325 0.02144 0.01715 ...

    0.01188 0.00688 0.00302 0.00072 0.00000] ;

    Reprsenter la rponse impulsionnelle et le module de la rponse frquentielle du filtre h.

    3) Le temps-symbole est de 1 seconde. Les symboles sont filtrs par h.

    Reprsenter la sortie y du filtre et le spectre en sortie du filtre.

    Par dfinition :

    1d'o= = k s kk

    s( t ) a .h( t - kT ) s( n ) a .h( n - Fe / .k )

    4) On suppose que le signal est modul par une onde porteuse de frquence Fm = 3Hz.

    On obtient un signal r que l'on reprsentera ainsi que son spectre.

  • 7/30/2019 TP Fourier

    3/4

    5) Le signal est reu bruit par un bruit additif (par ex. du bruit d'lectronique), bruit

    constitu dune suite de variables alatoires gaussiennes et indpendantes. On fixe le SNR

    10dB. Tracer le signal bruit et le spectre correspondant.

    6) Calculer l'erreur quadratique moyenne et le SNR de faon empirique.

    Etudier les variations sur les rsultats obtenus lorsqu'on reproduit plusieurs fois l'exprience.

    Annexe Programmation de la partie II (en Matlab/Scilab)

    Tableau de quelques correspondances Matlab / Scilab :

    Scilab Matlab

    Plot2d plot

    Xtitle xlabel

    Rand( .,.,normal) randn(.,.)

    Fft(.,-1) ifft

    // %

    %pi pi

    clear all; clf;

    // 1 --> generation des symboles

    //-------------------------------

    nb_symb = 20;

    symb = *** ;

    // 2 --> filtre

    //--------------

    Fe = 10;

    long = 3;

    // reponse impulsionnelle du filtre en cosinus surreleve pour un roll off de 0.5// echantillonne a Fe=10 (Ts=1) et tronque a [-3Ts,3Ts]

    // (equivalent matlab : h = rcosine(1,Fe,'fir',0.5,long); save h.mat; load h.mat)

    h = [0.00000 0.00072 0.00302 0.00688 0.01188 0.01715 0.02144 ...

    0.02325 0.02106 0.01357 -0.00000 -0.01959 -0.04413 -0.07141 ...

    -0.09812 -0.12004 -0.13240 -0.13034 -0.10950 -0.06661 0.00000 ...

    0.08998 0.20075 0.32748 0.46339 0.60021 0.72891 0.84048 ...

    0.92677 0.98133 1.00000 0.98133 0.92677 0.84048 0.72891 ...

    0.60021 0.46339 0.32748 0.20075 0.08998 0.00000 -0.06661 ...

    -0.10950 -0.13034 -0.13240 -0.12004 -0.09812 -0.07141 -0.04413 ...

    -0.01959 -0.00000 0.01357 0.02106 0.02325 0.02144 0.01715 ...

    0.01188 0.00688 0.00302 0.00072 0.00000] ;

    L = (length(h)-1)/2;

    subplot(4,2,1)

    plot2d( *** , h)xtitle('reponse impulsionnelle du filtre')

    subplot(4,2,2)

    plot2d( *** , ***)

    xtitle('reponse frequentielle (amplitude) du filtre')

    // 3 --> filtrage

    //----------------

    data = [];

    //generation de la sequence de symboles echantillonnee a Fe

    ***

    y = *** ; // observation

    Tmax = length(y)/Fe;

    figure

    subplot(4,2,3)plot2d(***,y)

    xtitle('signal')

  • 7/30/2019 TP Fourier

    4/4

    // spectre de y

    Sy = *** ;

    subplot(4,2,4)

    plot2d(***,Sy)

    // 4 --> Modulation sur porteuse

    //------------------------------

    Fm = 3; //frequence de modulation

    r = *** ; // signal reur = *** ; // normalisation 1 de la puissance de r

    subplot(4,2,5)

    plot2d(***,r,3)

    xtitle('signal module')

    Sr = *** ;

    subplot(4,2,6)

    plot2d(***,Sr)

    xtitle('spectre du signal module')

    // 5 --> signal bruite

    //--------------------

    RSB = 10;

    sigma = 10^(-RSB/20);;

    rb = *** ; // signal bruite

    subplot(4,2,7)

    plot2d(***,rb,3)

    xtitle('signal module bruite')

    Srb = *** ;

    subplot(4,2,8)

    plot2d(*** ,Srb)

    xtitle('spectre du signal module bruite')

    // 6 --> EQM et SNR estimes

    //-------------------------

    EQMe = *** // Erreur Quadratique Moyenne (MSE)

    RSBe = *** // Rapport Signal a Bruit (SNR)