首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB如何读取和解释.bin文件中的二进制数字?

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

Stack Overflow用户
提问于 2013-05-09 22:42:01
回答 1查看 3.9K关注 0票数 0

我有一个扩展名为.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,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 23:02:27

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

代码语言:javascript
复制
fid = fopen('path_to_your_file', 'r');
nSamples = 104000;
data = fread(fid, nSamples, 'int16');
fclose(fid);

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16464508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档