Умножить два объекта используя fimath объект
c = mpy(F,a,b)
c = mpy(F,a,b) выполняет элементарное умножение на a и b использование fimath F объекта. Это полезно в случаях, когда вы хотите переопределить fimath объекты a и b, или если fimath свойства, связанные с a и b разные. Область выхода fi c объекта не имеет локального fimath.
a и b можно оба fi объекты с такими же размерностями, если они не являются скаляром. Если либо a или b скаляром, тогда c имеет размерности нескалярного объекта. a и b могут также быть двойными, одинарными или целыми числами.
В этом примере c является 40-битным продуктом a и b с длиной дроби 30.
a = fi(pi); b = fi(exp(1)); F = fimath('ProductMode','SpecifyPrecision',... 'ProductWordLength',40,'ProductFractionLength',30); c = mpy(F, a, b)
c =
8.5397
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 40
FractionLength: 30
c = mpy(F,a,b) подобно тому, как
a.fimath = F;
b.fimath = F;
c = a .* b
c =
8.5397
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 40
FractionLength: 30
RoundingMethod: nearest
OverflowAction: saturate
ProductMode: SpecifyPrecision
ProductWordLength: 40
ProductFractionLength: 30
SumMode: FullPrecision
но не идентично. Когда вы используете mpy, а fimath свойства a и b не изменяются, и выходные fi c объекта не имеет локального fimath. Когда вы используете синтаксис c = a .* b, где a и b иметь свои собственные fimath объекты, выходные fi c объекта получает то же fimath объект как входы a и b. Дополнительные сведения см. в разделе "Правила fimath для арифметики с фиксированной точкой" Руководства пользователя по Fixed-Point Designer™ ".