1 / 27

Examen final de pratique GPA787

Examen final de pratique GPA787. Session Été 2014. Calcul d’une FFT à 8 points dans la bonne vieille TI92. Signal de 8 points. Notez le calcul de la somme. La FFT à 8 points approximée. Les amplitudes. Spectre en fréquence. Maximums à 20.81 et 145.69 Hertz. Amplitude. Fréquence en Hertz.

padma
Download Presentation

Examen final de pratique GPA787

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Examen final de pratique GPA787 Session Été 2014

  2. Calcul d’une FFT à 8 points dans la bonne vieille TI92 Signal de 8 points

  3. Notez le calcul de la somme

  4. La FFT à 8 points approximée

  5. Les amplitudes

  6. Spectre en fréquence Maximums à 20.81 et 145.69 Hertz Amplitude Fréquence en Hertz

  7. Calcul d’une FFT inverse à 8 points dans la bonne vieille TI92 Spectre de 8 points Notez le calcul de la somme J’ai conservé n et wn du calcul de la FFT fait précédemment.

  8. Le signal de 8 points approximé

  9. L’évolution du signal dans le temps Amplitude du signal Temps en seconde

  10. Décodage entropique • (6):39…(1,3):7…(1,3):5…(6,4):10…(1,3):6 • (1,3):5…(15,0)…(1,1):1…(0,1):1…(2,2):3 • (4,1):1…(0,0) Erreur sur la figure Ton moyen de gris On passe de 64 x 8 bits à 66 bits, donc taux de compression d’environ 7.76

  11. Collisions de la communication CANbus • La communication CAN gère les collisions de données avec un système de bits dominants et récessifs. Chaque message ayant un identifiant différent, tant que les bits des deux identifiants sont identiques, les deux émettent. Mais dès qu’un bit diffère, l’équipement ayant émis le bit récessif cesse de transmettre permettant à l’équipement ayant le bit dominant de transmettre son message.

  12. Bits dominants et récessifs • La notion de bits dominants et récessifs vient du fait que si les deux sont présentés simultanément, le bit dominant l’emporte. Cela peut être obtenu par le câblage de transistors dont les collecteurs sont en parallèles. Dès qu’un transistor est en saturation, la tension du collecteur descend près de 0, en dépit de l’état des bases des autres transistors.

  13. Codage entropique • Le codage entropique consiste au codage des amplitudes des coefficients quantifiés de la DCT 2D. • Ce codage est en deux parties: • un code de 8 bits contenant 4 bits pour indiquer le nombre de zéros à intercaler, 4 bits pour indiquer le nombre de bits de l’information. • L’amplitude exprimée en un certain nombre de bits (identifié dans le code mentionné précédemment). • L’élimination des 0 et la réduction du nombre de bits requis pour représenter l’amplitude permet de comprimer les données. Le codage de Hufmann augmentera ce taux de compression.

  14. Routine d’interruption Bp1 • void ISR_Bp1(void) • { • staticunsignedintlastPress = 0; • if (!PIO_Get(&pinsBTN[0])) { • if ((timestamp - lastPress) > • DEBOUNCE_TIME) { • lastPress = timestamp; • if (hor<639) hor+=hor; • } • } • } Position horizontale du curseur

  15. Routine d’interruption Bp3 • void ISR_Bp3(void) • { • staticunsignedintlastPress = 0; • if (!PIO_Get(&pinsBTN[0])) { • if ((timestamp - lastPress) > • DEBOUNCE_TIME) { • lastPress = timestamp; • if (hor>0) hor-=hor; • } • } • } Position horizontale du curseur

  16. Configuration des interruptions • staticvoidConfigurePins() • { • PIO_InitializeInterrupts(AT91C_AIC_PRIOR_LOWEST); • PIO_ConfigureIt(&pinsBTN[0], (void (*)(const Pin *)) ISR_Bp1); • PIO_ConfigureIt(&pinsBTN[1], (void (*)(const Pin *)) ISR_Bp2); • PIO_ConfigureIt(&pinsBTN[2], (void (*)(const Pin *)) ISR_Bp3); • PIO_ConfigureIt(&pinsBTN[3], (void (*)(const Pin *)) ISR_Bp4); • PIO_EnableIt(&pinsBTN[0]); • PIO_EnableIt(&pinsBTN[1]); • PIO_EnableIt(&pinsBTN[2]); • PIO_EnableIt(&pinsBTN[3]); • }

  17. Variables utilisées A définir dans Board.h • static const Pin pinsBTN[] = {PIN_PUSHBUTTON_1, PIN_PUSHBUTTON_2, PIN_PUSHBUTTON_3, PIN_PUSHBUTTON_4}; • PIO_Configure(pinsBTN, PIO_LISTSIZE(pinsBTN)); • volatile inthor = 0; /* Position horizontale */ • volatile int ver = 0; /* Position verticale */

  18. Tentative d’interruptions aux 3 secondes • staticvoidConfigureTc(void) • { • unsignedinttcclks = 3; // Choix de l'horloge; • unsignedint div = 128; // Diviseur de la fréquence de l'horloge (133 MHz) • unsignedintfreqd = 16; // Paramètre pour le compteur (intervalles de 0.0625 sec) • // Enableperipheralclock • AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0; • //TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG); • TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG); • AT91C_BASE_TC0->TC_RC = (BOARD_MCK / div) /(freqd) ; // timerFreq / desiredFreq • // Configure and enableinterrupt on RC compare • IRQ_ConfigureIT(AT91C_ID_TC0, AT91C_AIC_PRIOR_LOWEST, ISR_Tc0); • AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; • IRQ_EnableIT(AT91C_ID_TC0); • TC_Start(AT91C_BASE_TC0); • } C’est le plus long possible Prévoir un compteur dans la routine d’interruption. Si le compteur est égal à 48, on exécute l’interruption.

  19. Fréquence de l’onde sinusoidale • La fréquence sera très lente, car la période sera 50 x 3 sec = 150 sec. • La fréquence sera de 1/500 Hz.

  20. Pourquoi lire deux fois le CAN (ADC en anglais) • Parce que l’information sur 12 bits est envoyée en deux tranches. Les 3 premiers bits lors de la première lecture et les 9 derniers bits pour la seconde lecture.

More Related