12
Руководство пользователя
×

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

 Данный метод создает случайную функцию на заданном интервале. Функция имеет один аргумент.
Функция определяется только на заданном интервале по аргументу; это используется для ускорения расчета. За пределами этого интервала функция полагается равной нулю. Математическое ожидание случайной функции равно нулю.
Флаг frequency:/angularFrequency: определяет как будут интерпретироваться значения заданной пользователем шкалы спектра: как частота  или угловая (круговая) частота  (общее обозначение, используемое далее – ). Под частотой понимается величина, обобщенная на случай произвольной размерности аргумента функции (см. раздел «Шкала спектра (spectralScale)» главы «Служебные объекты»).
Для размерности физической величины будем использовать обозначение . Так  – размерность шкалы спектра,  – размерность случайной функции,  – размерность аргумента функции. Размерность аргумента функции зависит от того, как интерпретируются значения шкалы спектра: , если , и , если .
Синтаксис метода создания
random1(Frequency, SpectralScale, Distribution, DistributionFunction, x0, deltax, randomDetail=…, randomType=…)
Обязательные позиционные параметры метода
Frequency = [frequency:/angularFrequency:]
Параметр определяет тип аргумента для функции распределения.
 Frequency = frequency:
Частота.
 Frequency = angularFrequency:
Угловая частота.
spectralScale SpectralScale
Шкала спектра.
Distribution = [amplitude:/density:/dispersion:/rootMeanSquare:]
Параметр определят тип функции распределения
 Distribution = amplitude:
Функция распределения амплитуды по полосам шкалы спектра . Размерность совпадает с размерностью случайной функции: .
 Distribution = density:
Плотность распределения дисперсии по частоте. Размерность представляет собой квадрат размерности случайной функции, деленной на размерность частоты или угловой частоты: .
 Distribution = dispersion:
Функция распределения дисперсии по полосам шкалы спектра . Размерность представляет собой квадрат размерности случайной функции: .
 Distribution = rootMeanSquare:
Функция распределения среднего квадратического значения по полосам шкалы спектра . Размерность совпадает с размерностью случайной функции: .
function DistributionFunction
Функция распределения.
scalar x0
Начальное значение аргумента случайной функции.
scalar deltax
Интервал, на котором генерируется случайная функция.
Необязательные именованные параметры метода
 randomDetail = scalar [-]
Количество точек на волне для максимальной частоты. По умолчанию randomDetail=8.
 randomType = scalar [-]
Тип распределения. 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] );