Mesure de l'amplitude maximale d'une impulsion par dichotomie
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Mesure de l'amplitude maximale d'une impulsion par dichotomie



  1. #1
    invite67ee8e47

    Mesure de l'amplitude maximale d'une impulsion par dichotomie


    ------

    Bonjour,
    étudiant en Master II en électronique, j'ai quelques difficultés.

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    -----
    entity cna is
    port(
    impulsion : in std_logic_vector (3 downto 0);
    sortie : out std_logic
    );
    end cna;
    -----
    architecture cn of cna is
    begin
    process(impulsion)
    variable impul : std_logic_vector (3 downto 0):="1000";
    begin
    if impulsion>impul then
    impul<=impul+impul/2;
    elsif impulsion<impul then
    impul<=impul-impul/2;
    end if;
    sortie<=impul;
    end process;
    -----
    process(sortie)
    begin
    end process;
    -----
    end cn;


    1)J'initialise impul à la moitié de la valeur de impulsion. Logique !!
    2)Comment faire pour que la sortie ne prenne pas la valeur à chaque changement de impul, mais une fois que le impul est bien determiné, au dernier LSB près !

    Merci de vos réponses.

    -----

  2. #2
    invite67ee8e47

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    ??????????

  3. #3
    Antoane
    Responsable technique

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    Bonjour,
    Tout ce qui est programmation n'est pas mon truc, mais j'essaye quand même .
    Le "elsif impulsion<impul then" est inutile, car si impulsion n'est pas > impul, c'est qu'il est <.
    Tu sorts impul avec un cna, puis tu compares la tension à celle d'entrée en hard, bref, un can à approximations successives : http://fr.wikipedia.org/wiki/Convert...ns_successives, c'est ça ? Dans ce cas, tu est obligé de sortir impul à chaque changement coup d'horloge.
    Sinon, arrivé au LSB, impul va osciller entre deux valeurs, il suffit alors de ne le mettre en sortie qu'à ce moment là.

    J'initialise impul à la moitié de la valeur de impulsion.
    Plutôt à la moitié de la pleine échelle ( 0b1000 par rapport à 0b1111).

    PS : un programme, aussi simple soit-il, ça se commente, surtout quand on le montre à quelqu'un.
    P²S : penser aux balises [code]
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    invite67ee8e47

    Algorithme

    Bonjour,

    j'essaie de faire un algorithme pour déterminer l'amplitude max d'une impulsion.
    C'est la méthode par dichotomie que je voudrais réaliser.
    A chaque fois que l'on reçoit l'impulsion (qui a une fréquence de récurrence propre), on incrémente ou on décrémente la valeur d'un seuil qui nous permettra de déterminer cette amplitude max.
    Une fois le plus petit LSB du seuil déterminé, ce seuil oscillera entre 2 valeurs, LSB=0, puis 1, puis 0, puis ...

    Merci

  5. A voir en vidéo sur Futura
  6. #5
    invitee05a3fcc


  7. #6
    invite67ee8e47

    Re : Algorithme

    Oui désolé,

    j'ai supprimé l'ancien abonnement faisant référence à ce doublon, je ne savais pas qu'il restait dans vos archives.

    DELALIN Ambroise

  8. #7
    Tropique

    Re : Algorithme

    Discussions fusionnées.

    Prière d'éviter les doublons à l'avenir.
    Pas de complexes: je suis comme toi. Juste mieux.

  9. #8
    invite67ee8e47

    Re : Algorithme

    Bonjour,
    j'ai réalisé ce petit bout de programme pour la dichotomie.
    Le problème vient de la division par deux.
    On ne peut pas diviser un nombre binaire.
    Faut-il le convertir en unsigned ?
    De cette manière : a<=unsigned (3 downto 0) ?
    Unsigned se réfère à quoi ? Un nombre réel ?
    Une fois l'opération réalisée, il faut reconvertir en binaire ?
    Quelles sont les librairies à utiliser ?

    HELP !!!!

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.numeric_std.all;
    -----
    entity dichotomie is
    port(
    seuil : in std_logic_vector (3 downto 0);
    sortie : out std_logic_vector (3 downto 0)
    );
    end dichotomie;
    -----
    architecture dicho of dichotomie is
    signal valeur : std_logic_vector (3 downto 0) :="1000";
    begin
    process(seuil)
    begin
    if seuil>valeur then
    valeur<=valeur+(("1111"-valeur)/2);
    elsif seuil<valeur then
    valeur<=valeur-(valeur/2);
    end if;
    sortie<=valeur;
    end process;
    -----
    end dicho;

    Merci de vos réponses.

  10. #9
    invite936c567e

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    Bonjour

    Quelques remarques :

    • Ici on est sur le forum « Électronique ». Le forum « Informatique » c'est à côté.

    • Pour une question de clarté, le code des programmes doit être indenté et inséré entre des balises [CODE] (bouton # de l'éditeur).

    • Tes questions sont particulièrement illisibles, et on a du mal à savoir si ton problème porte plutôt sur la compréhension de l'algorithme, sur sa mise en œuvre, ou bien sur son codage dans l'environnement particulier que tu utilises.

    Bref, ça part un peu dans tous les sens. Il faudrait que tu réfléchisses à la manière d'identifier, séparer et ordonner les problèmes précis auxquels tu souhaites qu'on t'apporte des réponses.

    D'ailleurs, comme l'algorithme de dichotomie n'est en soi pas très compliqué (ni dans le principe ni dans son implémentation) ce nécessaire travail de réflexion pourrait bien t'apporter directement les solutions.

    Et euh... c'est tout-à-fait réalisable avec des nombres entiers.

  11. #10
    invited3dcf66c

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    Salut,
    Il y a un gros truc qui me chiffonne... Il n'y a pas d'horloge dans ton système?

  12. #11
    polo974

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    Y a quelqu'un qui a remarqué que c'est du vhdl ? ? ?
    Jusqu'ici tout va bien...

  13. #12
    invite67ee8e47

    Re : Mesure de l'amplitude maximale d'une impulsion par dichotomie

    Bonjour,

    ok merci. J'y réfléchis !

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/04/2010, 19h03
  2. mesure d'une impulsion laser fs
    Par invitee1f6cbd0 dans le forum Physique
    Réponses: 0
    Dernier message: 28/05/2009, 20h48
  3. Réponses: 1
    Dernier message: 28/03/2009, 13h34
  4. mesure d'une capacite par microcontrolleur
    Par invitee64fb1f2 dans le forum Électronique
    Réponses: 7
    Dernier message: 28/11/2008, 13h08
  5. Diodes s'allumant selon l'amplitude d'une tension alternative
    Par invite9a45a83f dans le forum Électronique
    Réponses: 25
    Dernier message: 09/08/2007, 15h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...