MATLAB定点生成法 能举个简单例子吗(初学者)
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/01 02:36:55
MATLAB定点生成法 能举个简单例子吗(初学者)
![MATLAB定点生成法 能举个简单例子吗(初学者)](/uploads/image/z/19083278-38-8.jpg?t=MATLAB%E5%AE%9A%E7%82%B9%E7%94%9F%E6%88%90%E6%B3%95+%E8%83%BD%E4%B8%BE%E4%B8%AA%E7%AE%80%E5%8D%95%E4%BE%8B%E5%AD%90%E5%90%97%EF%BC%88%E5%88%9D%E5%AD%A6%E8%80%85%EF%BC%89)
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)