Bloc fonction décalage à gauche modulo entier
Ce bloc réalise une fonction modulo entière circulaire à gauche.
La sortie est le mot d'entrée décalé à gauche de N bit,
défini sur une longueur de Nbit bits en utilisant la notation code complément à 2.
Les valeurs de la sortie sont donc comprises dans l'intervalle
.
Cette fonction est décrite par une amplitude non constante.
Suivant le nombre de décalage à gauche, cette non-linéarité peut prendre des pentes différentes.
La figure 1 montre un exemple pour une longueur donnée (Nbit=5), pour un décalage et pour deux
décalages.
Figure 1: Fonction non-linéaire lcmodulo pour Nbit=5. (a) un décalage; (b) deux décalages
Cette fonction est modélisée avec des opérateurs binaires du langage C.
Premièrement le bloc commence par convertir la valeur d'entrée en un nombre entier non signé.
Après, il réalise N fois l'opération de décalage à gauche.
Le tableau 1 montre les étapes successives de réalisation de cette opération
pour un mot de longueur 8 bits.
Table 1:
Etapes de calcul de la fonction décalage circulaire à gauche
| Etapes |
Opérations |
Decimale |
Binaire |
| 1 |
Lit Lit une valeur entière non-signée |
150 |
1001 0110 |
| 2 |
Décalage à gauche binaire |
300 |
1 0010 1100 |
| 3 |
Tronque à 8 bits |
44 |
0010 1100 |
| 4 |
Additionne les bits tronqués |
45 |
0010 1101 |
La fonction de calcul convertie finallement la valeur non-signée en valeur signée et dépose le résultat
dans le registre de sortie y.
- Number of bit
Le nombre de bits par entier.
Propriétés : Type 'vec' de taille -1.
- Number of shift
Le nombre de décalages binaires à gauche appliqué à chaque événement d'entrée.
Propriétés : Type 'vec' de taille -1.
- toujours actif: non
- direct-feedthrough: oui
- détection de passage à zéro: non
- mode: non
- entrée régulières:
- port 1 : taille [1,1] / type 1
- sorties régulières:
- port 1 : taille [1,1] / type 1
- nombre des entrées évènementielles: 0
- nombre des sorties évènementielles: 0
- possède un état continu: non
- possède un état discret: non
- possède un état objet: non
- nom de la fonction de calcul: lcmodulo
- MODNUMCOS/macros/scicos_blocks/NonLinear/LCMODULO_f.sci [voir code]
- MODNUMCOS/routines/nonlinear/lcmodulo.c (Type 2) [voir code]
IRCOM Group Alan Layec