неділя, 24 травня 2020 р.

Бенчмарк реєстрацій осцилографів Agilent MSO-60хх/Tektronix MSO-40хх

Оскільки стандартне ПЗ не забезпечує належного комфортного перегляду та роботи із записаними осцилограмами, а обсяг пам'яті на 10 млн точок при частоті виборок до 5 гігасемплів створює величезні файли архівів, які хоч і йдуть у класичному текстовому форматі CSV, але вимагають чималих оперативних ресурсів ПК. Було вирішено прокачати наш бенчмарк у частині всеїдності архівів осцилографів двох вендорів (відмінності в CSV лише в шапці)...

Довелося вирішити наступну проблему - при вибірці реєстрацій з числом точок більше сотні тисяч (а їх порядок легко перевалює десятки і сотні мільйонів точок на тривалості 0.2 сек) та їх візуалізації на тренді дуже добре з'їдається RAM. Це невірний підхід як з погляду проектування програми і раціонального використання ресурсів. Адже немає сенсу виводити тренд з кількістю точок більшою роздільної здатності екрану вашого монітора і тим більше зберігати їх у пам'яті.

    

Простий приклад, роздільна здатність монітора по-горизонталі 1920 пкс, по-вертикалі 1080 пкс, а кількість точок у тренді 10 млн. Ви просто їх не побачите фізично. То навіщо їх пхати у контейнер тренду? Правильно, немає жодного сенсу. Необхідно проріджувати вибірки з пошуком характерних екстремумів

Алгоритм вибірки та візуалізації трендів у бенчмарку наступний

  1. Скануємо весь архів через файлові потоки для визначення кількості точок реєстрацій по всіх каналах. З цифровими осцилографами все простіше - їх реєстрація в CSV-файлі міститься у вигляді амплітуд всіх каналів в одному рядку з однією тимчасовою міткою, відокремлених комами. Таких рядків – необмежена кількість. Таким чином, по-горизонталі кількість точок по каналах АЦП однакова
  2. Визначаємо поточну роздільну здатність екрана користувача та розраховуємо кількість інтервалів STEP, у кожному з яких будемо здійснювати пошук максимального піку (екстремуму) за модулем. Кількість екстремумів дорівнює кількості сканованих інтервалів, тобто. точок на екрані. Фактично, який би часовий інтервал не вибрав користувач візуалізації, кількість точок на екрані для кожного каналу не перевищить дозволу монітора по-горизонталі. Тобто. розмір архіву з реєстраціями не має значення, чи він хоч пару кілобайт, хоч десяток гігабайт
  3. Парсим реєстрацію та видаємо у тренд максимальний екстремум з кожного інтервалу STEP при проході по всій довжині тимчасової вибірки
  4. Користувач бачить на екрані проріджений архів за часом початку та кінця запису
  5. При необхідності більш детального перегляду ділянки тренда, користувач виділяє необхідну ділянку на екрані лівою кнопкою миші та клавішами навігації +/-/Left/Right. Алгоритм визначає новий мінімум і максимум тимчасової ділянки та робить новий перерахунок необхідного інтервалу STEP, але вже для конкретної тимчасової вибірки, яку парсер візуалізує на екрані. Таким чином, мала ділянка з більшого тренду з N-точками розгортається на весь тренд з підвантаженням проріджених точок по кожному з каналів до дозволу екрана користувача
  6. Користувач має можливість повернути картинку тренда у вихідний стан, виконавши UnZoom або скасування через "гарячу клавішу" Escape, або завантаживши реєстрацію заново
  7. Користувач має можливість експорту та друку картинки тренду
  8. Користувачеві доступні файли реєстрацій як осцилографів Agilent, і Tektronix
  9. У межах кожного каналу по всьому полю тренду проводиться візуалізація "бігаючими маркерами" з відображенням амплітудно-часових параметрів та номера точки (з можливістю вибору абсолютних або відносних показників амплітуди по вертикалі згідно зсуву каналів щодо нуля)
  10. Кількість каналів, що відображаються на тренді необмежено, але керування зміщенням по-вертикалі доступне для 4-х (для найпоширеніших моделей)
Оцифрування обраної ділянки дампа заданого каналу цифрового осцилографа з частотою децимації меншої частоти сигналу:

    


Частота обирається за умови мінімуму побічних гармонік:
Fd = 4Fs/(2n-1)
для аналізу квадратур вихідного сигналу, наприклад ЛЧМ (LFM)

Постскриптум

Шановні читачі, якщо мої дописи вас зацікавили – пiдтримайте збiр або ставайте спонсорами Youtube-каналу LaboratoryW з ексклюзивними лайфхаками