La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Création de données à virgule fixe dans MATLAB
Les exemples suivants montrent comment créer des données à virgule fixe à l’aide de l’objet Fixed-Point Designer™ fi
.
L’appel de fi
sur un nombre produit un nombre à virgule fixe avec un signe par défaut ainsi qu’une longueur de mot et de fraction par défaut.
fi(pi)
ans = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
Vous pouvez spécifier le signe (1 pour signé, 0 pour non signé) ainsi que les longueurs de mot et de fraction.
fi(pi,1,15,12)
ans = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 15 FractionLength: 12
Pour créer des valeurs entières à virgule fixe, spécifiez une longueur de portion fractionnaire de 0.
fi(1:25,0,8,0)
ans = Columns 1 through 13 1 2 3 4 5 6 7 8 9 10 11 12 13 Columns 14 through 25 14 15 16 17 18 19 20 21 22 23 24 25 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 8 FractionLength: 0
fi(rand(4),0,12,8)
ans = 0.1484 0.8125 0.1953 0.3516 0.2578 0.2422 0.2500 0.8320 0.8398 0.9297 0.6172 0.5859 0.2539 0.3516 0.4727 0.5508 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 12 FractionLength: 8
Lorsque vous écrivez du code, vous voulez parfois tester différents types de données pour vos variables. Le fait de séparer les types de données de vos variables de votre algorithme rend le test beaucoup plus simple. En créant un tableau de définitions des types de données, vous pouvez de manière programmatique basculer votre fonction entre un type de données à virgule flottante et un type de données à virgule fixe. L’exemple suivant montre comment utiliser cette technique et créer un tableau de zéros.
T.z = fi([],1,16,0);
z = zeros(2,3,'like',T.z)
z = 0 0 0 0 0 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 0
Remarque
Pour un exemple complet illustrant l’implémentation de cette technique, voir Implement FIR Filter Algorithm for Floating-Point and Fixed-Point Types Using cast and zeros.