FN=dir(strcat(apath,'\PhaseOTDR13')); // 读取文件 fid=fopen(strcat(apath,'\',FN.name),'rb'); signal=fread(fid,FN.bytes,'uint32'); %列向量 signallow16 = uint16(bitand(signal, 65535)); signalhigh16= uint16(bitand( bitshift(signal, -16), 65535)); signallow16swap = int16( bitand(bitshift(signallow16,-8),255)+ bitand(bitshift(signallow16,8),65280)); signalhigh16swap = uint16(bitand(bitshift(signalhigh16,-8),255)+ bitand(bitshift(signalhigh16,8),65280)); for k=1:FN.bytes/4 if(bitshift(signalhigh16swap(k),-15)==1) signalhigh16swapint(k) = -(int16(bitxor(signalhigh16swap(k),65535)))-1; else signalhigh16swapint(k) = int16(signalhigh16swap(k)); end end signalhigh16swapint = signalhigh16swapint';
时间: 2024-02-29 20:56:21 浏览: 59
字符串拼接strcat使用及实现
这段代码是用来读取一个文件,并将其中的数据进行处理的。具体来说,它将文件中的数据按照 uint32 类型读取,并将其拆分成两个 uint16 类型的数据:signallow16 和 signalhigh16。然后,它对这两个数据进行一些位运算和类型转换,最终得到 int16 类型的 signallow16swap 和 uint16 类型的 signalhigh16swap。接下来,它使用一个 for 循环遍历所有的数据点,并根据 signalhigh16swap 中每个数据点的最高位来判断是否需要将其转换为负数。最后,它将处理后的数据转置成列向量并返回。
阅读全文