我有一个扩展名为.bin的二进制文件。此文件由数据采集软件创建。基本上,“测量计算”16位数据采集硬件接收来自传感器的信号(经过放大器放大后),并通过USB将其发送到PC。然后,程序/软件生成对应于从数据aq接收的串行数据的.bin文件。硬件。有几种方法可以读取这个.bin文件并在MATLAB中绘制信号。
当我使用十六进制编辑器打开这个.bin文件时,我可以看到ASCII码或1和0(二进制)。问题是我不知道如何解释这些知识。文件中有208000字节是在16秒内获取的。我认为每个2字节对应一个样本,因为DAQ设备具有16位分辨率。例如,我认为MATLAB将16位数据(如1000100111110010 )转换为相应的电压电平。但是我试着打开两个不同电压水平的.bin文件,比如1V和9V,数字似乎和我想的没有关系。
MATLAB如何读取和解释.bin文件中的二进制数字?
Thnx,
发布于 2013-05-09 23:02:27
假设您的.bin文件实际上只是记录的值的转储,您可以使用fread读取数据(有关更多信息,请参阅the documentation ):
fid = fopen('path_to_your_file', 'r');
nSamples = 104000;
data = fread(fid, nSamples, 'int16');
fclose(fid);但是,您还需要知道此数据是有符号的还是无符号的-如果数据是无符号的,则可以使用'uint16'作为fread的第三个参数。你也应该找出它是大端还是小端...你应该检查原始程序的源代码。
记录采样率是一个好主意,因为在不知道这些信息的情况下,之后除了对它进行微不足道的分析之外,您将很难做任何事情。这类数据通常存储在.wav文件中,因此数据及其采样率(实际上还有位深度)都存储在该文件中。这样,您就不需要单独的一张纸来处理您的文件(而且,在MATLAB中读取.wav文件也非常容易)。
https://stackoverflow.com/questions/16464508
复制相似问题