Creazione di dati in virgola fissa in MATLAB
Gli esempi seguenti illustrano come creare dati in virgola fissa utilizzando l’oggetto Fixed-Point Designer™ fi
.
Chiamando fi
su un numero produce un numero in virgola fissa con firma predefinita e lunghezze predefinite della parola e della frazione.
fi(pi)
ans = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
È possibile specificare la firma (1 con firma, 0 senza firma) e le lunghezze della parola e della frazione.
fi(pi,1,15,12)
ans = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 15 FractionLength: 12
Per creare dei valori interi in virgola fissa, specificare 0 come lunghezza della frazione.
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
Quando si scrive un codice, a volte si desidera testare i diversi tipi di dati delle variabili. Separare i tipi di dati delle variabili dall’algoritmo rende il test molto più semplice. Creando una tabella di definizioni del tipo di dati, è possibile commutare la funzione, a livello di codice, tra tipi di dati in virgola mobile e tipi di dati in virgola fissa. L’esempio seguente mostra come utilizzare questa tecnica e creare un array di zero.
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
Nota
Per l’esempio completo sull’implementazione di questa tecnica, vedere Implement FIR Filter Algorithm for Floating-Point and Fixed-Point Types Using cast and zeros.