
- •Занятие 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. Тестирование информационно-измерительной системы
11.2. Самоподобие фрактала. Экранная лупа
LabVIEW предоставляет уникальные возможности среди всех математических пакетов по выделению и изучению отдельных фрагментов изображения на дисплее, поэтому он очень удобен для анализа фрактальных структур.
П
о
правой кнопке на XY
Graph
включите Visible
Items
>>
Graph
Palette
(Палитра
графика). Появляются следующие инструменты
(рис. 11.2, слева):
1 – Cursor Movement Tool (Инструмент перемещения курсора) – перемещает курсор по дисплею.
2 – Zoom (Фокус) – позволяет выделить отдельный участок изображения и изменить масштаб его отображения на дисплее.
3 – Panning Tool (Инструмент перемещения изображения) – позволяет зацепить график и перемещать его по дисплею.
Выберите инструмент Оператор и щелкните левой кнопкой мыши на инструменте Zoom дисплея. Появится дополнительная палитра масштабирования изображения (справа на рис. 11.2). Изучите различные возможности масштабирования и выделения фрагментов изображения. Увеличивайте масштаб до различения отдельных пикселей фрактальной кривой. Этот предел зависит от количества заданных при расчете итераций. В этом отличие рассчитанного нами численно фрактала от теоретических фракталов, с которыми работают математики.
Аналогично, реальные фракталы, наблюдаемые в природе, могут существовать лишь в ограниченной области размеров, поскольку элементы их структуры не могут быть как бесконечно малыми, так и бесконечно большими.
Составьте отчет по лабораторной работе. Отчет должен содержать: лицевую панель VI с изображением построенного фрактала, блок-диаграмму.
Оцените расстояние между пикселами изображения фрактальной кривой как функцию от числа итераций.
Занятие 12. Примеры фильтрации шумящих экспериментальных данных
Цель работы: получение практических навыков по численной филь-трации различных экспериментальных спектров, их считыванию и записи.
Создайте виртуальный прибор, обеспечивающий фильтрацию готовых экспериментальных данных посредством усечения верхних частот Фурье-разложения. С этой целью необходимо модернизировать виртуальный прибор, разработанный в занятии 10.
Добавьте в блок-схему вместо узла, рассчитывающего функцию, узел ввода данных с диска Read From Spreadsheet File.vi из палитры File I/O (см. занятие 5). Сформируйте функцию аподизации из наклонного и горизонтальных участков. Для их объединения используйте функцию Build Array. Щелкните по входу Build Array правой кнопкой мыши и выберите из всплывающего меню пункт Concatenate Inputs. Как указывалось в предыдущем занятии, эта функция дописывает элементы второго массива после элементов первого, так что общая длина объединенного массива равняется сумме длин исходных массивов.
Загрузите файл экспериментальных данных (exp1.dat), представляющий собой одномерный массив чисел с плавающей запятой, разделенных знаками табуляции (файл типа Spreadsheet). Получите количество точек в экспериментальном спектре (функция Array Size из палитры Array).
Внимание! В этом занятии вам потребуется хранить в оперативной памяти содержимое загружаемых файлов. Ранее мы использовали режим непрерывного запуска. Удобнее применить структуру While Loop, как на рис. 12.1, вынеся узел считывания за пределы While. Теперь после однократного запуска программы данные из считанного файла оказываются доступны для непрерывной обработки. Окончание процедуры обработки достигается выключением кнопки Stop. Данный способ корректнее, чем использование кнопки непрерывного запуска, его целесообразно использовать и в других случаях.
Подберите параметры функции аподизации с целью оптимальной фильтрации экспериментального шума. Сравните исходную и экспериментальную кривые. Поскольку Фурье-трансформанта в LabVIEW представляется в виде симметричной функции, содержащей области положительных и отрицательных частот, а функция аподизации на рис. 10.2 вводится в области малых положительных частот, то, возможно, придется построить ее симметричное отображение в область отрицательных частот или использовать узел Reverse 1D Array (Обратить массив) из палитры Array. (Необходимость использования двусторонней функции аподизации зависит от конкретной реализации FFT.VI в зависимости от версии LabVIEW.)
Если файл с данными эксперимента имеет другой формат представления чисел (файл exp2.dat), отличный от Spreadsheet, рассмотрите два возможных варианта его адаптации:
1) загрузите исходный файл в текстовый редактор (типа Word) и приведите его к типу Spreadsheet с помощью команд Find и Replace;
2
)
введите в блок-схему (с помощью Select
a
VI…)
виртуальный прибор Extract
Numbers.vi
(рис. 12.2), который находится в каталоге
EXAMPLES
>> GENERAL >> STRINGS.LLB.
Этот VI находит все числа в произвольной
строке и формирует из них одномерный
массив чисел. При этом между числами
могут располагаться любые символы.
Поскольку исходный файл может иметь
произвольный формат данных, замените
Read
From Spreadsheet File.vi
на более тривиальный Read
Characters From File.vi
и, если необходимо, добавьте элемент
конверсии форматов To
Double Precision Float
из палитры Numeric
>> Conversion.
После успешной загрузки данных отфильтруйте шум и сохраните результат в другом файле.
Е
сли файл представляет собой два столбца чисел (файл exp3.dat), необходимо использовать функцию Decimate 1D Array (дословно Decimate – “казнить каждого десятого”) из палитры Array. Растягивая ее пиктограмму вниз, получите столько выходов, сколько нужно получить массивов (в данном случае 2), рис. 12.2. Нарисуйте исходный спектр на двухкоординатном графике, используя функцию Bundle. Отфильтруйте данные.
Сохраните виртуальный прибор.
Составьте отчет по лабораторной работе, который должен содержать исходные и отфильтрованные спектры, а также вид оптимальной функции аподизации для каждого случая.