Зашумление и запаздывание сигналов в Scilab Xcos

В данной статье рассмотрим примеры применения Xcos блоков, которые могут быть полезны для реализации различных математических моделей и проведения численных экспериментов.

Начнём с генерации гауссового «белого шума». «Белый шум» — это стационарный шум, спектральные составляющие которого равномерно распределены по всему диапазону задействованных частот. Иногда ошибочно предполагается, что гауссовый шум эквивалентен «белому шуму». Однако эти понятия не эквивалентны, так как гауссовый шум предполагает распределение значений сигнала в виде нормального распределения, а термин «белый» имеет отношение к корреляции сигнала в два различных момента. «Белый шум» может иметь любое распределение — как Гаусса, так и распределение Пуассона, Коши и т. д. Гауссовый «белый шум» в качестве модели хорошо подходит для математического описания многих природных процессов.

«Белый шум» можно рассматривать как случайный процесс с нулевым математический ожиданием, и если речь идёт о гауссовом «белом шуме», то данный процесс должен иметь нормальное распределение.

Генерация случайных чисел в Scilab Xcos

В Xcos за генерацию случайных чисел отвечает блок RAND_m Использование random и time_delay Scilab Xcos , который располагается на палитре «Источники сигналов и воздействий». При помощи данного блока можно сгенерировать случайный процесс, распределённый по нормальному или равномерному закону, причём внутренние параметры блока позволяют задавать минимальное и максимальное значения для равномерного распределения, и мат. ожидание и дисперсию для нормального распределения (см. рис. 24). 

На рис. 24. заданы значеня:
Flag = 0 равномерное распределение от А до А+В.
Flag = 1 нормальное распределение с м.о.=А и СКО=В.

Рисунок 24. Внутренние параметры блока-генератора случайных чисел. Рисунок 24. Внутренние параметры блока-генератора случайных чисел.

Рассмотрим пример построения диаграммы, реализующей генерацию «белого шума», равномерно распределённого от -2 до 1 и гауссового «белого шума» с нулевым средним и среднеквадратичным отклонением равным 1.

Для этого нам понадобятся два блока RAND_m, блок CLOCK_c , блок CMSCOPE и ещё один новый блок Использование random и time_delay Scilab Xcos  с палитры «Регистрирующие устройства».

Блок END имеет всего один параметр, отвечающий за длительность эксперимента и нужен для того, чтобы не исправлять дополнительно параметры моделирования; ни выходов, ни входов он не имеет.

 

Приступим к построению схемы.

  1. Для начала установите время моделирования равное 10 сек., для это во внутреннем параметре блока END напишите 10;

  2. Далее соедините регулярные (чёрные) выходы блоков RAND_m с соответствующими входами осциллографа;

  3. К управляющим (красным) входам блоков RAND_m и CMSCOPE подведите соединительные линии, выходящие из блока CLOCK_c;

  4. Установите шаг дискретизации равный одой сотой во внутренних параметрах часов;

  5. Настройте параметры генераторов случайных чисел в соответствии с заданием. Особое внимание уделите параметру В;

  6. Отредактируйте внутренние параметры блока CMSCOPE так, чтобы графики хорошо помещались в границы координатных сеток;

  7. Добавьте текстовые комментарии рядом с блоками-генераторами. Для этого дважды кликните левой кнопкой мыши по рабочей области рядом с блоком и введите справочный текст со значениями параметров блоков;

  8. Измените цвета соединительных линий между блоками RAND_m и CMSCOPE в соответствии с цветами графиков. Для этого кликните правой кнопкой мыши по соединительной линии и в выпадающем меню выберите «Формат» - «Цвет границы».

Схема, которая должна получиться после всех манипуляций и случайные процессы, реализованные данной блок-схемой представлены на рисунке 25 а-б).

Рисунок 25 a. Блок-схема, реализующая построение двух случайных процессов. Рисунок 25 a. Блок-схема, реализующая построение двух случайных процессов.

Генерация «Белого шума» с разными распределениями Scilab Xcos.

Рисунок 25 б. Синий - равномерно распределённый и зелёный - гауссовый «белый шум». Рисунок 25 б. Синий - равномерно распределённый и зелёный - гауссовый «белый шум».

Задание для самостоятельной работы

Рассмотреть еще один вариант использования генератора случайных чисел, на этот раз для зашумления синусоидального сигнала, мы предлагаем читателю самостоятельно. Данный приём часто используется для измерения частотных характеристик различных линейных динамических систем, таких как усилители, электронные фильтры, дискретные системы управления и т. д.

Вашей задачей будет сгенерировать два сигнала:

  • 1-й синусоидальный сигнал с равномерно распределёнными от -1 до 1 помехами, представляющий из себя сумму синусоиды и случайного процесса;

  • 2-й случайный процесс, ограниченный сверху и снизу синусоидами амплитуды = 1, представляющий из себя произведение функции sin(t) и случайной величины, генерируемой блоком RAND_m.

Результат визуального моделирования необходимо разделить на две системы координат: на первой отобразить график 1-го зашумлённого синусоидального сигнала и функции sin(t), а на второй координатной сетке вывести 2-й случайный процесс и синусоиды, его ограничивающие.

Для создания необходимой блок-схемы понадобятся уже известные блоки: блок RAND_m, генератор сигнала GENSIN_f, блок для создания отражённой синусоиды GAINBLK, два мультиплексора, осциллятор с векторным входом, блоки CLOCK_c и END.

И два новых блока сложения и умножения: Использование random и time_delay Scilab Xcos  и Использование random и time_delay Scilab Xcos  с палитры «Математические операции».

