问题标签 [data-acquisition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 带有采样数据的熊猫(工程)
我是熊猫新手。我发现它对时间序列数据很有用,但仅当采样间隔是标准单位(例如,分钟、小时、天)时。如果我以更快但不寻常的速率(例如数据采集)对数据进行采样怎么办?例如。512 Hz(采样间隔 ~1.95 ms)
我可以不用 Pandas,但只是想知道它是否适合这种类型的时间序列,其中采样间隔不是标准时间单位的整数。
编辑:我很抱歉不精确。我设法让 Pandas 通过以下代码理解类似工程的时间序列(我们更习惯于以 Hz 为单位指定采样频率,而不是像天、周、月等长周期)...
假设记录开始于 2011 年 1 月 1 日零小时,这有效并获得了正确的采样频率。
但是,从文档中如何做到这一点并不明显。
在尝试以 512Hz(频率加倍)重新采样数据时,我也遇到了问题。我收到此错误消息:
C:\Users\Andrew\Anaconda\lib\site-packages\pandas\core\format.py:1872: RuntimeWarning: 在更大的
has_large_values = (abs_vals > 1e8).any() 中遇到无效值 C:\Users\Andrew\ Anaconda\lib\site-packages\pandas\core\format.py:1873: RuntimeWarning: 在少遇到无效值 has_small_values = ((abs_vals < 10 ** (-self.digits)) & C:\Users\Andrew\Anaconda \lib\site-packages\pandas\core\format.py:1874: RuntimeWarning: 在更大 (abs_vals > 0)).any() 中遇到无效值如果我将采样周期从“3906U”更改为“2S”并重新采样为“1S”(将采样频率加倍),我不会收到此错误。
我的数据有 800 万个样本。如果我尝试绘制 Pandas TimeSeries 对象,则会出现内存错误。
如果我只是将数据视为一维 numpy 数组,我不会遇到这些问题。所以我想我会在我通常使用的工程时间序列中坚持使用 numpy。
PS。我的编辑只是尝试帮助任何尝试对长数据和基于 Hz/KHz/MHz 等的采样做类似事情的人。
python - 具有多线程 Python 的数据显示 GUI
我基本上是在模拟从串行端口获取数据并将其绘制在使用 Tkinter 制作的 GUI 中显示的图形上。传入的串行数据由一个简单的 while 循环模拟,该循环计算一个正弦函数并将该值添加到一个大小为 100 的队列中,程序的数据生成部分写在名为DataThread的类下
另一个类生成 GUI,它创建DataThread类的实例并调用函数start_d应该启动生成数据的线程。我想通过按停止按钮来停止线程,但我不确定如何停止线程。
最后一部分只是运行 GUI
我基于以下问题的代码:基于串行数据动态更新 Tkinter 窗口 不同之处在于 GUI 线程和数据线程都是同时创建的,但在我的情况下它不起作用,因为我想启动仅在按下开始按钮时线程。
timing - 串行输出 ADC - 最短采集时间
我正在使用这个 ADC:AD7903 - http://www.analog.com/media/en/technical-documentation/data-sheets/AD7903.pdf
我不明白采集时间与 SPI 接口可能的最大时钟速度有关的限制。
我使用的 VIO 是 3.3V,理论上最大频率为 83.33MHz(最小周期为 12ns)。假设我在没有忙碌指示灯的 3 线驱动中使用 80MHz = 12.5ns 周期。
参考时序表(第 5 页)和时序图(第 18 页):
- 12.5ns x 16 个时钟周期 = 200ns
- 十个 10ns
即使 VIO = 2.5V:15ns x 16 + 15ns = 255 ns
为什么最小采集时间是 290ns?
matlab - LabVIEW 中的数据到 Matlab 进行处理
我想做一个心电图/心电图的生物识别系统。假设Matlab不实时进行数据采集(用于监控),有没有办法在LabVIEW中进行监控和数据采集,然后与Matlab同时进行信号处理呢?
serial-port - 将来自 COM 端口上传感器的模拟信号存储到 Java 中
我正在使用 ECG 信号进行嗜睡检测项目,我仍然是 Java 编程的新手,我有一个传感器,我已经调整它可以在笔记本电脑的 COM 端口上发送 ECG 信号,我可以在 Java 中获取该信号并保存它作为我笔记本电脑上的文件?
提前致谢!
matlab - matlab在获取pointgrey图像时崩溃
我有一个 pointgrey USB3 相机,我与 Matlab R2015a 连接。一切正常,除了我得到随机的 Matlab 崩溃 - 通常每 10000 张图像。以下是崩溃消息。我运行的典型程序如下所示:
我无法弄清楚是什么触发了崩溃。如果有人有任何线索,我将不胜感激。谢谢,GD
c++ - 从旧的 DirectX 7 C++ 代码更新... [dx7vb.dll]
快速背景:这是一个大型且古老的软件项目,涉及 C# UI 代码和一些底层 C++ 代码。这个问题与 C++ 代码有关。
C++ 负责在显示快速移动波形和快速变化数据的屏幕方形区域上创建“高效”(当时)滚动效果。显然,我们的图表软件 [TeeChart,我们仍在使用] 内置的“滚动”功能并没有减少它。(也许 TeeChart 2013 现在确实有足够的滚动?不确定......)
现在显然正在使用的 C++ 中 DirectX 7 的程序集是“dx7vb.dll”。这让我有点困惑,因为“dx7vb.dll”意味着 Visual Basic。
我想用一些现代 DirectX 或 OpenGL 调用(或 TeeChart 调用,如果可能的话?)替换这个 DLL。问题是,我不知道在哪里可以找到有关 DirectX 7 的参考资料,因此我可以对 DX7 调用进行逆向工程并确定合适的替代品。(但是,我确实了解需要发生的事情,并且我对 OpenGL 有深入的了解,因此这也可能是一种选择..)
所以我的问题是:
- 在哪里可以找到这个“dx7vb.dll”的某种解释?它与 Visual Basic 有某种关系吗?
- 什么是 C++ 中的“.TLB”文件?只是另一种类型的组装?
- 使用的核心对象是IDirectX7Ptr,它有 2 个谷歌搜索结果... 有没有人有关于这个对象的信息,所以我可以了解这些调用正在完成什么?
- 现代 TeeChart .NET 库是否比 15 多年前更好地支持实时显示?
非常感谢您的时间。
编辑:要清楚,是的,我有所有的来源。我显然没有“dx7vb.dll”的来源。
EDIT2:在注册表中环顾一番后,我发现它实际上已注册为“DIRECT.DirectX6.0”,并且大多数正在注册的 COM 对象都引用了“DirectX 6”。所以在经典的微软时尚中,“dx7vb.dll”似乎保存了 DirectX 6 对象的信息......
python - Python:使用 pyvisa 或 pyserial 获取设备“模型”
我编写了一个数据采集程序/脚本,它与我们合作开发的设备一起工作。问题是我只能从此设备读取。无法写入,因此无法使用串行“?IDN*”命令知道这是什么设备。
唯一定义此设备的是它的“型号”,可以在 Windows 控制面板的“设备和打印机”中看到。下图显示了它:
设计该设备的人能够创建一个 labview 简单程序,该程序通过 NI-VISA 通过称为“Intf Inst Name”的东西从设备中提取此名称,该名称称为“接口信息:接口描述”。
如果我得到这个型号名称并将其与 pyvisa 设备名称进行比较,我将能够自动检测我们设备的存在,这是一件很重要的事情,以防发生 USB 断开连接。这是因为 VISA 通过一个在每台计算机上可能不同的名称打开设备,但这个名称“GPS DATA LOGGER”在任何地方和任何时候都是相同的。
我需要这个解决方案是跨平台的。这就是为什么我需要使用 pyvisa 或 pyserial。尽管任何跨平台替代方案都可以。
所以我的问题是:如何使用 pyvisa/pyserial 找到与设备型号对应的型号名称(在我的情况下为“GPS DATA LOGGER”)?
请询问您可能需要的任何其他信息。
更新
我了解到有一个名为“VI_ATTR_INTF_INST_NAME”的“属性”pyvisa 可以获得这个名称,但我不知道如何使用它。有谁知道如何阅读这些属性?