3. Скользящее суммирование
Преобразование отсчетов дискретного белого шума в отсчеты окрашенного шума описывается дискретной сверткой – аналогом свертки (1)
, , (9)
- число отсчетов весовой функции. Исходная окрашиваемая последовательность генерируется функцией RANDN(1,M), , N – число генерируемых чисел . Число формируется перемножениями отсчетов весовой функции с отсчетами и суммированием произведений. В формировании следующего принимают участие отсчеты , начиная с , и добавляется следующее . Отсчеты как бы скользят влево по отношению к “неподвижной” весовой функции . Этим объясняется название дискретной свертки (9) – скользящее суммирование.
Генератор полубесконечной последовательности реализует алгоритм (9):
1) вычисляются значения весовой функции (6) с шагом ; число назнача-ется таким, чтобы отбрасываемый “хвост” весовой функции состоял из чисел, близких к нулю; для получения дисперсии значения нормируются:
, ; (10)
2) формируется окрашиваемая последовательность размером чисел;
3) циклически формируются числа .
Для проверки генератора необходимо сравнить корреляционные свойства полученной последовательности с заданными. Для этого на одном рисунке надо изобразить отсчетов заданной функции корреляции (с шагом ) и оценок корреляционных моментов последовательности .
4. Рекуррентный алгоритм
Генераторы с весовыми функциями (6) – линейные системы порядка не выше второго (весовая функция в примере 1 описывает систему бесконечного порядка). Они кроме свертки (9) могут задаваться разностным уравнением второго порядка
, , (11)
, - отсчеты входного и выходного сигнала. В формировании каждого значения участвуют три значения входного сигнала и два уже сформированных значения выходного сигнала. Такие алгоритмы называются рекуррентными, соответствующие системы – рекурсивными фильтрами. Фильтр, реализующий скользящее суммирование, называется нерекурсивным. Рекурсивные системы работают на порядок быстрее: в процедуре (11) не более пяти умножений (некоторые коэффициенты могут быть равны нулю), в дискретной свертке умножений, - десятки.
Коэффициенты разностного уравнения - го порядка связаны со значениями весовой функции системой линейных уравнений [1]
, , (12)
коэффициенты вычисляются последовательно:
, , . (13)
При уравнения системы (12) записываются
,
,
,
и т.д.
Для расчета и можно взять любую пару уравнений. Это означает, что для описания линейной системы - го порядка весовой функцией достаточно задать ее первые значения – следующие значения весовой функции вычисляются через предыдущие.
Рекурсивный генератор работает по алгоритму (11): последовательно формируются значения , , и т.д. (нумерация отсчетов в теории разностных уравнений начинается с нуля, в MATLAB – программах – с единицы).
Пример 2. Весовая функция системы второго порядка рассчитана на интервале с шагом . После нормировки (10) ее значения равны (табл. 1)
Табл. 1
|
0.0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
0.6 |
0.7 |
|
0.4261 |
0.4000 |
0.3693 |
0.3366 |
0.3036 |
0.2715 |
0.2411 |
0.2128 |
Любая пара уравнений (12) дает одно и то же решение: , . Коэффициенты (13) равны , , .
Весовая функция соответствует функции корреляции , показанной на рис. 4-1. Оценки корреляционных свойств, полученных скользящим суммированием и рекуррентным алгоритмом (рис. 4-2, 4-3), визуально неразличимы.
Рис. 4. Функции корреляции