График сигнала в реальном времени от порта USB 3.0 на С#?

Я хочу построить очень быстрый сигнал, поступающий от порта USB3.0 (на самом деле это сигнал датчика, который передается на мой компьютер через FTDI: FT601 со скоростью передачи данных 50 МГц) в программе C #. программа должна иметь возможность показывать данные в реальном времени. полоса пропускания сигнала, которая важна для меня, составляет около 4 кГц-200 кГц.

Я пробовал несколько библиотек для отображения данных в реальном времени, таких как: OpenGL, C# MSChart, библиотека ZedGraph. но самая высокая скорость, которую я получил до сих пор от этих разных методов, составляет около 100 Гц для графика, и ЭТОГО НЕ ДОСТАТОЧНО, чтобы показать импульсные характеристики, которые обнаруживает мой датчик.

Есть ли способ, который поможет мне быстрее показать мой сигнал?


person fatemeh.rastegar    schedule 16.09.2018    source источник
comment
А ваши глаза достаточно быстры для 100Гц и выше? К вашему сведению, стандартные человеческие глаза работают на частоте около 24 Гц. Так ты, должно быть, Супер- или Человек-Паук, не так ли?   -  person Sir Rufo    schedule 16.09.2018
comment
Вы думаете, что вам нужна вся эта скорость, но на самом деле это не так... Проведите небольшое исследование текущей частоты обновления монитора, а затем еще раз подумайте о том, о чем вы спрашиваете. И после всего этого загляните в SciChart, если вам действительно нужна производительность, но это будет стоить вам ДЕНЬГИ. ... Никто не будет делать вашу работу за вас бесплатно... :O) Что вам действительно нужно сделать, так это буферизовать ваши данные, а затем показать их в реальном времени в замедленном режиме.   -  person jsanalytics    schedule 16.09.2018
comment
продолжительность одного импульсного отклика составляет около 250 мкс. поэтому программа построения графика не должна быть медленной, потому что программа пропускает импульс. Мне нужна программа для построения графиков С#, которая может отображать импульс (с его пульсациями и деталями), похожий на импульсы, которые я вижу на своем осциллографе :), но на компьютере :)   -  person fatemeh.rastegar    schedule 16.09.2018
comment
чтобы повысить производительность моей программы, я определил два потока для чтения данных (из FTD) и построения графика. но все же медленно, и плоттер пропускает импульсы   -  person fatemeh.rastegar    schedule 16.09.2018
comment
Я забыл упомянуть, что я субдискретизирую полученные данные (до 200 кГц) для построения графика.   -  person fatemeh.rastegar    schedule 16.09.2018
comment
@fatemeh.rastegar Вы думаете, что осциллографы имеют частоту кадров 100 МГц ??? Конечно, вам не нужно рендерить с низким fps, а показывать быстрый сигнал ... для этого и нужна база времени. см. отображение данных в реальном времени на (qwt) осциллографе, есть и другие параметры, такие как буферизация некоторой продолжительности времени и медленное подробное отображение ...   -  person Spektre    schedule 17.09.2018


Ответы (1)


Давайте представим на мгновение, что у вас есть бесконечно быстрый компьютер. Максимальное быстрое получение обновления теперь будет определяться частотой обновления дисплея устройства.

Средний монитор имеет частоту обновления 60 Гц. На таком устройстве вы никогда не сможете отображать более 60 обновлений в секунду. Лучшие мониторы могут воспроизводить 120 Гц. Но ничего лучше этого вы не найдете.

Кроме того, у большинства ЖК-дисплеев есть задержка (время между отправкой изображения компьютером и его фактическим появлением на экране) порядка 20+ мс. Так что это тоже смутит вас.

Если вы хотите отображать данные, которые поступают с большей частотой, чем может отображать ваше устройство отображения, лучшее вы можете просто отображать несколько наборов данных с каждым кадром, отправляемым на дисплей. Таким образом, вместо того, чтобы пытаться отправлять данные с частотой 100 кГц на монитор по одной выборке за раз, разделите 200 кГц на группы по 60 Гц. Таким образом, вы должны показывать 3333 семпла в одном кадре с частотой 60 Гц. Или возьмите среднее значение этих образцов и представьте его. Или проведите какой-либо другой статистический анализ и представьте его в виде агрегации.

person Nicol Bolas    schedule 16.09.2018