OTChET_GOTOV_4_laba_tsos 2 (1043802), страница 2
Текст из файла (страница 2)
Получили, примерно, постоянную спектральную плотность. Это можно считать подтверждением того, что генератор генерирует гауссовый шум.
Теперь рассмотрим случайный процесс с равномерным распределением.
Для этого процесса так же возьмём значение дисперсии, равное единице, а математическое ожидание равное нулю. Тогда команда для вычисления равномерно распределенного случайного процесса имеет вид:
Y =unifrnd(-3^0.5,3^0.5,1,1000)
Где - нижняя и верхняя границы равномерной плотности вероятности.
Значения такого процесса будут также некореллированы. Процесс имеет название белого шума.
Построим гистограмму.
hist(Y)
Как видно из гистограммы, распределение равномерно.
Далее запустим три генератора случайного процесса с равномерным распределением. Различие в длине реализации между ними кратно десяти.
X = unifrnd(-3^0.5,3^0.5,1,1000)
Y = unifrnd(-3^0.5,3^0.5,1,10000)
Z = unifrnd(-3^0.5,3^0.5,1,100000)
Вычислим для каждого мат. Ожидание, дисперсию, стандарт.
mean(X)
var(X)
std(X)
X | Y | Z | Теоретическое | |
Мат. ожидание | 0.0347 | -0.0013 | 0.0009344 | 0 |
Дисперсия | 0.9766 | 0.9985 | 1.0017 | 1 |
Стандарт | 0.9882 | 0.9993 | 1.0009 | 1 |
Из таблицы видно, что теоритические и практические значения примерно равны. То есть мат. Ожидание равно нулю, а дисперсия и стандарт примерно равны единице.
Далее определим спектр и спектральную плотность, после чего докажем, что наш случайный процесс с равномерным распределением является белым шумом.
X = unifrnd(-3^0.5,3^0.5,1,100000)
Удаляем тренд:
X0=X-mean(X)
Находим спектр:
F=fft(X0)
plot(abs(F)),grid
Определен спектр белого шума, все отсчеты которого некоррелированы. Теоретически такой процесс имеет постоянную спектральную плотность.
Найдём спектральную плотность. Спектральная плотность является осреднением квадрата мощности спектров.
[S,w]=pcov(X0,8)
plot(w,S),grid
Получили, примерно, постоянную спектральную плотность. Это можно считать подтверждением того, что генератор генерирует гауссовый шум.
В отличие от обычного гауссового шума, белый шум имеет равномерное распределение.
Рассмотрим отфильтрованный белый шум и проведём исследование его характеристик.
Пропустим белый шум через дискретный фильтр с передаточной функцией
Коэффициенты фильтра выбраны так, чтобы фильтр обладал астатизмом нулевого порядка (отрабатывал постоянное возмущение без ошибки). Для этого достаточно, чтобы суммы коэффициентов числителя и знаменателя передаточной функции были равными.
yf=filter(0.95,[1,-0.95],Y)
plot(yf),grid
Видно, что фильтрованный сигнал стал плавным, в нем отфильтрованы высокие частоты и вырос разброс сигнала.
Проводим для фильтрованного сигнала операции по определению его статистических характеристик, такие же как и для исходного белого шума .
Построим гистограмму.
hist(yf)
Видно, что гистограмма фильтрованного сигнала изменилась. Равномерное распределение стало приближаться к нормальному распределению. Это закономерно для линейных динамических систем. По окончании переходных процессов изменения плотностей вероятности любые законы распределения плотностей вероятности приближаются к нормальному. Это правило будет учтено при расчете ошибок квантованных фильтров.
Далее запустим три генератора случайного процесса с равномерным распределением и отфильтруем их. Различие в длине реализации между ними кратно десяти.
X = unifrnd(-3^0.5,3^0.5,1,1000)
xf=filter(0.95,[1,-0.95],Y)
Y = unifrnd(-3^0.5,3^0.5,1,10000)
yf=filter(0.95,[1,-0.95],Y)
Z = unifrnd(-3^0.5,3^0.5,1,100000)
zf=filter(0.95,[1,-0.95],Y)
Вычислим для каждого мат. Ожидание, дисперсию, стандарт.
mean(zf)
var(zf)
std(zf)
X | Y | Z | Теоретическое (нефильтрованный сигнал) | |
Мат. ожидание | 0.4331 | 0.2213 | 0.2213 | 0 |
Дисперсия | 8.4031 | 9.5842 | 9.5842 | 1 |
Стандарт | 2.8988 | 3.0958 | 3.0958 | 1 |
Уменьшается дисперсия фильтрованного процесса, так высокочастотная часть сигнала задержана фильтром. В связи с изменением плотности вероятности почти в три раза увеличивается стандарт и в девять раз – дисперсия.
Далее определим спектр и спектральную плотность.
X = unifrnd(-3^0.5,3^0.5,1,100000)
xf=filter(0.95,[1,-0.95],Y)
Удаляем тренд:
X0=X-mean(X)
Находим спектр:
F=fft(X0)
plot(abs(F)),grid
Далее найдём спектральную плотность. Спектральная плотность является осреднением квадрата мощности спектров.
[S,w]=pcov(X0,8)
plot(w,S),grid
Видно, что задержана фильтром высокочастотная часть спектральной плотности.
2. Случайные процессы и их характеристики в приложении SIMULINK
На рис. 1 приведена иллюстративная схема генерирования случайного процесса и определения его характеристик в приложении SIMULINK. В качестве генератора гауссового шума используется блок Random Namber из раздела библиотеки Simulink/Source с настройками: mean=0; variance=1; Sample time=1.
Параметры фильтра выбраны как в (16). Время моделирования равно 1000. Начните моделирование, просмотрите вид процесса с помощью блока Scope.
Принцип определения характеристик процесса показан на рис. 1, где блоки-переключатели Switch указывают блоки, используемые для обработки в каждом случае. В работе для определения каждой характеристики рекомендуем составлять отдельную схему.
Рис. 1. Иллюстративная схема определения статистических характеристик.
Для определения матожидания, стандарта, дисперсии и гистограммы блоки выбираются из раздела библиотеки Signal Processing Blockset/Statistics. Особенность этих элементов в том, что они обрабатывают информацию не по мере поступления, а кусками-блоками. Поэтому в схеме используется элемент Buffer из раздела Signal Processing Blockset/Signal Management/Buffers, где надо выбрать Output Buffer Size=1000 (обрабатываем в блоке все отсчеты). В качестве регистратора выбираем блок Display. Чтобы был учтён каждый отсчёт (т.е. не было прореживаний), следует выбрать формат Decimal, а значение decimation (прореживание) должно быть равно 1, т.е. будут отображаться все значения.
Так же блок Display используется при отображении:
- математического ожидания – блок Mean
- дисперсии – блок Variance, в этом случае нужно установить флаг «Running Variance»
Буфер нужен для работы элементов Mean, Histogram, Variance. Дело в том, что этим блокам для правильной работы требуются сразу все отсчёты профильтрованного сигнала.
На вход буфера поступает один отсчёт, а на выход – все, хранящиеся в нём. Размерность буфера задаётся параметром Output buffer size. Значение должно быть равно произведению значения Sample Time и времени моделирования. Рекомендуемое значение – порядка 1000 и более.
Некоторая особенность имеет место при определении гистограммы. Гистограмма при работе возвращает число вхождений отсчётов в каждый, заданный в параметрах интервал. Для отображения этих значений используется обычный регистратор Display (Simulink/Sinks/Display). В блоке Histogram на основе ранее найденного значения стандарта задается диапазон изменения процесса и число интервалов гистограммы Number bins. Чтобы гистограмма была нормирована, устанавливается флажок Normalize. Дисплей должен вывести значения уровней во всех интервалах гистограммы. Это выполняется следующим образом: по окончании расчета в углу блока появляется стрелка. Тогда за правый нижний угловой маркер надо растянуть блок вниз, чтобы появился весь набор данных.
Параметры блока «Histogram»:
-
Нижняя граница гистограммы = -10 (lower limit of histogram)
-
Верхняя граница гистограммы = 10 (upper limit of histogram)
-
Число интервалов гистограммы = 11 (number of bins)