Calcular pendiente y sesgo
¿Qué es el escalado de pendiente y sesgo?
Con el escalado de pendiente y sesgo, debe especificar la pendiente y el sesgo de un número. El valor real de un número escalado en base a pendiente y sesgo se puede representar mediante:
Calcular pendiente y sesgo
Comience por el extremo que desee, la representación de signo y la longitud de palabra.
lower_bound = 999; upper_bound = 1000; is_signed = true; word_length = 16;
Para encontrar el rango de un objeto fi con una longitud de palabra y una representación de signo específicos, use la función range.
[Q_min, Q_max] = range(fi([], is_signed, word_length, 0));
Para encontrar la pendiente y el sesgo, resuelva el sistema de ecuaciones:
lower_bound = slope * Q_min + bias
upper_bound = slope * Q_max + bias
Reescriba estas ecuaciones en forma de matriz.
Resuelva para determinar la pendiente y el sesgo.
A = double ([Q_min, 1; Q_max, 1]); b = double ([lower_bound; upper_bound]); x = A\b; format long g
Para encontrar la pendiente o la precisión, llame al primer elemento del vector pendiente-sesgo, x.
slope = x(1)
slope =
1.52590218966964e-05Para encontrar el sesgo, llame al segundo elemento del vector x.
bias = x(2)
bias =
999.500007629511Cree un objeto numerictype con el escalado de pendiente y sesgo.
T = numerictype(is_signed, word_length, slope, bias)
T =
DataTypeMode: Fixed-point: slope and bias scaling
Signedness: Signed
WordLength: 16
Slope: 1.5259021896696368e-5
Bias: 999.500007629511Cree un objeto fi con numerictype T.
a = fi(999.255, T)
a =
999.254993514916
DataTypeMode: Fixed-point: slope and bias scaling
Signedness: Signed
WordLength: 16
Slope: 1.5259021896696368e-5
Bias: 999.500007629511Verifique que el objeto fi que creó tenga las especificaciones correctas encontrando el rango de a.
range(a)
ans =
999 1000
DataTypeMode: Fixed-point: slope and bias scaling
Signedness: Signed
WordLength: 16
Slope: 1.5259021896696368e-5
Bias: 999.500007629511