我想在C#程序中绘制一个来自USB3.0端口的非常快的信号(它实际上是通过FTDI传输到我的计算机的信号:FT601,数据速率为50MHz)。该程序应该能够显示实时数据。对我来说重要的信号带宽约为4kHz-200kHz。
我已经尝试了几个用于绘制实时数据的库,例如:OpenGL,C#MSChart,ZedGraph库。但是我从这些不同的方法到目前为止所获得的最高速度是大约100Hz的情节,而且这并不足以显示我的传感器检测到的脉冲响应。
有没有什么方法可以帮助我更快地显示我的信号?
让我们假装你有一台无限快速的电脑。现在,您可以获得更新的最快速度取决于显示设备的刷新率。
那里的平均监视器具有60Hz的刷新率。在这样的设备上,您将永远无法每秒显示超过60个更新。更好的监视器可以做120Hz。但是你找不到比这更好的东西。
此外,大多数LCD具有延迟(从计算机发送图像到它实际出现在屏幕上的时间之间的时间)大约20 + ms。所以这也会让你感到困惑。
如果要以比显示设备实际显示的频率更高的频率显示数据,那么您可以做的最好的事情就是在发送到显示器的每个帧上简单地显示多组数据。因此,不要试图一次一个样本向监视器发送100kHz的数据,而是将200kHz分成60Hz的组。所以你应该在一个60Hz的帧中显示3'333个样本。或者取这些样本的平均值并呈现。或者对它们进行一些其他统计分析,并将其作为聚合表示。