用matlab將資料轉成10bit的16進位格式
finction [out]=BtscDataTrans(in)
% input range:+511~-511
x=abs(in);
x3=rem(x,10);
temp1=(x-x3);
x2=rem(temp1/10,10);
temp2=x-x2*100-x3;
x1=rem(temp2/100,10);
x1_abs=abs(x1);
y1=dec2bin(x,9);
for i=1:length(y1)
if (in>=0)
if (y1(i)=='0')
y2(i)=0;
elseif (y1(i)=='1')
y2(i)=1;
end
elseif (in<0)
if (y1(i)=='0')
y2(i)=1;
elseif (y1(i)=='1')
y2(i)=0;
end
end
end
if (in<0)
y3=y2+[0 0 0 0 0 0 0 0 1];
i=9;
while ((y3(i)==2)&(i>1))
y3(i)=0;
i=i-1;
y3(i)=y3(i)+1;
if ((i==1)&(y3(i)==2))
y3(i)=0;
end
end
y4=[1 y3];
elseif (in >=0)
y4=[1 y2];
end
a1=y4(1:2);
temp1=(2^1)*a1(1)+a1(2);
a2=y4(3:6);
temp2=(2^3)*a2(1)+(2^2)*a2(2)+(2^1)*a2(3)+a2(4);
a3=y4(7:10);
temp3=(2^3)*a3(1)+(2^2)*a3(2)+(2^1)*a3(3)+a3(4);
y=[dec2hex(temp1) dec2hex(temp2) dec2hex(temp3)];
% input range:+511~-511
x=abs(in);
x3=rem(x,10);
temp1=(x-x3);
x2=rem(temp1/10,10);
temp2=x-x2*100-x3;
x1=rem(temp2/100,10);
x1_abs=abs(x1);
y1=dec2bin(x,9);
for i=1:length(y1)
if (in>=0)
if (y1(i)=='0')
y2(i)=0;
elseif (y1(i)=='1')
y2(i)=1;
end
elseif (in<0)
if (y1(i)=='0')
y2(i)=1;
elseif (y1(i)=='1')
y2(i)=0;
end
end
end
if (in<0)
y3=y2+[0 0 0 0 0 0 0 0 1];
i=9;
while ((y3(i)==2)&(i>1))
y3(i)=0;
i=i-1;
y3(i)=y3(i)+1;
if ((i==1)&(y3(i)==2))
y3(i)=0;
end
end
y4=[1 y3];
elseif (in >=0)
y4=[1 y2];
end
a1=y4(1:2);
temp1=(2^1)*a1(1)+a1(2);
a2=y4(3:6);
temp2=(2^3)*a2(1)+(2^2)*a2(2)+(2^1)*a2(3)+a2(4);
a3=y4(7:10);
temp3=(2^3)*a3(1)+(2^2)*a3(2)+(2^1)*a3(3)+a3(4);
y=[dec2hex(temp1) dec2hex(temp2) dec2hex(temp3)];
留言