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: 13Vous 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: 12Pour 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: 8Lorsque 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: 0Remarque
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.
