matlab中二进制有符号数数据文件生成
matlab的有符号方式说明
计算机中的有符号数多采用补码方式,对于补码方式:
正数:数表示,符号位为0
负数:反码加1得到补码,符号位为1
-89的二进制表示为 − 1011001 -1011001−1011001,其原码表示为 11011001 1 101100111011001,其反码表示为 10100110 1 010011010100110,则其补码表示为 10100111 1 010011110100111。
原文链接:https://blog.csdn.net/phunxm/article/details/129064333
示意图如下
matlab代码示意
signal = round(cos(2*pi*f_0*n*Ts)*(2^15-1));
sig = signal;
idx = find(sig<0);
sig(idx) = sig(idx) +(2^16); % 将原码表示转换为补码表示,也就是int16的类型