Введение
LabVIEW (LaboratoryVirtualInstrumentEngineeringWorkbench) позволяет разрабатывать прикладное программное обеспечение для организации взаимодействия с измерительной и управляющей аппаратурой, сбора, обработки и отображения информации и результатов расчетов, а также моделирования как отдельных объектов, так и автоматизированных систем в целом. Разработчиком LabVIEW является американская компания National Instruments.
В отличие от текстовых языков, таких как C, Pascal и др., где программы составляются в виде строк текста, в LabVIEW программы создаются в виде графических диаграмм, подобных обычным блок-схемам. Иногда можно создать приложение, вообще не прикасаясь к клавиатуре компьютера.
LabVIEW является открытой системой программирования и имеет встроенную поддержку всех применяемых в настоящее время программных интерфейсов, таких как Win32 DLL, COM.NET, DDE, сетевых протоколов на базе IP, DataSocket и др. В состав LabVIEW входят библиотеки управления различными аппаратными средствами и интерфейсами, такими как PCI, CompactPCI/PXI, VME, VXI, GPIB (КОП), PLC, VISA, системами технического зрения и др. Программные продукты, созданные с использованием LabVIEW, могут быть дополнены фрагментами, азработанными на традиционных языках программирования, например C/С++, Pascal, Basic, FORTRAN. И наоборот можно использовать модули, разработанные в LabVIEW в проектах, создаваемых в других системах программирования. Таким образом, LabVIEW позволяет разрабатывать практически любые приложения, взаимодействующие с любыми видами аппаратных средств, поддерживаемых операционной системой компьютера.
1. Генерирование коррелированных случайных процессов
N-мерная плотность распределения вероятности wN(x1, x2, …xN) связывает каждый отсчет случайной последовательности со всеми остальными отсчетами. Такое описание очень сложно и на практике используются более простые модели случайного процесса с зависимыми отсчетами. Наиболее известны две: марковская модель и спектрально-корреляционная модель. В марковской модели каждый отсчет случайного процесса зависит только от одного предыдущего (марковский процесс первого порядка). Для него N-мерная плотность распределения вероятности
wN(x1, x2, … xN) = w(x1)w(x2/x1) w(x3/,x2)*…* w(xN/ xN - 1) = w(x1)∏w(xi/xi – 1).
Марковский процесс не является чисто теоретическим допущением, таким будет процесс на выходе интегрирующей цепи при подаче на ее вход белого шума.
Спектрально-корреляционная модель оперирует с двумерной плотностью распределения вероятности w(x1, x2), связывающей отсчеты случайного процесса, взятые в разные моменты времени x1 = x(t1) и x2 = x(t2). Если изменять t1 и t2, то можно исследовать попарную связь всех отсчетов между собой и, в принципе, последовательно определить все связи, описываемые N-мерным законом распределения. В спектрально-корреляционной модели для описания этой связи используется корреляционный (второй смешанный центральный) момент:
Стационарные случайные процессы характеризуются неизменностью характеристик во времени, и для таких процессов корреляционный момент не зависит от выбора начального момента времени t1, а определяется только величиной интервала τ = t2 – t1.
Зависимость корреляционного момента от временного интервала τ между отсчетами называется корреляционной функцией R(τ) случайного процесса. При τ = 0 значение корреляционной функции максимально и равно дисперсии случайного процесса σ2. С увеличением |τ| корреляционная функция уменьшается до нуля монотонно или по колебательному закону.При моделировании всегда используется реализация случайного процесса конечной длины и в измеренной корреляционной функции появляются нескомпенсированные остатки. Уровень этих остатков тем меньше, чем больше длина реализации. На рис. 1 показаны корреляционные функции для случайной последовательности с треугольной функцией корреляции для количества отсчетов последовательности, равным 100 (рис. 1, а) и 10000 (рис. 1.б).
а) | б) |
Рис. 1
Случайный процесс называется некоррелированным, если корреляционная функция равна нулю для любого τ, отличного от нуля. Для некоррелированного процесса R(τ) = σ2δк(τ), где δк(τ) – символ Кронекера: он равен 1 при τ = 0 и нулю при всех других τ. Вообще говоря, некоррелированность не означает независимости. Это можно пояснить следующим примером.
Рис. 2
Пусть случайная величина Y = 4X12 + X2, где X1 и X2 – независимые случайные величины, равномерно распределенные в интервале (– 1/2, 1/2). Ясно, что Y связана с X1 статистической зависимостью (см. рис. 2). Однако корреляционный момент
так как каждый из интегралов является интегралом от нечетной функции в симметричных пределах.
Рассмотренная статистическая связь является нелинейной и никак не отражается в корреляционной функции. Корреляционная функция характеризует только линейную статистическую зависимость между отсчетами случайного процесса.
Для измерения корреляционной функции в LabVIEW существует несколько виртуальных приборов. В данной работе используется экспресс-ВП ConvolutionandCorrelation (Свертка и корреляция) (рис. 3 а), так как он представляет собой завершенную программу, не требует никаких дополнительных узлов управления и удобен в использовании. Панель конфигурирования экспресс-ВП ConvolutionandCorrelation показана на рис. 3, б).
Рис. 3
Корреляционная функция связана с энергетическим спектром случайного процесса преобразованием Винера-Хинчина, которое по форме совпадает с двусторонним преобразованием Фурье. Энергетический спектр случайной последовательности, содержащей N отсчетов, рассчитывается как двустороннее дискретное преобразование Фурье (ДПФ) от дискретной корреляционной функции R(n):
где fk = k/N*Δt – частота спектральной составляющей, Δt – временной интервал между соседними отсчетами случайного процесса, или интервал дискретизации.
Из приведенного выражения следует, что энергетический спектр случайной последовательности является дискретным и периодическим (рис. 4). Он содержит гармоники частоты f1 = 1/N*Δt. Это самая низкая частота спектра, так как за время, равное длительности случайной последовательности N*Δt, укладывается только один период колебания этой частоты.
Рис. 4