Смекни!
smekni.com

Генерирование коррелированных случайных процессов в среде LabVIEW (стр. 2 из 2)

Ry(Δt) = (b0b1 + b1b2 + b2b3 + … + bk – 1bkx2,

Ry(2Δt) = (b0b2 + b1b3 + … + br – 2bkx2,

Ry(kΔt) = b0bkσx2,

Ry(kΔt + Δt) = 0.

Эти уравнения позволяют легко решить задачу анализа: рассчитать корреляционную функцию по известным коэффициентам bi. Задача синтеза: найти коэффициенты фильтра bi по заданной корреляционной функции в общем случае не решена. Но для треугольной корреляционной функции решение находится просто: все коэффициенты bi одинаковы:

bi = √(σy2x2)/k.

Если потребовать, чтобы дисперсии входного и выходного процессов были равными, то

bi = 1/√k. ( 3)

Схема фильтра, построенного по выражению ( 2), приведена на рис. 6. Символ z-1 означает задержку на интервал дискретизации. Фильтр скользящего суммирования (СС-фильтр) является фильтром с конечной импульсной характеристикой (КИХ-фильтром) или нерекурсивным (трансверсальным) фильтром.

Изображенный фильтр описывается системной (передаточной) функцией

K(z-1) = b0 + b1z-1 + b2z-2 + … + bkz-k.

Передаточная функция в стандартной форме, полученная из системной функции умножением числителя и знаменателя на zk, имеет вид:

K(z) = (b0zk + b1zk - ! + … + bk)/zk.

Недостаток СС-фильтра: увеличение порядка фильтра с увеличением количества отсчетов корреляционной функции. Если корреляционная функция имеет бесконечную протяженность, то для сокращения порядка фильтра ее искусственно ограничивают по времени, пренебрегая малыми значениями корреляционной функции. Это приводит к возникновению методической ошибки моделирования.

Авторегрессионный метод Существенная экономия машинных ресурсов и возможность моделирования случайных процессов с корреляционной функцией бесконечной протяженности достигается при использовании авторегрессионного метода. Авторегрессионный метод предполагает использование рекурсивных фильтров с системной функцией

где m – порядок фильтра.

Как следует из вида системной функции, выходной процесс авторегрессионного фильтра (АР-фильтра) связан с входным процессом рекуррентным соотношением


y(nT) =b0x(nT) + a1y(nT – T) + a2 y(nT – 2T) + … + amy(nT – mT).

Корреляционная функция определяется коэффициентами ai. Непосредственно по этому выражению нельзя найти корреляционную функцию, зная коэффициенты ai, как это было сделано по выражению (2). Для выявления качественного влияния коэффициентов на форму корреляционной функции воспользуемся ее связью с импульсной характеристикой фильтра. Рассмотрим сначала АР-фильтр первого порядка (рис. 7).

Рис. 7

Его передаточная функция в стандартной форме

K(z) =

.

Импульсная характеристика определяется как обратное Z – преобразование от передаточной функции:

g[n] = b0a1n ( 4)

Диапазон возможных значений коэффициента a1 ограничивается устойчивостью фильтра. Для устойчивости АР-фильтра требуется, чтобы полюса его передаточной функции находились внутри окружности единичного радиуса.

Полюс находится приравниванием нулю знаменателя передаточной функции:

z – a1 =0.

Полюс

z1 = a1,

и требование устойчивости фильтра

| a1| < 1 или -1 < a1 < 1.

При положительном a1 импульсная характеристика, как следует из ( 4), является монотонно спадающей функцией, и корреляционная функция тоже будет монотонно спадающей. При отрицательном а1 импульсная характеристика становится колебательной, и корреляционная функция будет колебательной затухающей с периодом колебаний равным двум интервалам дискретизации.

Рассмотрим, как будет изменяться АЧХ фильтра, а следовательно, и энергетический спектр ( 1) генерируемой последовательности, при изменении а1. Комплексная частотная характеристика получается из передаточной функции К(z) подстановкой z = ejωΔt. Амплитудно-частотная характеристика

К(ω) = |b0ejωΔt/(ejωΔt – a1)| = b0/|ejωΔt – a1|.

Она обратно пропорциональна модулю разности векторов ejωΔt и a1. Как видно из рис. 8 а), при положительном a1 модуль разности векторов будет изменяться от наименьшего значения при ω = 0 до наибольшего значения при ωΔt = π. Значит, АЧХ, а следовательно, и энергетический спектр случайной последовательности, будет иметь подъем в области низких частот. При отрицательных a1, наоборот, подъем будет в области верхних частот.

а) б) в)
Рис. 8

