IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

Code Datamatrix et Reed Solomon


Sujet :

Traitement du signal

  1. #21
    Nouveau Candidat au Club
    Homme Profil pro
    Industrie
    Inscrit en
    Juillet 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment déterminer le Polynome Générateur ?
    Citation Envoyé par pseudocode Voir le message
    C'est loin d'être bête comme question.

    Les polynômes générateurs sont de la forme G(x) = (x-a^1)(x-a^2)(x-a^3)...
    où "a" est l'élément primitif du corps, et le degré de G est égal au nombre d'octets de correction désiré.

    5 octets de correction --> Deg(G)=5 --> G(x) = (x-a^1)(x-a^2)(x-a^3)(x-a^4)(x-a^5)

    --> G(x) = (x-2)(x-4)(x-8)(x-16)(x-32) = 1.x^5 + 62.x^4 + 111.x^3 + 15.x^2 + 48.x + 228

    Pour info, tout cela est expliqué dans la norme ISO/IEC 16022


    Quand je réalise le calcul, je n'obtiens pas du tout le même résultat :
    G(x) = (x-2)(x-4)(x-8)(x-16)(x-32) = 1.x^5 - 62.x^4 + 1240.x^3 - 9920.x^2 + 31774.x - 32768

    Comment faites vous pour obtenir :
    G(x) = 1.x^5 + 62.x^4 + 111.x^3 + 15.x^2 + 48.x + 228

  2. #22
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marcguill Voir le message
    Comment faites vous pour obtenir :
    G(x) = 1.x^5 + 62.x^4 + 111.x^3 + 15.x^2 + 48.x + 228
    RAPPEL: Toutes les opérations sur les polynômes, mêmes les plus élémentaires, se font dans le corps de Galois GF(256).

    Comme je l'ai dit, tout cela est expliqué dans la norme ISO/IEC 16022:
    For example the fifth degree generator polynomial is:

    (x + 2)(x + 4)(x + 8)(x + 16)(x + 32)

    = x5 + (2 + 4 + 8 + 16 + 32)x4 + ((2 * 4) + (2 * 8) + (2 * 16) + (2 * 32) + (4 * 8) + (4 * 16) + (4 * 32) + (8 * 16) +
    (8 * 32) + (16 * 32))x3 + ((2 * 4 * 8) + (2 * 4 * 16) + (2 * 4 * 32) + (2 * 8 * 16) + (2 * 8 * 32) + (2 * 16 * 32) +
    (4 * 8 * 16) + (4 * 8 * 32) + (4 * 16 * 32) + (8 * 16 * 32))x2 + ((2 * 4 * 8 * 16) + (2 * 4 * 8 * 32) + (2 * 4 * 16 * 32)
    + (2 * 8 * 16 * 32) + (4 * 8 * 16 * 32))x + (2 * 4 * 8 * 16 * 32)

    = x5 + 62x4 + 111x3 + 15x2 + 48x + 228.

    Note that this Galois Field arithmetic is not normal integer arithmetic:
    - is equivalent to +, which is an “exclusive-or” operation in this Field,
    and
    multiplication is byte-wise modulo 100101101 for each binary polynomial term generated by bit-by-bit multiplication.
    Par exemple, si je détaille le calcul du dernier terme: (2*4*8*16*32)
    2*4*8*16*32 = 32768 = 1000000000000000 (binaire)
    
    1000000000000000  | 100101101
     001011010000000  |-----------
      01011010000000  | 10010100
       1011010000000  |
        010001010000  |
         10001010000  |
          0011100100  |
           011100100  |
            11100100  |
    
    1000000000000000 = 10010100 * 100101101 + 11100100
          32768      =    148   *   301     +    228
    
    =>  (2*4*8*16*32) = 228  dans GF(256)
    
    et si je détaille le calcul du coef du terme en x: ((2*4*8*16)+(2*4*8*32)+(2*4*16*32)+(2*8*16*32)+(4*8*16*32)).x

    (2*4*8*16)  --> 180 = 10110100
    (2*4*8*32)  -->  69 = 01000101
    (2*4*16*32) --> 138 = 10001010
    (2*8*16*32) -->  57 = 00111001
    (4*8*16*32) --> 114 = 01110010
                          --------
                    (xor) 00110000 --> 48
    
    => ((2*4*8*16)+(2*4*8*32)+(2*4*16*32)+(2*8*16*32)+(4*8*16*32)).x = 48.x  dans GF(256)
    
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Reed-Solomon, DataMatrix, exemple concret
    Bonjour, j'ai bien lu toutes vos explications et c'est passionnant !
    J'ai ici une question sur un DataMatrix réel :

    Size 18x18
    Data 16x16

    18 codewords de data
    14 codewords de contrôle en ECC200 donc en Reed-Solomon

    Polynôme générateur : 1x^14+185x^13+83x^12+186x^11+18x^10+45x^9+138x^8+119x^7+157x^6+9x^5+95x^4+252x^3+192x^2+97x^1+156x^0

    Data brute :
    170x^17+162x^16+203x^15+72x^14+152x^13+134x^12+159x^11+131x^10+172x^9+134x^8+65x^7+84x^6+150x^5+128x^4+86x^3+236x^2+132x^1+27x^0

    Polynôme de contrôle sera quoi selon vous ?
    Il est inscrit dans le DataMatrix:

    34
    247
    18
    85
    88
    31
    120
    154
    56
    173
    193
    20
    226
    115

    Et quand je le fais moi-même en ligne, j'obtiens :

    207
    29
    239
    193
    33
    16
    164
    213
    158
    250
    47
    91
    224
    6

    Où est la vérité ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Reed Solomon : QR Code
    Par Vuyxom dans le forum MATLAB
    Réponses: 0
    Dernier message: 14/01/2013, 19h17
  2. Aide codage gestion d'erreur Qr Code reed solomon
    Par bglacial dans le forum Général Java
    Réponses: 0
    Dernier message: 04/01/2012, 15h06
  3. Décodeur Reed Solomon (15,9)
    Par psychoP@T dans le forum VHDL
    Réponses: 2
    Dernier message: 06/05/2009, 20h41
  4. extraire un code DATAMATRIX d'une image
    Par s.abdou dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 19/11/2008, 13h32
  5. decomposition des codes de Reed Solomon
    Par gronaze dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 30/05/2006, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo