0

我有一个扩展名为 .bin 的二进制文件。该文件由数据采集软件创建。基本上,一个“测量计算”的 16 位数据采集硬件正在接收来自传感器的信号(经过放大器放大后)并通过 USB 将其发送到 PC。然后程序/软件正在生成一个 .bin 文件,该文件对应于从数据 aq 接收到的串行数据。硬件。有几种方法可以读取这个 .bin 文件并在 MATLAB 中绘制信号。

当我用十六进制编辑器打开这个 .bin 文件时,我可以看到 ASCII 或一个和零(二进制)。问题是我不知道如何解释这些知识。16秒得到的文件有208000字节。我在想每 2 个字节对应一个样本,因为 DAQ 设备具有 16 位分辨率。所以我想例如一个 16 位数据,如 1000100111110010 由 MATLAB 转换为相应的电压电平。但我试图打开两个不同的 .bin 文件,它们具有不同的电压电平,例如 1V 和 9V,但我认为这些数字似乎与我的想法无关。

MATLAB 如何从 .bin 文件中读取和解释二进制数字?

谢谢,

4

1 回答 1

1

假设您的 .bin 文件实际上只是记录值的转储,您可以使用以下方法读取数据fread(有关更多信息,请参阅文档):

fid = fopen('path_to_your_file', 'r');
nSamples = 104000;
data = fread(fid, nSamples, 'int16');
fclose(fid);

但是,您还需要知道此数据是有符号还是无符号 - 如果它是无符号的,您可以将'uint16'其用作第三个参数fread。您还应该找出它是大端还是小端......您应该检查原始程序的源代码。

记录这样采集的采样率是个好主意,因为在不知道这些信息的情况下,除了对它进行琐碎的分析之外,您将很难做任何事情。通常这种数据存储在 .wav 文件中,因此数据及其采样率(实际上是位深度)都存储在文件中。这样,您就不需要一张单独的纸来保存您的文件(此外,在 MATLAB 中读取 .wav 文件非常容易)。

于 2013-05-09T15:02:26.877 回答