(这些小知识在笔记本中写下可能过段时间就忘记了,所以在这里持续性盖楼)
sin(2*pi)在matlab中是一个很接近但不为0的数。因为pi是无限不循环小数,而matlab浮点数精度有限,所以只是接近。cos(pi/2)同理。sin(0)和cos(0)不受影响
【关于取整】
1. fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
2. floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1
3. ceil,与floor相反,它的意思是天花板,也就是取比它大的最小整数,即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2
4. round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。
【对二进制负数取补码】
复数补码,即取反加一。对于位长位n的数,可直接加上2^(n+1)得到补码。
如下例,对24位长的数组中的复数取补码
a_I = floor(simout_I'*2^21);
a_Q = floor(simout_Q'*2^21);
%对负数数据取补码
a_I(a_I<0) = 2^24 + a_I(a_I<0);
a_Q(a_Q<0) = 2^24 + a_Q(a_Q<0);
【细碎】
dec2hex(floor(0.4*2^30),9) ;9 可确定输出数据的长度