На рис. 8, б) показан энергетический спектр процесса на выходе фильтра при a1 = 0,8; а на рис. 8, в) – при a1 = - 0,8.

АР-фильтр второго порядка позволяет формировать коррелированные последовательности с более разнообразными корреляционными функциями. Его системная функция

K(z-1) =

.

Значения коэффициентов а1 и а2 ограничены областью устойчивости, которая показана на рис. 9 (коэффициенты должны находиться внутри треугольника).Область устойчивости делится на четыре подобласти в зависимости от вида полюсов: А – два действительных полюса разного знака; В – два действительных отрицательных полюса; С – два действительных положительных полюса; D – два комплексно сопряженных полюса. От расположения полюсов будет зависеть форма энергетического спектра и корреляционной функции генерируемого случайного процесса.


Рис. 9

Эту зависимость для действительных корней мы уже обсуждали. Для комплексно-сопряженных полюсов подъем АЧХ будет на частоте

f = (fд/2)(argz1/π),

где argz1 – аргумент полюса, расположенного в верхней полуплоскости.

АР-фильтр является рекурсивным фильтром, или фильтром с бесконечной импульсной характеристикой (БИХ-фильтром). Последовательное соединение СС-фильтра и АР-фильтра называют АРСС-фильтром. Его системная функция записывается в виде отношения двух полиномов:

K(z-1) =

Такой фильтр обладает еще большими возможностями генерирования коррелированных процессов с разнообразными корреляционными функциями. Для моделирования СС- и АР- фильтров в среде LabVIEW удобно использовать ВП IIRFilter (БИХ-фильтр) (рис. 10).

Он производит фильтрацию входной последовательности Х.


Рис. 10

Выходная последовательность (FilteredX) вычисляется по выражению

y(n) = b0x(n) + b1x(n – 1) + … + bkx(n – k) –

– (a1y(n – 1) + a2y(n – 2) + … + amy(n – m)).

Системная функция фильтра:

K(z-1) =

Она отличается от записанной ранее системной функции АРСС-фильтра знаком коэффициентов ai (i ≥1).Коэффициенты числителя задаются в виде одномерного массива и подаются на терминал ForwardCoefficients. Массив коэффициентов знаменателя подается на терминал ReverseCoefficients.

Логическая переменная, подаваемая на вход init/cont (init: F) (инициировать/продолжить (иниц: F)) управляет инициализацией внутренних состояний фильтра. По умолчанию на входе установлено значение ЛОЖЬ. При этом внутренние состояния устанавливаются в 0. При установке на входе инициировать/продолжить значения ИСТИНА внутренние состояния соответствуют последним состояниям фильтра из предыдущего запуска ВП. При нулевых внутренних состояниях выходной процесс устанавливается в стационарное состояние спустя некоторое время после запуска ВП (время переходного процесса). Для устранения переходного процесса целесообразно установить логическую переменную в состояние ИСТИНА и обеспечить повторный запуск. Последняя генерируемая последовательность будет стационарной.

Для многократного повторения моделирования целесообразно использовать структуру WhileLoop (Цикл по условию). Он эквивалентен выражению: do (программа) while (логическое условие). Цикл While похож на цикл For. Различие этих циклов в том, что число итераций в цикле For заранее определено и задается через терминал N числа итераций, а в цикле While – итерации продолжаются, пока не будет выполнено заданное условие.

Рис. 11

Внутри структуры While (рис. 11) размещаются терминал счетчика итераций

и терминал условия выхода из цикла
. Программа, размещенная в структуре, выполняется до подачи на терминал условия выхода из цикла логической переменной TRUE.

измерительный программный рекурсивный фильтр


Заключение

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее существуют версии для UNIX, GNU/Linux, Mac OS и пр., а наиболее развитыми и популярными являются версии для Microsoft Windows.

LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП, сколько в области АСНИ.


Список литературы

1. Н.А. Виноградова, Я.И. Листратов, Е.В. Свиридов. «Разработка прикладного программного обеспечения в среде LabVIEW». Учебное пособие – М.: Издательство МЭИ, 2005.

2. http://www.automationlabs.ru/

3. http://digital.ni.com/

4. http://www.labview.ru/

5. http://ru.wikipedia.org/