У новых блоков BIGSOM_f  и PRODUCT нам интересен внутренний параметр Inputs ports signs, где в векторной форме в квадратных скобках через точку с запятой «;» указываются знаки слагаемых, входящих в состав суммы и знаки множителей, в случае произведения. Для положительного слагаемого/множителя следует указать 1, а для отрицательного поставить -1. Отметим, что количество единиц в скобках соответствует количеству регулярных входов блоков BIGSOM_f и PRODUCT.

В рассматриваемом случае и блок BIGSOM_f, и блок PRODUCT будут иметь внутренние параметры [1;1].

После добавления всех необходимых блоков на рабочую область, соедините соответствующие по цвету входы и выходы, настройте внутренние параметры у блоков, убедитесь в соразмерности векторных входов и выходов блоков и запустите моделирование для 10 сек.

В итоге у вас должно получиться 5 графиков – два на первой системе координат и три на второй. Результат моделирования представлен на рис. 26.

Рисунок Рисунок 26. Синусоидоподобные случайные процессы Рисунок Рисунок 26. Синусоидоподобные случайные процессы

Блок-схема изображена на рис. 27.

Рисунок 27. Блок-схема Xcos, реализующая различные зашумлённые сигналы с помощью генератора случайных чисел RAND_m. Рисунок 27. Блок-схема Xcos, реализующая различные зашумлённые сигналы с помощью генератора случайных чисел RAND_m.

Генерация запаздывающего сигнала в Scilab Xcos

Рассмотрим ещё один полезный в процессе генерации сигналов блок Использование random и time_delay Scilab Xcos , с палитры «Системы с непрерывным временем» осуществляющий задержку сигнала во времени.

Внутренние параметры данного блока следующие:

  • Delay - определяется задержку по времени выходного сигнала; 

  • Initial input - определяет значение выходного сигнала на протяжении указанного времени  задержки;

  • Buffer size, по умолчанию равный 1024, определяет количество отсчетов входного сигнала, которые будут храниться внутри блока задержки. Параметр Buffer size должен быть равным или больше, чем число точек, в которых вычисляется входной сигнал за время Delay.

Блок TIME_DELAY принимает на вход некоторый сигнал и на протяжении времени, указанном во внутреннем параметре Delay, подаёт на свой выход значение, равное внутреннему параметру Initial input, сохраняя, при этом, значения входного сигнала в буфере.

По истечении времени задержки, блок TIME_DELAY подаёт на свой выход значения, ранее записанные в буфер, начиная с первого, при этом, продолжая пополнять значения буфера, удаляя уже использованные.

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

Рисунок 28. Результат использование блока задержки TIME_DELAY. Рисунок 28. Результат использование блока задержки TIME_DELAY.

Блок-схема, реализующая описанную задачу будет состоять из следующих блоков: блоков инициализации и указания времени моделирования CLOCK_c и END, одного векторного осциллографа CMSCOPE, двух мультиплексоров MUX для вывода двух синусоид на каждую систему координат, блоков-генераторов синусоидального сигнала и случайных значений GENSIN_f и RAND_m, блока суммирования BIGSOM_f, и двух блоков задержки сигнала TIME_DELAY.

Реализация вывода первой пары графиков на одну систему координат не должна вызвать у читатель сложностей. Отметим, что осуществляется данный вывод с использованием первого векторного входа условной размерности 2 на блоке осциллятора CMSCOPE. Данный вход формируется как объединение двух сигналов: исходной синусоиды и синусоиды, проходящей через блок задержки TIME_DELAY с внутренними параметрами Delay=4.5, Initial input=-0.5.

На реализации же зашумлённого с некоторого момента времени сигнала остановимся подробнее. Выше, когда речь шла о двух типах зашумленных сигналов (см. рис. 26), первый синусоидоподобный сигнал генерировался как сумма функции sin(t) (блока GENSIN_fи случайного процесса (блока RAND_m). То есть, при гипотетическом обнулении слагаемого, вносящего шум, сумма данных блоков представляла бы чистую синусоиду.

Отталкиваясь от этого факта, мы можем настроить параметры блока задержки TIME_DELAY так, чтобы первые 4 сек. в синусоиду GENSIN_f  не вносилось бы вклада с блока шума RAND_m. А по истечении этих 4-х секунд, указанных как Delay=4, функция sin(t) была бы осложнена случайными величинами, генерируемыми блоком RAND_m, например, с нормальным распределением и дисперсией=0.2.

Описанное выше в виде Xcos-блоков собирается в схему, изображённую на рисунке 29.

Рисунок 29. Блок схема, реализующая синусоидальные сигналы с запаздыванием с помощью блока TIME_DELAY. Рисунок 29. Блок схема, реализующая синусоидальные сигналы с запаздыванием с помощью блока TIME_DELAY.

Отдельно хотелось бы отметить настройку внутренних параметров блока с векторным входом CMSCOPE. Обратите внимание на поля, выделенные красными прямоугольниками на рис. 30. Данные поля настраиваются в соответствии с размерностью входов блока осциллографа, где числа соответствуют настройкам соответствующих входов, считая с верхнего.

Рисунок 30. Параметры осциллографа CMSCOPE с двумя векторными входами условной размерности 2. Рисунок 30. Параметры осциллографа CMSCOPE с двумя векторными входами условной размерности 2.

Комментарии

Гость
Ответить
Войдите, чтобы оставить комментарий.
Гость
Ответить
Гость
Ответить
Гость
Ответить
Еще нет комментариев, оставьте первый.