1.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. При этом единицы измерения
и
могут отличаться от общепринятых (
и
, соответственно).
Размерность аргумента функции зависит от того, как интерпретируются значения шкалы спектра:
, если
, и
, если
.
Метод создает случайную функцию
на интервале
, где параметры
и
задаются пользователем. Функция представляется в виде ряда Фурье по заданному пользователем спектру:
где
– амплитуда, соответствующая
-ой полосе спектра,
Функции распределения для амплитуды
, дисперсии
и среднего квадратического значения
задаются по полосам шкалы спектра. Соответствующие параметры для каждой полосы вычисляются в её центре и используются как дискретные значения.
Если задается функция распределения амплитуды по полосам шкалы спектра
(позиционный параметр Distribution = amplitude:), то амплитуда
-ой полосы спектра вычисляется по формуле (см. рис. 3):
где
– центр
-ой полосы спектра.

Рис. 3. Функция распределения амплитуды по полосам шкалы спектра
Если задается функция распределения дисперсии по полосам шкалы спектра
(позиционный параметр 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]);
|