首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中16位示波器信号的8位噪声

Matlab中16位示波器信号的8位噪声
EN

Stack Overflow用户
提问于 2018-09-06 06:37:57
回答 3查看 177关注 0票数 2

我正在尝试使用Matlab从Lecroy 12位示波器捕获数据。

我创建了visa对象"scope",将格式长度设置为"word“(16位),然后使用"fread”获取16位有符号整数形式的波形数据:

代码语言:javascript
复制
fwrite(scope,'comm_format Def9,word,bin'); % The only relevant thing here is the "word" setting 

fwrite(scope,'C1:Wf?'); % This gets the waveform from channel 1 on the scope

[wf]=fread(scope,SampleSize,'int16');

问题是捕获的数据上有8位噪声。我附上了一张显示波形放大部分的图片。你可以看到有一个信号,将是示波器的完整12位分辨率,但似乎偶尔会有被数字化到8位的毛刺。这些毛刺不会出现在示波器上,只会出现在捕获的数据上。

以下是我的示例数据:

有没有人知道这是什么原因以及我如何纠正它?

EN

回答 3

Stack Overflow用户

发布于 2018-09-13 20:28:17

您的示波器数据是12位,但您使用的是16位的“字”。使用'bit12‘标志可能会解决你的问题。还要记住在fread()函数中使用'bit12‘。

票数 1
EN

Stack Overflow用户

发布于 2021-08-19 17:38:55

屏幕截图看起来有点像8位的示波器样本,12位是通过对多个样本进行平均得到的。这是在sigma delta转换器中提高分辨率的一种常见做法。我正在试着画一幅ASCII图:

代码语言:javascript
复制
signal ---->(+)----->8 bit ADC --> digital averaging 256 samples --> 12 bit
         |
       noise (+-1LSB)

也许你必须在软件中实现这一点,以便从原始数据中获得12位。( 12位的4个LSB信息在256个8位样本的统计分布中)如果你看着屏幕,你已经看到了处理过的数据,而不是原始数据。

票数 0
EN

Stack Overflow用户

发布于 2021-08-19 20:43:54

我会:

参考示波器手册,了解示波器对visa-capture-data数据应用了什么处理,以及对示波器显示屏上显示的数据应用了什么处理。如果它们是不同的,这可能就是问题所在。请查阅示波器制造商提供的有关接口的任何文档,将其与matlab/NI的接口文档进行比较,以查找预期格式上的任何差异。

尝试查看原始数据,即网络上的字节,看看是否存在格式问题。与visa所期望的格式相比。

操作数据集以查找模式。使用像pyvisa这样的东西,它可以让你快速尝试许多不同的参数。

运行不同的信号并检查模式。特别是寻找8位样本的数量与频率、振幅之间的任何关系。尝试交流和直流耦合。也有可能存在来自数字通信的干扰,您可以尝试使用隔离变压器隔离电路,或将隔离数字链路连接到示波器(尽管如果使用以太网,它可能已经通过磁件隔离)。

在寻求帮助时,我会提供更多细节。我会提供的一些东西是使用的示波器,我试图解决问题的东西,捕获图上的轴标签,捕获样本的转储以及我正在使用的仪器连接类型(lan,485等)。

最后,如果我解决了问题,尝试了提供的解决方案,但没有任何运气,或者放弃了所有希望,跑去加入了马戏团,我肯定会更新我的问题,以反映这一点。

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

https://stackoverflow.com/questions/52194237

复制
相关文章

相似问题

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