【问题标题】:Real-time signal plot from USB 3.0 port in C#?C# 中 USB 3.0 端口的实时信号图?
【发布时间】:2018-09-16 06:28:14
【问题描述】:

我想在 C# 程序中绘制一个来自 USB3.0 端口的非常快的信号(它实际上是通过 FTDI:FT601 以 50MHz 数据速率传输到我的计算机的传感器的信号)。该程序应该能够显示实时数据。对我来说重要的信号带宽大约是 4kHz-200kHz。

我尝试了几个用于绘制实时数据的库,例如:OpenGL、C# MSChart、ZedGraph 库。但是到目前为止,我从这些不同的方法中获得的最高速度大约是 100Hz,这不足以显示我的传感器检测到的脉冲响应。

有什么方法可以帮助我更快地显示我的信号?

【问题讨论】:

  • 你的眼睛够快 100Hz 及以上?仅供参考,“标准”人眼的工作频率约为 24Hz。所以你一定是超人或蜘蛛侠吧?
  • 认为你需要所有这些速度,但你真的不需要...对当前的显示器刷新率做一些研究,然后再想想你在问什么.毕竟,如果您真的需要性能,请查看SciChart,但这会花费您的金钱...没有人会免费为您完成工作...:O)您真正需要做的是缓冲你的数据,然后在“慢动作”中“实时”显示。
  • 一个脉冲响应的持续时间约为 250us。所以绘图程序不应该很慢,因为程序错过了脉冲。我想要一个能够显示脉冲(带有波纹和细节)的 c# 绘图程序,类似于我在示波器中看到的脉冲:) 但在计算机中:)
  • 为了提高我的程序性能,我定义了两个线程来读取数据(来自 FTD)并在图表中绘图。但仍然很慢,绘图员错过了冲动
  • @fatemeh.rastegar 你认为示波器有 100MHz fps 吗?粗略地说,它们不必以低 fps 渲染,而是显示快速信号……那是什么时基。请参阅plotting real time Data on (qwt )Oscillocope 还有其他选项,例如缓冲一段时间并慢慢详细显示...

标签: c# opengl mschart zedgraph real-time-data


【解决方案1】:

让我们假设您拥有一台速度无限快的计算机。现在,您可以获得更新的最快速度将由 display 设备的刷新率决定。

那里的平均显示器刷新率为 60Hz。在这样的设备上,您将永远能够每秒显示超过 60 次更新。更好的显示器可以做到 120Hz。但你不会找到比这更好的了。

此外,大多数 LCD 都有大约 20 毫秒以上的延迟(从计算机发送图像到实际出现在屏幕上的时间)。所以这也会让你感到困惑。

如果您想显示频率高于显示设备实际显示频率的数据,您可以做的最佳是在发送到的每一帧中简单地显示多组数据显示器。因此,与其尝试一次将 100kHz 的数据发送到监视器一个样本,不如将 200kHz 分成 60Hz 的组。因此,您应该在单个 60Hz 帧中显示 3'333 个样本。或者取这些样本的平均值并呈现出来。或者对它们执行一些其他统计分析,并将其作为聚合呈现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多