- •Занятие 4. Построение виртуального прибора, реализующего периодический сигнал с шумом
- •4.1. Создание VI – генератора синусоидального сигнала
- •4.2. Исследование биения частот
- •4.3. Исследование влияния шума на периодический сигнал
- •4.4. Запись данных в файл
- •Занятие 5. Ввод и вывод данных
- •5.1. Работа со строковыми переменными
- •5.2. Запись числовых данных
- •5.3. Считывание числовых данных
- •Занятие 6. Реализация прибора свертки функций
- •6.1. Свертка функций
- •6.2. Моделирование виртуального прибора
- •6.3. Исследование работы свертки
- •Занятие 7. Формулы, массивы, циклы. Функция гаусса
- •7.1. Структуры в LabView
- •7.2. Цикл For
- •Шаблон массива
- •Тип элементов
- •Массива не задан
- •7.3. Представление массивов данных
- •7.4. Считывание значений с графика. Узел Property Node
- •Занятие 8. Дифференцирование и интегрирование в labview
- •8.1. Численное дифференцирование
- •8.2. Численное интегрирование
- •Занятие 9. Интерполяция данных
- •9.1. Задание исходного массива
- •9.2. Использование структуры Sequence
- •9.3. Интерполяция полиномом
- •9.4. Интерполяция дробно-рациональной функцией
- •9.5. Сплайн-интерполяция
- •Занятие 10. Быстрое преобразование фурье. Фильтрация шумящих данных
- •10.1. Алгоритм быстрого преобразования Фурье
- •10.2. Фурье-образ шумящего периодического сигнала
- •10.3. Аподизация верхних частот Фурье-разложения
- •10.4. Фильтрация шумящей функции Гаусса
- •Занятие 11. Расчет фракталов. Экранная лупа
- •11.1. Построение фрактальной кривой
- •11.2. Самоподобие фрактала. Экранная лупа
- •Занятие 12. Примеры фильтрации шумящих экспериментальных данных
- •Занятие 13. Обращение свертки. Вычитание аппаратной функции
- •13.1. Свертка функций
- •13.2. Реализация обращения свертки
- •Занятие 14. Моделирование двухстробового интегратора
- •14.1. Принцип двухстробового интегратора
- •14.2. Генерация массива данных нестационарной емкостной спектроскопии
- •14.3. Построение VI, реализующего двухстробовый метод dlts
- •Занятие 15. Встраиваемые платы сбора и обработки информации. Цифровая плата pc-dio-96
- •15.1. Устройства связи с объектом
- •15.2. Конфигурирование платы сбора и обработки информации
- •15.3. Определение области адресов памяти, занимаемой daq-платой
- •15.4. Функциональная схема платы цифрового ввода-вывода pc-dio-96
- •Занятие 16. Пример построения информационно-измерительной системы с использованием технологии виртуальных приборов
- •16.1. Блок-схема установки c-V-измерений
- •16.2. Двоично-десятичная система счисления
- •16.3. Тестирование информационно-измерительной системы
Занятие 7. Формулы, массивы, циклы. Функция гаусса
Цель работы: изучение представлений формул и циклов в LabVIEW и построение виртуального прибора, рассчитывающего и строящего функцию Гаусса.
7.1. Структуры в LabView
В процессе программирования часто требуется выполнить опре-деленные вычисления по формулам, повторить их заданное количество раз в нужном порядке или до тех пор, пока выполняются определенные условия. LabVIEW содержит для этих целей шесть основных специальных структур: Sequence (Последовательность), Case (Выбор), For Loop (Цикл For...), While Loop (Цикл Пока...), Formula Node (Узел Формула) и Event (Событие), рис. 7.1. Цикл While использовался в 3.2.1 для многократного повторения измерений температуры, а структура Case – в 4.4 при записи данных на диск.
Для вычислений по формулам в LabVIEW служит Formula Node. При записи формул используется синтаксис, как в языке программирования Си; строчки с формулами разделяются точкой с запятой (semicolon). Все переменные в Formula Node подразделяются на входные и выходные. С помощью входных переменных значения передаются в Formula Node, а с помощью выходных – вычисляются и передаются наружу (рис. 7.2). Все входные переменные, которые появляются в формулах, должны быть соединены проводниками со своими терминалами. Все выходные переменные, которые подсоединены проводниками, должны появиться хотя бы в одном выражении.
Для того чтобы добавить входную (выходную) переменную, нужно нажать правую кнопку мыши на границе Formula Node и выбрать из всплы-вающего меню пункт Add Input (Add Output), как показано на рис. 7.2.
Вычислим значение функции Гаусса (функция нормального распределения) в одной точке х. Формула Гаусса имеет вид
,
где a – математическое ожидание (для гауссовой кривой оно совпадает с серединой распределения); – дисперсия распределения, характеризующая степень размытия кривой.
Расположите на передней панели элементы ввода значений x, a и .
На блок-диаграмме поместите Formula Node. Используя всплывающее меню, разместите на границе Formula Node идентификаторы входных переменных. Идентификаторы можно располагать в любом месте на границе Formula Node, причем выходные переменные обозначаются прямоугольниками c более жирными рамками.
Введите выражение формулы Гаусса в Formula Node. На границе Formula Node поместите идентификатор выходной переменной и соедините его с терминалом числового индикатора. Увеличьте количество значащих цифр в представлении числового индикатора. Для этого спозиционируйте на него курсор и при нажатой правой кнопке выберите пункт меню Format & Precision...
Запустите VI в циклическом режиме. Измените значения x, a, , посмотрите ответ.
7.2. Цикл For
Получим массив значений функции Гаусса для набора x. Для циклического расчета по формуле необходимо поместить Formula Node внутрь цикла.
В ыберите новый узел For Loop из палитры Structures. Далее, не нажимая кнопки мыши, переместите шаблон For Loop вне Formula Node и при нажатой левой кнопке “натяните” на Formula Node. Восстановите, если необходимо, нарушенные соединения.
Обратите внимание на то, что при пересечении проводником границы For Loop появляется маленький закрашенный прямоугольник (так называемый туннель). С помощью туннелей LabVIEW передает данные внутрь и наружу цикла For Loop (рис. 7.3).