MATLAB定点生成法 能举个简单例子吗(初学者)
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/26 23:14:33
MATLAB定点生成法 能举个简单例子吗(初学者)
matlab定点实例
%Fixoverflow
clear;clc
a=2.1478;
b=0.12345;
%浮点结果
floatresult = a*b
%change a,b to fix-point data
fixa=fi(a,1,16,5)
fixb=fi(b,1,16,9)
%fix product
c=fixa*fixb
%保持结果的位宽为(16,8),由于a的小数位为5,b的小数位为9,结果要保持8位小数,则结果需要右移5+9-8=6位
d=bitshift(c,-6);
%获取低16位有效数据
e=bitget(d,16:-1:1);
%二进制转化为字符串
f=num2str(e);
%改二进制对应的十进制结果即位(16,8)的定点结果.
g=bin2dec(f)
%浮点结果为
h=g/2^8
%%%%%%%%%%%%%%%%%%%
%该结果和直接用fi运算的结果一致
J = fi(c,1,16,8)
%Fixoverflow
clear;clc
a=2.1478;
b=0.12345;
%浮点结果
floatresult = a*b
%change a,b to fix-point data
fixa=fi(a,1,16,5)
fixb=fi(b,1,16,9)
%fix product
c=fixa*fixb
%保持结果的位宽为(16,8),由于a的小数位为5,b的小数位为9,结果要保持8位小数,则结果需要右移5+9-8=6位
d=bitshift(c,-6);
%获取低16位有效数据
e=bitget(d,16:-1:1);
%二进制转化为字符串
f=num2str(e);
%改二进制对应的十进制结果即位(16,8)的定点结果.
g=bin2dec(f)
%浮点结果为
h=g/2^8
%%%%%%%%%%%%%%%%%%%
%该结果和直接用fi运算的结果一致
J = fi(c,1,16,8)