Программа для генератора G02.20
Мы делали-делали и сделали! Прошу любить и жаловать! Программа для работы с генератором LabFor-G02.20. Пока юна и неопытна, слишком много todo и нереализованных фичь, но вполне работоспособна и позволяет освоить базовый функционал генератора.
Что сделано:
- Независимая работа с каждым каналом.
- Сохранение сессии. Вам не придется выставлять крутилки, кнопочки и циферки каждый раз при запуске — все будет сохранено и восстановлено. Кроме того, файл сессии удобно высылать нам в баг-репорте.
- Демо-режим. Оценить функционал программы можно и не подключая прибор.
- Автоматический выбор локализации (русская, английская версии).
- Реализованы сигналы: синус, треугольник, пила, меандр, импульс, шум, генератор качающейся частоты (ГКЧ).
Программа пока не требует установки (инсталлятор возможно понадобится позднее) и может быть запущена непосредственно после того, как архив будет распакован.
Теперь о сигналах по порядку.
Синус
Все предельно просто. Управляем размахом (Vpp), Частотой, Смещением (постоянная составляющая), начальной Фазой.
Управление фазой актуально при использовании двух каналов. Для того, чтобы после изменения частоты фазы были синхронны, нужно сбросить аккумулятор фазы (это имеет отношение к внутренней архитектуре прошивки ПЛИС, если будет интересно, расскажу отдельно). В меню Прибор выбираем пункт "Сбросить фазу".
Треугольник
Настройки те же, форма другая ...
Пила
Все те же настройки, но можно еще выбрать направление: убывающая форма или возрастающая.
Меандр
Генерируем прямоугольный сигнал с фиксированной скважностью 2. Настройки такие же, как у синуса и треугольника.
Импульсы
Алгоритм генерации сигнала импульсной формы принципиально отличается от генерации меандра. Для меандра использован алгоритм NCO (Numerically Controlled Oscillator) — также как и для синуса, треугольника, пилы, а генерация импульсов осуществлена с помощью обыкновенных счетчиков-делителей. При NCO можно с высоким разрешением управлять частотой, но в фазовый шум будет достаточно высокий, особенно в верхней части диапазона частот. При генерации счетчиком джиттер будет минимален (определяется джиттером задающего генератора), но шаг перестройки частоты в верхней части диапазона давольно большой.
Регулируется Период сигнала и Длительность импульса и/или коэффициент Заполнения. Можно получить сигнал различной скважности. В том числе имитировать дельта-импульс.
В отличие от предыдущих типов сигнала, где задавался размах и постоянная составляющая, в настройках импульса задаем Максимум (напряжение верхней полочки) и Минимум (напряжение нижней полочки). Мы решили, что так будет удобнее формировать униполярный сигнал для цифровой техники.
Шум
Шум имеет два типа Распределения: нормальное, оно же Гаусса и равномерное. Задается размах (Vpp) и постоянная составляющая (Cмещение). Так как шум генерируется в виде последовательности псевдослучайных чисел, то можно управлять скоростью генерации (количеством новых отсчетов сигнала на выходе генератора в единицу времени). Правда, для удобства настройки задается не скорость, а время между отсчетами (Длительность).
КГЧ
Генератор качающейся частоты (более известен как frequency sweep generator) плавно меняет частоту сигнала по линейному закону.
Помимо привычных Vpp (размах) и Смещения задается Частота 1, Частота 2, Режим работы, Шаг частоты и Длительность шага.
Режим работы определяет закон измения частоты:
- "F1 -> F2". Частота сигнала плавно нарастает: изменяется от значения Частота 1 до значения Частота 2, а затем скачком возвращается в значение Частота 1.
- "F2 -> F1". Частота сигнала плавно убывает: изменяется от значения Частота 2 до значения Частота 1, а затем скачком возвращается в значение Частота 2.
- "F1 -> F2 -> F1". Частота сигнала плавно возрастает до значения Частота 2, а затем плавно убывает до значения Частота 1.
При "плавной" перестройке частота меняется дискретно. Скоростью изменения можно управлять через параметры Шаг частоты и Длительность шага, физический смысл которых иллюстрирует рисунок ниже.
На рисунке для примера выбран режим "F1 -> F2". Несмотря на то, что частота изменяется скачкообразно, алгоритм генерации NCO делает фазу непрерывной и при достаточно маленьком шаге можно получить сигнал не хуже аналоговых ГКЧ.
Где взять?
Программа распространяется в виде открытых исходных кодов. Можно скачать, собрать, поправить ;). Но для ленивых всегда есть готовый архив с бинарником: скачал, распоковал -- работай.