Main Content

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.

Exemple 1. Creazione di un numero in virgola fissa con le proprietà predefinite

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

Exemple 2. Creazione di un numero in virgola fissa con firma, lunghezza della parola e lunghezza della frazione specificate

È 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

 Gli oggetti fi e numerictype

Exemple 3. Creazione di valori interi in virgola fissa

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

Exemple 4. Creazione di un array di valori casuali in virgola fissa

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

Exemple 5. Creazione di un array di zero

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

Remarque

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.