2.2.19 Случайная функция, задаваемая спектром

Функция определяется только на заданном интервале по аргументу; это используется для ускорения расчета. За пределами этого интервала функция полагается равной нулю. Математическое ожидание случайной функции равно нулю.
Флаг frequency:/angularFrequency: определяет как будут интерпретироваться значения заданной пользователем шкалы спектра: как частота
или угловая (круговая) частота
(общее обозначение, используемое далее –
). Под частотой понимается величина, обобщенная на случай произвольной размерности аргумента функции (см. раздел «Шкала спектра (spectralScale)» главы «Служебные объекты»).



Для размерности физической величины будем использовать обозначение
. Так
– размерность шкалы спектра,
– размерность случайной функции,
– размерность аргумента функции. Размерность аргумента функции зависит от того, как интерпретируются значения шкалы спектра:
, если
, и
, если
.








Синтаксис метода создания
random1(Frequency, SpectralScale, Distribution, DistributionFunction, x0, deltax, randomDetail=…, randomType=…)
Обязательные позиционные параметры метода
Frequency = [frequency:/angularFrequency:]
Параметр определяет тип аргумента для функции распределения.

Частота.

Угловая частота.
spectralScale SpectralScale
Шкала спектра.
Distribution = [amplitude:/density:/dispersion:/rootMeanSquare:]
Параметр определят тип функции распределения

Функция распределения амплитуды по полосам шкалы спектра
. Размерность совпадает с размерностью случайной функции:
.



Плотность распределения дисперсии по частоте. Размерность представляет собой квадрат размерности случайной функции, деленной на размерность частоты или угловой частоты:
.


Функция распределения дисперсии по полосам шкалы спектра
. Размерность представляет собой квадрат размерности случайной функции:
.



Функция распределения среднего квадратического значения по полосам шкалы спектра
. Размерность совпадает с размерностью случайной функции:
.


function DistributionFunction
Функция распределения.
scalar x0
Начальное значение аргумента случайной функции.
scalar deltax
Интервал, на котором генерируется случайная функция.
Необязательные именованные параметры метода

Количество точек на волне для максимальной частоты. По умолчанию randomDetail=8.

Тип распределения. 0 – случайное распределение, 1, …, 4 – псевдослучайное распределение. По умолчанию randomType = 0.
Описание
Заданная пользователем шкала спектра SpectralScale определяет полосы спектра, используемого для представления функции в виде ряда Фурье. Далее будем считать, что полосы заданы границами по частоте
или угловой частоте
(
– общее обозначение) в зависимости от флага Frequency. При этом стоит отметить, что единицы измерения
и
могут отличаться от общепринятых (
и
, соответственно). Размерность аргумента функции зависит от того, как интерпретируются значения шкалы спектра:
, если
, и
, если
.











Метод создает случайную функцию
на интервале
, где параметры
и
задаются пользователем. Функция представляется в виде ряда Фурье по заданному пользователем спектру:





где
– амплитуда, соответствующая
-ой полосе спектра,
– случайная величина со значениями от 0 до 1,
– угловая частота, соответсвующая центру
-ой полосы спектра. Суммирование осуществляется по всем полосам спектра.





Отметим, что функции распределения для амплитуды
, дисперсии
и среднего квадратического значения
задаются по полосам шкалы спектра. Соответствующие параметры для каждой полосы вычисляются в её центре и используются как дискретные значения.



Если задается функция распределения амплитуды по полосам шкалы спектра
(позиционный параметр Distribution = amplitude:), то амплитуда
-ой полосы спектра вычисляется по формуле (см. Рис. 13):



где
– центр
-ой полосы спектра.



Рис. 13. Функция распределения амплитуды по полосам шкалы спектра
Если задается функция распределения дисперсии по полосам шкалы спектра
(позиционный параметр Distribution = dispersion:), то амплитуда
-ой полосы спектра вычисляется по формуле:



где
– дисперсия
-ой полосы спектра.


Если задается функция распределения среднего квадратического значения по полосам шкалы спектра
(позиционный параметр Distribution = rootMeanSquare:]), то амплитуда
-ой полосы спектра вычисляется по формуле:



где
– среднее квадратическое значение
-ой полосы спектра.


Плотность распределения в отличие от других типов функций распределения представляется в виде непрерывной функции по частоте
(позиционный параметр Distribution = density:). Амплитуда
-ой полосы спектра вычисляется по формуле:



где
– дисперсия
-ой полосы спектра.


Для ускорения расчета значения функции
насчитываются только на интервале
, заданном пользователем, и на сетке по аргументу
с шагом
, определяемым количеством точек на волне для максимальной частоты
(параметр randomDetail):
, где
– правая граница диапазона частот. За пределами диапазона
функция полагается равной нулю.








Пример
// случайная функция whiteNoiseLin определяется на интервале от 0 до 10 [s]
// на линейной шкале спектра (центры полос от 1 до 500 [Hz] с шагом 1[Hz])
// с постоянной плотностью распределения
spectralScale spScaleLin=linear( simpleMean:, 1, upperBound = 500, bandsN = 500, frequencyUnit = "[Hz]" );
function Dens=1[s];
function whiteNoiseLin=random1( frequency:, spScaleLin, density:, Dens, 0 [s], 10 [s] );