Как сделать прямоугольный импульс в матлабе

Обновлено: 06.07.2024

И.В.Черных. "Simulink: Инструмент моделирования динамических систем"

9. Библиотека блоков Simulink

9.1. Sources - источники сигналов

9.1.1. Источник постоянного сигнала Constant

Назначение:
Задает постоянный по уровню сигнал.

Параметры:
1. Constant value - Постоянная величина.
2. Interpret vector parameters as 1-D – Интерпретировать вектор параметров как одномерный (при установленном флажке). Данный параметр встречается у большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет.

Значение константы может быть действительным или комплексным числом, вычисляемым выражением, вектором или матрицей.

Рис. 9.1.1 иллюстрирует применение этого источника и измерение его выходного сигнала с помощью цифрового индикатора Display.

Рис. 9.1.1. Источник постоянного воздействия Constant

9.1.2. Источник синусоидального сигнала Sine Wave

Назначение:
Формирует синусоидальный сигнал с заданной частотой, амплитудой, фазой и смещением.

  • Time-based – По текущему времени.
  • Sample-based – По величине шага модельного времени.

9.1.2.1. Формирование выходного сигнала по текущему значению времени для непрерывных систем

Выходной сигнал источника в этом режиме соответствует выражению:

    Amplitude - Амплитуда.
  1. Bias – Постоянная составляющая сигнала.
  2. Frequency (rads/sec) - Частота (рад/с).
  3. Phase (rads) - Начальная фаза (рад).
  4. Sample time – Шаг модельного времени. Используется для согласования работы источника и других компонентов модели во времени. Параметр может принимать следующие значения:
    0 (по умолчанию) – Используется при моделировании непрерывных систем.
    > 0 (положительное значение) – Задается при моделировании дискретных систем. В этом случае шаг модельного времени можно интерпретировать как шаг квантования по времени выходного сигнала.
    -1 – Шаг модельного времени устанавливается таким же, как и в предшествующем блоке, т.е. блоке, откуда приходит сигнал в данный блок.
    Этот параметр может задаваться для большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет.

При расчетах для очень больших значений времени точность расчета выходных значений сигнала падает вследствие значительной ошибки округления.

9.1.2.2. Формирование выходного сигнала по текущему значению времени для дискретных систем

Алгоритм определения значения выходного сигнала источника для каждого последующего шага расчета определяется выражением (в матричной форме):

где D t – постоянная величина, равная значению Sample time.

В данном режиме ошибка округления для больших значений времени также уменьшает точность расчета.

9.1.2.3. Формирование выходного сигнала по величине модельного времени и количеству расчетных шагов на один период

Выходной сигнал источника в этом режиме соответствует выражению:

y= Amplitude* sin[(k + Number of offset samples) / Samples per period] + bias ,

где k – номер текущего шага расчета.

В данном режиме ошибка округления не накапливается, поскольку Simulink начинает отсчет номера текущего шага с нуля для каждого периода.

На Рис. 9.1.2 показано применение блока с разными значениями шага модельного времени (Sample time = 0 для блока Sine Wave 1и Sample time = 0.1 для блока Sine Wave 2). Для отображения графиков выходных сигналов в модели использован виртуальный осциллограф (Scope).

Рис. 9.1.2. Блок Sine Wave

9.1.3. Источник линейно изменяющегося воздействия Ramp

Назначение:
Формирует линейный сигнал вида y = Slope* time + Initial value.

1. Slope — Скорость изменения выходного сигнала.

2. Start time — Время начала формирования сигнала.

3. Initial value — Начальный уровень сигнала на выходе блока.

На Рис. 9.1.3. показано использование данного блока.

Рис. 9.1.3. Блок Ramp

9.1.4. Генератор ступенчатого сигнала Step

Назначение:
Формирует ступенчатый сигнал.

  1. Step time - Время наступления перепада сигнала (с).
  2. Initial value - Начальное значение сигнала.
  3. Final value - Конечное значение сигнала.

Перепад может быть как в большую сторону (конечное значение больше чем начальное), так и в меньшую (конечное значение меньше чем начальное). Значения начального и конечного уровней могут быть не только положительными, но и отрицательными (например, изменение сигнала с уровня –5 до уровня –3).

На Рис. 9.1.4. показано использование генератора ступенчатого сигнала.

Рис. 9.1.4. Блок Step

9.1.5. Генератор сигналов Signal Generator

  1. sine — Синусоидальный сигнал.
  2. square — Прямоугольный сигнал.
  3. sawtooth — Пилообразный сигнал.
  4. random — Случайный сигнал.
  1. Wave form – Вид сигнала.
  2. Amplitude – Амплитуда сигнала.
  3. Frequency - Частота (рад/с).
  4. Units – Единицы измерения частоты. Может принимать два значения:
    - Hertz - Гц.
    - rad/sec – рад/с.

На Рис. 9.1.5. показано применение этого источника при моделировании прямоугольного сигнала.

Рис. 9.1.5. Блок генератора сигналов

9.1.6. Источник случайного сигнала с равномерным распределением Uniform Random Number

Назначение:
Формирование случайного сигнала с равномерным распределением.

  1. Minimum – Минимальный уровень сигнала.
  2. Maximum – Максимальный уровень сигнала.
  3. Initial seed – Начальное значение.

Пример использования блока и график его выходного сигнала представлен на Рис. 9.1.6.

Рис. 9.1.6. Источник случайного сигнала с равномерным распределением

9.1.7. Источник случайного сигнала с нормальным распределением Random Number

Назначение:
Формирование случайного сигнала с нормальным распределением уровня сигнала.

Рис. 9.1.7. Источник случайного сигнала с нормальным распределением

9.1.8. Источник импульсного сигнала Pulse Generator

Назначение:
Формирование прямоугольных импульсов.

Пример использования Pulse Generator показан на рис. 9.1.8.

Рис. 9.1.8. Источник прямоугольных импульсов

9.1.9. Генератор линейно-изменяющейся частоты Chirp Generator

Назначение:
Формирование синусоидальных колебаний, частота которых линейно изменяется.

  1. Initial frequence — Начальная частота (Гц);
  2. Target time — Время изменения частоты (с);
  3. Frequence at target time — Конечное значение частоты (Гц).

Пример использования блока показан на Рис. 9.1.9.

Рис. 9.1.9. Генератор линейно-изменяющейся частоты

9.1.10. Генератор белого шума Band-Limited White Noice

Назначение:
Создает сигнал заданной мощности, равномерно распределенной по частоте.

Рис. 9.1.10 показывает работу этого генератора.

Рис. 9.1.10. Генератор белого шума

9.1.11. Источник временного сигнала Clock

Назначение:
Формирует сигнал, величина которого на каждом шаге расчета равна текущему времени моделирования.

  1. Decimation - Шаг, с которым обновляются показания времени на изображении источника (в том случае, если установлен флажок параметра Display time). Параметр задается как количество шагов расчета. Например, если шаг расчета модели в окне диалога Simulation parameters установлен равным 0.01 с, а параметр Decimation блока Clock задан равным 1000, то обновление показаний времени будет производиться каждые 10 с модельного времени.
  2. Display time - Отображение значения времени в блоке источника.

На рис. 9.1.11 показан пример работы данного источника.

Рис. 9.1.11. Источник временного сигнала

9.1.12. Цифровой источник времени Digital Clock

Назначение:
Формирует дискретный временной сигнал.

Sample time – Шаг модельного времени (с).

На Рис. 9.1.12 показана работа источника Digital Clock.

Рис. 9.1.12. Цифровой источник временного сигнала

9.1.13. Блок считывания данных из файла From File

Назначение:
Получение данных из внешнего файла.

Данные в файле должны быть представлены в виде матрицы:

Матрица должна состоять, как минимум, из двух строк. Значения времени записаны в первой строке матрицы, а в остальных строках находятся значения сигналов, соответствующие данным моментам времени. Значения времени должны быть записаны в возрастающем порядке. Выходной сигнал блока содержит только значения сигналов, а значения времени в нем отсутствуют. Если шаг расчета текущей модели не совпадает с отсчетами времени в файле данных, то Simulink выполняет линейную интерполяцию данных.

Файл данных (mat-файл), из которого считываются значения, не является текстовым. Структура файла подробно описана в справочной системе MATLAB. Пользователям Simulink удобнее всего создавать mat-файл с помощью блока To File (библиотека Sinks). На рис. 9.1.13 показан пример использования данного блока. Из файла data.mat считываются значения синусоидального сигнала.

Рис. 9.1.13. Блок From File

9.1.14. Блок считывания данных из рабочего пространства From Workspace

Назначение:
Получение данных из рабочего пространства MATLAB.

На рис. 9.1.14 показан пример использования данного блока. Данные в переменную simin рабочей области MATLAB загружаются из файла с помощью блока Read data.

Рис. 9.1.14. Блок From File

9.1.15. Блок сигнала нулевого уровня Ground

Назначение:
Формирование сигнала нулевого уровня.

На рис. 9.1.15 даны примеры использования блока. В первом случае сигнал с блока Ground поступает на один из входов сумматора, а во втором на один из входов блока умножения. Показания блоков Display подтверждают, что вырабатываемый блоком Ground сигнал имеет нулевое значение. Из рисунка также видно, что тип выходного сигнала блока устанавливается автоматически, в соответствии с типами сигналов, подаваемых на другие входы блоков (в данном случае – на входы блоков Sum и Product).

Рис. 9.1.15. Применение блока Ground

9.1.16. Блок периодического сигнала Repeating Sequence

Назначение:
Формирование периодического сигнала.

Блок выполняет линейную интерполяцию выходного сигнала для моментов времени не совпадающих со значениями заданными вектором Time values. На рис. 9.1.16 показан пример использования блока для формирования пилообразного сигнала. Значения модельного времени заданы вектором [0 3], а значения выходного сигнала вектором [0 2].

Рис. 9.1.16. Использование блока Repeating Sequence

9.1.17. Блок входного порта Inport

Создает входной порт для подсистемы или модели верхнего уровня иерархии.

  • Sample time –Шаг модельного времени.
  • Data type – Тип данных входного сигнала: auto, double, single, int8, uint8, int16, uint16, int32, uint32 или boolean.
  • Signal type – Тип входного сигнала:
  1. auto – Автоматическое определение типа.
  2. real –Действительный сигнал.
  3. complex- Комплексный сигнал.
  • Interpolate data (флажок) – Интерполировать входной сигнал. В случае, если временные отсчеты входного сигнала считываемого из рабочей области MATLAB не совпадают с модельным временем, то блок будет выполнять интерполяцию входного сигнала. При использовании блока Inport в подсистеме данный параметр не доступен.

9.1.17.1. Использование блока Inport в подсистемах

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

На рис. 9.1.17 показана модель, использующая подсистему и схема этой подсистемы.

Рис. 9.1.17. Использование блока Inport в подсистеме

9.1.17.2. Использование блока Inport в модели верхнего уровня

Для передачи сигнала из рабочего пространство MATLAB требуется не только установить в модели входной порт, но и выполнить установку параметров ввода на вкладке Workspace I/O окна диалога Simulation parameters… (должен быть установлен флажок для параметра Input и задано имя переменной, которая содержит входные данные). Тип вводимых данных: Array (массив), Structure (структура) или Structure with time (структура с полем "время") задается на этой же вкладке.

На рис. 9.1.18 показана модель, считывающая входной сигнал из рабочего пространства MATLAB. Подсистема Load Data обеспечивает ввод данных из файла в рабочую область MATLAB.

Рис. 9.1.18. Модель, считывающая входной сигнал из рабочего пространства MATLAB с помощью блока Input.

Цель работы: Изучение видов сигналов, принципов их задания и моделирования.

Необходимые теоретические сведения. Функции генерации сигналов

Сигнал (signum – знак) - физический процесс, который осуществляет перенос информации во времени и пространстве. Физическая природа сигнала различна. Часто это напряжение (ток), могут быть другие величины. Сигнал обладает различными параметрами и характеристиками и представляется математической моделью. Как правило, математическая модель упрощает сигнал, поскольку не все свойства сигнала существенны при той или иной задаче. В общей формулировке сигнал это функция времени, хотя возможны варианты (например, зависимость светового потока от пространственных координат).

В зависимости от того известен ли сигнал точно, различают детерминированные и случайные сигналы.

Детерминированный сигнал отличается тем, что закон изменения во времени известен, а, следовательно, и математическая модель не содержит неизвестных параметров. Способы задания таких сигналов: математическая формула; вычислительный алгоритм; словесное описание.

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

Квазидетерминированным сигналом называется сигнал с частично известным законом изменения во времени, т. е. с одним или несколькими случайными параметрами.

Случайный сигнал имеет случайный характер изменения во времени и может быть описан с помощью статистических характеристик (спектральная плотность закона распределения). Его нельзя представить детерминированной функцией, поскольку конкретные значения сигнал принимает с некоторой вероятностью.


В теории и практике обработки сигналов часто встречаются периодические сигналы, для которых выполняется соотношение s(t+nT)=s(t) при любом t, где n -произвольное число, T- период. Величина обратная периоду – частота f, часто используется понятие круговой частоты (рад/cек). Периодические сигналы имеют бесконечную энергию. Следующий класс – финитные сигналы, т.е. те, которые имеют конечную длительность - если только сигнал не имеет разрывов 2 рода ( с уходящими в бесконечность ветвями).

Сигналы описываются общими математическими моделями. В общем случае эта модель определяется математическими зависимостями: , где t – основной независимый аргумент, a, b, c – параметры сигнала. Модели сигналов в зависимости от основного независимого аргумента бывают временными и частотными (аргумент ). Применяются также векторные модели. Вид модели выбирается из конкретных условий.

Аналоговый сигнал с математической точки зрения представляет собой функцию, и при его дискретизации получаются отсчеты, которые являются значениями этой функции, взятые в отдельные дискретные моменты времени. В пакете Signal Processing имеется целый ряд функций, предназначенных для генерации сигналов стандартной формы, часто встречающихся при решении различных задач обработки сигнала.

Генерация непериодических (одиночных)сигналов

Все функции генерации непериодических сигналов задают в виде параметров (вектор моментов времени и дополнительные аргументы, описывающие параметры формируемого импульса). Возвращаемым результатом является вектор отсчетов результирующего сигнала. Имеются функции для генерации сигналов следующей формы:

rectpuls — генерация одиночного прямоугольного импульса, единственным дополнительным параметром является длительность импульса.

Обращение вида s = rectpuls (t, tau) позволяет образовать вектор у значений сигнала такого импульса единичной амплитуды, шириной tau, центрированного относительно t=0 по заданому вектору t. Если ширина импульса tau не указана, ее значение по умолчанию принимается равным единице.

tripuls — генерация одиночного треугольного импульса, дополнительными параметрами являются длительность импульса и коэффициент его асимметрии.

fs = 1e3; t=0:1/fs:1; t=t';

В данном случае введена частота дискретизации fs 1кГц. Сигнал будет задан на интервале времени 1 секунда. Это соответствует 1001 отсчёту. Последний оператор означает преобразование вектора-строки в вектор-столбец (апостроф ' означает операцию транспонирования матрицы). Не следует забывать ставить точку с запятой в конце каждого оператора, чтобы подавить вывод значений на экран монитора. Нужный импульс будет получен как

s=A·rectpuls (t – tau/2, tau);

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

Для вывода графиков может быть использована команда plot. Команда plot(s) изображает вектор s как функцию индекса. Задав вектор времени t, фактически получается график аналогового сигнала, который получен путем линейной интерполяции.

Возможно задание цвета графика, используемых символов (сплошная черта, точка, пунктир и т.д.), а также текстовых надписей. Например, последовательность команд

plot(t,s,'r'); title(' Функция RECTPULS')

ylabel('Выходной сигнал s(t)')

изображает график зависимости s от индекса красным цветом (red) с соответствующими надписями.

2) Треугольный импульс

s= A ٭ tripuls (t – tau/2, tau);

3) Экспоненциальный импульс

s = A ٭ exp (- t / tau);

Подразумевается, что вектор t задан для моментов времени t 0.

4) Синусоидальный импульс

sr = s .* cos (2*pi*f0*t + phi);

Предварительно нужно задать значение несущей частоты f0 и начальной фазы phi. Обратите внимание, что операция умножения представлена здесь как .* (точка перед знаком *). Это означает поэлементное умножение векторов (в противном случае производились бы операция матричного умножения). В тех случаях, когда осуществляется умножение скаляров или матрицы (вектора) на скаляр, можно использовать просто символ *. То же самое относится к операции деления и возведения в степень. Поэлементное деление матриц задаётся оператором ./, поэлементное возведение в степень . ^. Число π задаётся в MatLab как pi.

6) Последовательности импульсов

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

s= pulstran (t, d, ‘func’, p1, p2 …)

Здесь t - вектор значений моментов времени, d - вектор задержек и амплитуд импульсов, ‘func’- имя функции, задающей одиночный импульс, например, ‘rectpuls’ или ‘tripuls’; p1, p2 … - параметры одиночного импульса, передаваемые функции func. Например, нужно задать следующую последовательность прямоугольных импульсов:

Fs= 1e3; t= 0:1/Fs:1; t= t’;

d(: ,1)= [0.05 0.25 0.55]’ ;

s= pulstran (t, d, ‘rectpuls’, tau);

Так же этот процесс, состоящий из трех последовательных прямоугольных импульсов разной высоты и ширины, можно получить по такой последовательности команд

s = 0.75*rectpuls(t-3, 2)+0.5*rectpuls(t-8, 0.4)+1.35*rectpuls(t-5, 0.8);

или последовательность треугольных импульсов

Если нужно построить последовательность импульсов произвольной формы, причём отсчёты одиночного импульса записаны в векторе s1, то используют следующую форму задания функции pulstran:

Например, нужно задать последовательность (пачку) из четырёх синусоидальных импульсов:

t=-5:0.1:10; % время для аналогового сигнала

k=0:5; % номера отсчетов дискретного сигнала

sd=[1 1 3 3 2 2]; % дискретный сигнал

sa=pulstran(t,[k' sd'],'sinc');%восстановленный сигнал

stem(k, sd) % график дискретного сигнала

plot(t, sa, 'r') % график аналогового сигнала

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


7) Последовательности периодических сигналов

Приведем пример использования функций square и sawtooth. Для вывода нескольких графиков в разных областях одного окна используют команду subplot, имеющая следующий синтаксис

Графическое окно будет разбито на клетки, где Row –количество строк; Columns - количество столбцов; N - номер текущей клетки (счет ведется по строкам). Приведенные ниже команды осуществляют одновременный вывод трех сигналов в матрице (2,2).

t=0:0.01:30; % задание временного интервала

x=square(t); % определение прямоугольного сигнала

y=sawtooth(t,0.5); % определение треугольного сигнала

z=sawtooth(t,1); % определение пилообразного сигнала

В результате получаем процесс, изображенный на рис.2


8) Последовательности периодических сигналов с шумом

Для генерации случайных чисел служат команды rand (равномерное распределение) и randn (нормальное распределение). При обращении к функции randn формируется массив из m строк и n столбцов, состоящий из псевдослучайных чисел, имеющих нормальное распределение, с нулевым средним значением и единичным стандартным отклонением. В задачах, связанных с обработкой сигналов, иногда используют функцию wgn (white Gausse noise).

В качестве примера рассмотрим такую задачу. Допустим имеется некоторый "полезный" сигнал, имеющий синусоидальную форму с известным периодом Т1 =1с и амплитудой А1 =0.75. Сформируем этот сигнал как вектор его значений в дискретные моменты времени с Тs = 0.001 с:

Ts=0.001; t=0:Ts:20; A1=0.75; T1=1;

Допустим, что вследствие прохождения через датчик к полезному сигналу добавился шум в виде более высокочастотной синусоиды с периодом Т2 = 0.2с и амплитудой А2=5, а в результате измерения к нему еще добавился белый гауссовый шум измерителя с интенсивностью Аш =5. В результате создался такой сигнал x(t):

T2=0.2; A2=10; eps=pi/4; Ash=5;


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

B = 5000; % верхняя граничная частота шума

fi = rand(1)*2*pi; % случайная начальная фаза

f0B = f0/B; % относительная частота сигнала

S = A*cos(pi*f0B*i+fi); % Ngraf отсчетов сигнала

ksi = randn(1, Ngraf); % Ngraf отсчетов шума

Sksi = S + ksi; % Ngraf отсчетов смеси

subplot(3,1,1); plot(i,S); % график сигнала

subplot(3,1,2); plot(i,ksi); % график шума

subplot(3,1,3); plot(i,Sksi,’r’); %график Сигнал+шум title(‘Сигнал плюс шум’);


8) Получение данных из внешних источников

Преобразование аналогового сигнала в цифровой и обратно – это процессы, которые выполняются аппаратными средствами. Matlab же, будучи программным пакетом, может лишь взаимодействовать с соответствующим оборудованием. Кроме того, в Matlab предусмотрены средства для воспроизведения и записи звука, а также для работы со звуковыми файлами формата WAV.

Для считывания WAV-файлов в Matlab имеется функция waveread. В простейшем случае она может быть использована следующим образом:

y = wavread (‘filename’);

Здесь filename – имя звукового файла (расширение .wav указывать необязательно).

В результате выполнения функции в переменную y будет перемещено всё содержимое указанного файла. Строки матрицу y соответствуют отсчётам сигнала, столбцы – каналам, которых в WAV-файле может быть несколько.

В звуковом файле отсчёты сигнала представлены целыми числами, лежащими в диапазоне -128..+127 (8 бит на отсчёт), либо -32768…+32767 (16 бит на отсчёт). Управлять нормировкой считываемых отсчётов можно с помощью дополнительного строкового параметра ‘fmt’, добавляемого в конце списка входных параметров функции waveread. При принятом по умолчанию варианте ‘double’ значения отсчётов приводятся в диапазоне -1..+1, а при значении ‘native’ функция возвращает целые числа в том виде, в котором они хранятся в WAV-файле.

Помимо собственно отсчётов, в WAV-файле хранится служебная информация о частоте дискретизации, количество бит на отсчёт и т.п. Узнать частоту дискретизации можно, используя при вызове функции второй выходной параметр:

y,Fs] = wavread (‘filename’);

Например, необходимо разработать скрипт Matlab, позволяющий считать данные из WAV-файла и вывести их в графическом виде.

subplot(2,1,1); %функция вывода нескольких графиков

Результат выполнения скрипта:


Чтобы записать вектор (или матрицу) на диск в виде WAV-файла, используется функция wavwrite:

где y – записываемые данные (вектор для монофонической записи, двухстолбцовая матрица – для создания стереофайла); Fs – частота дискретизации в герцах; N – число бит на отсчёт (8 или 16); filename – имя создаваемого файла.

Выходных параметров у данной функции нет. Параметры N и Fs можно опускать, при этом используются значения по умолчанию – N=16 и Fs=8000.

Создадим скрипт Matlab, производящий операцию удвоения амплитуды сигнала WAV-файла и записывающий изменения в новый файл Исходный код представить ниже:

subplot(2,1,1); %функция вывода нескольких графиков

y2=y*2; %удваиваем амплитуду

figure; %показать график в новом окне

Данный пример удваивает амплитуду (громкость) исходного файла и записывает изменения в файл с именем vals-new.wav’.

Результаты выполнения скрипта представить на рис.



9) Работа в SPTool (Signal Processing Tool)

Для вызова программы нужно в командном окне MATLAB набрать:

Импортируйте в sptool сформированный согласно заданию сигнал. С этой целью выберите команду Import в меню File главного окна программы sptool. Появится окно Import to SPTool. Переключатель Source установите в положение From Workspace. В списке Workspace Contents перечислены переменные, имеющиеся в рабочей области MatLab. В раскрывающемся списке Import As нужно выбрать строку Signal. Далее выберите в списке идентификатор вектора, содержащего отсчёты сигнала, и нажмите кнопку --> напротив поля Data. Затем аналогичным образом введите значение частоты дискретизации Fs в поле Sampling Frequency. Задайте имя сигнала в поле Name. Под этим именем он будет помещён в список сигналов sptool. Вслед за этим следует нажать кнопку OK. Просмотрите график сигнала. Для этого выделите имя сигнала в списке сигналов и нажмите кнопку View, расположенную под этим списком. При просмотре графиков можно изменять масштаб, укрупняя отдельные участки. Для измерения значений в отдельных точках используются маркеры, которые можно перетаскивать мышью.

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

1.Загрузите MatLab. В командном окне задайте частоту дискретизации, интервал времени, в течение которого будет длиться сигнал (учитывается время, отводимое на импульсы и на паузы между ними) и сформируйте вектор отсчётов сигнала, задайте необходимые параметры сигнала, руководствуясь информацией, приведённой выше.

И.В.Черных. "Simulink: Инструмент моделирования динамических систем"

9. Библиотека блоков Simulink

9.1. Sources - источники сигналов

9.1.1. Источник постоянного сигнала Constant

Назначение:
Задает постоянный по уровню сигнал.

Параметры:
1. Constant value - Постоянная величина.
2. Interpret vector parameters as 1-D – Интерпретировать вектор параметров как одномерный (при установленном флажке). Данный параметр встречается у большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет.

Значение константы может быть действительным или комплексным числом, вычисляемым выражением, вектором или матрицей.

Рис. 9.1.1 иллюстрирует применение этого источника и измерение его выходного сигнала с помощью цифрового индикатора Display.

Рис. 9.1.1. Источник постоянного воздействия Constant

9.1.2. Источник синусоидального сигнала Sine Wave

Назначение:
Формирует синусоидальный сигнал с заданной частотой, амплитудой, фазой и смещением.

  • Time-based – По текущему времени.
  • Sample-based – По величине шага модельного времени.

9.1.2.1. Формирование выходного сигнала по текущему значению времени для непрерывных систем

Выходной сигнал источника в этом режиме соответствует выражению:

    Amplitude - Амплитуда.
  1. Bias – Постоянная составляющая сигнала.
  2. Frequency (rads/sec) - Частота (рад/с).
  3. Phase (rads) - Начальная фаза (рад).
  4. Sample time – Шаг модельного времени. Используется для согласования работы источника и других компонентов модели во времени. Параметр может принимать следующие значения:
    0 (по умолчанию) – Используется при моделировании непрерывных систем.
    > 0 (положительное значение) – Задается при моделировании дискретных систем. В этом случае шаг модельного времени можно интерпретировать как шаг квантования по времени выходного сигнала.
    -1 – Шаг модельного времени устанавливается таким же, как и в предшествующем блоке, т.е. блоке, откуда приходит сигнал в данный блок.
    Этот параметр может задаваться для большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет.

При расчетах для очень больших значений времени точность расчета выходных значений сигнала падает вследствие значительной ошибки округления.

9.1.2.2. Формирование выходного сигнала по текущему значению времени для дискретных систем

Алгоритм определения значения выходного сигнала источника для каждого последующего шага расчета определяется выражением (в матричной форме):

где D t – постоянная величина, равная значению Sample time.

В данном режиме ошибка округления для больших значений времени также уменьшает точность расчета.

9.1.2.3. Формирование выходного сигнала по величине модельного времени и количеству расчетных шагов на один период

Выходной сигнал источника в этом режиме соответствует выражению:

y= Amplitude* sin[(k + Number of offset samples) / Samples per period] + bias ,

где k – номер текущего шага расчета.

В данном режиме ошибка округления не накапливается, поскольку Simulink начинает отсчет номера текущего шага с нуля для каждого периода.

На Рис. 9.1.2 показано применение блока с разными значениями шага модельного времени (Sample time = 0 для блока Sine Wave 1и Sample time = 0.1 для блока Sine Wave 2). Для отображения графиков выходных сигналов в модели использован виртуальный осциллограф (Scope).

Рис. 9.1.2. Блок Sine Wave

9.1.3. Источник линейно изменяющегося воздействия Ramp

Назначение:
Формирует линейный сигнал вида y = Slope* time + Initial value.

1. Slope — Скорость изменения выходного сигнала.

2. Start time — Время начала формирования сигнала.

3. Initial value — Начальный уровень сигнала на выходе блока.

На Рис. 9.1.3. показано использование данного блока.

Рис. 9.1.3. Блок Ramp

9.1.4. Генератор ступенчатого сигнала Step

Назначение:
Формирует ступенчатый сигнал.

  1. Step time - Время наступления перепада сигнала (с).
  2. Initial value - Начальное значение сигнала.
  3. Final value - Конечное значение сигнала.

Перепад может быть как в большую сторону (конечное значение больше чем начальное), так и в меньшую (конечное значение меньше чем начальное). Значения начального и конечного уровней могут быть не только положительными, но и отрицательными (например, изменение сигнала с уровня –5 до уровня –3).

На Рис. 9.1.4. показано использование генератора ступенчатого сигнала.

Рис. 9.1.4. Блок Step

9.1.5. Генератор сигналов Signal Generator

  1. sine — Синусоидальный сигнал.
  2. square — Прямоугольный сигнал.
  3. sawtooth — Пилообразный сигнал.
  4. random — Случайный сигнал.
  1. Wave form – Вид сигнала.
  2. Amplitude – Амплитуда сигнала.
  3. Frequency - Частота (рад/с).
  4. Units – Единицы измерения частоты. Может принимать два значения:
    - Hertz - Гц.
    - rad/sec – рад/с.

На Рис. 9.1.5. показано применение этого источника при моделировании прямоугольного сигнала.

Рис. 9.1.5. Блок генератора сигналов

9.1.6. Источник случайного сигнала с равномерным распределением Uniform Random Number

Назначение:
Формирование случайного сигнала с равномерным распределением.

  1. Minimum – Минимальный уровень сигнала.
  2. Maximum – Максимальный уровень сигнала.
  3. Initial seed – Начальное значение.

Пример использования блока и график его выходного сигнала представлен на Рис. 9.1.6.

Рис. 9.1.6. Источник случайного сигнала с равномерным распределением

9.1.7. Источник случайного сигнала с нормальным распределением Random Number

Назначение:
Формирование случайного сигнала с нормальным распределением уровня сигнала.

Рис. 9.1.7. Источник случайного сигнала с нормальным распределением

9.1.8. Источник импульсного сигнала Pulse Generator

Назначение:
Формирование прямоугольных импульсов.

Пример использования Pulse Generator показан на рис. 9.1.8.

Рис. 9.1.8. Источник прямоугольных импульсов

9.1.9. Генератор линейно-изменяющейся частоты Chirp Generator

Назначение:
Формирование синусоидальных колебаний, частота которых линейно изменяется.

  1. Initial frequence — Начальная частота (Гц);
  2. Target time — Время изменения частоты (с);
  3. Frequence at target time — Конечное значение частоты (Гц).

Пример использования блока показан на Рис. 9.1.9.

Рис. 9.1.9. Генератор линейно-изменяющейся частоты

9.1.10. Генератор белого шума Band-Limited White Noice

Назначение:
Создает сигнал заданной мощности, равномерно распределенной по частоте.

Рис. 9.1.10 показывает работу этого генератора.

Рис. 9.1.10. Генератор белого шума

9.1.11. Источник временного сигнала Clock

Назначение:
Формирует сигнал, величина которого на каждом шаге расчета равна текущему времени моделирования.

  1. Decimation - Шаг, с которым обновляются показания времени на изображении источника (в том случае, если установлен флажок параметра Display time). Параметр задается как количество шагов расчета. Например, если шаг расчета модели в окне диалога Simulation parameters установлен равным 0.01 с, а параметр Decimation блока Clock задан равным 1000, то обновление показаний времени будет производиться каждые 10 с модельного времени.
  2. Display time - Отображение значения времени в блоке источника.

На рис. 9.1.11 показан пример работы данного источника.

Рис. 9.1.11. Источник временного сигнала

9.1.12. Цифровой источник времени Digital Clock

Назначение:
Формирует дискретный временной сигнал.

Sample time – Шаг модельного времени (с).

На Рис. 9.1.12 показана работа источника Digital Clock.

Рис. 9.1.12. Цифровой источник временного сигнала

9.1.13. Блок считывания данных из файла From File

Назначение:
Получение данных из внешнего файла.

Данные в файле должны быть представлены в виде матрицы:

Матрица должна состоять, как минимум, из двух строк. Значения времени записаны в первой строке матрицы, а в остальных строках находятся значения сигналов, соответствующие данным моментам времени. Значения времени должны быть записаны в возрастающем порядке. Выходной сигнал блока содержит только значения сигналов, а значения времени в нем отсутствуют. Если шаг расчета текущей модели не совпадает с отсчетами времени в файле данных, то Simulink выполняет линейную интерполяцию данных.

Файл данных (mat-файл), из которого считываются значения, не является текстовым. Структура файла подробно описана в справочной системе MATLAB. Пользователям Simulink удобнее всего создавать mat-файл с помощью блока To File (библиотека Sinks). На рис. 9.1.13 показан пример использования данного блока. Из файла data.mat считываются значения синусоидального сигнала.

Рис. 9.1.13. Блок From File

9.1.14. Блок считывания данных из рабочего пространства From Workspace

Назначение:
Получение данных из рабочего пространства MATLAB.

На рис. 9.1.14 показан пример использования данного блока. Данные в переменную simin рабочей области MATLAB загружаются из файла с помощью блока Read data.

Рис. 9.1.14. Блок From File

9.1.15. Блок сигнала нулевого уровня Ground

Назначение:
Формирование сигнала нулевого уровня.

На рис. 9.1.15 даны примеры использования блока. В первом случае сигнал с блока Ground поступает на один из входов сумматора, а во втором на один из входов блока умножения. Показания блоков Display подтверждают, что вырабатываемый блоком Ground сигнал имеет нулевое значение. Из рисунка также видно, что тип выходного сигнала блока устанавливается автоматически, в соответствии с типами сигналов, подаваемых на другие входы блоков (в данном случае – на входы блоков Sum и Product).

Рис. 9.1.15. Применение блока Ground

9.1.16. Блок периодического сигнала Repeating Sequence

Назначение:
Формирование периодического сигнала.

Блок выполняет линейную интерполяцию выходного сигнала для моментов времени не совпадающих со значениями заданными вектором Time values. На рис. 9.1.16 показан пример использования блока для формирования пилообразного сигнала. Значения модельного времени заданы вектором [0 3], а значения выходного сигнала вектором [0 2].

Рис. 9.1.16. Использование блока Repeating Sequence

9.1.17. Блок входного порта Inport

Создает входной порт для подсистемы или модели верхнего уровня иерархии.

  • Sample time –Шаг модельного времени.
  • Data type – Тип данных входного сигнала: auto, double, single, int8, uint8, int16, uint16, int32, uint32 или boolean.
  • Signal type – Тип входного сигнала:
  1. auto – Автоматическое определение типа.
  2. real –Действительный сигнал.
  3. complex- Комплексный сигнал.
  • Interpolate data (флажок) – Интерполировать входной сигнал. В случае, если временные отсчеты входного сигнала считываемого из рабочей области MATLAB не совпадают с модельным временем, то блок будет выполнять интерполяцию входного сигнала. При использовании блока Inport в подсистеме данный параметр не доступен.

9.1.17.1. Использование блока Inport в подсистемах

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

На рис. 9.1.17 показана модель, использующая подсистему и схема этой подсистемы.

Рис. 9.1.17. Использование блока Inport в подсистеме

9.1.17.2. Использование блока Inport в модели верхнего уровня

Для передачи сигнала из рабочего пространство MATLAB требуется не только установить в модели входной порт, но и выполнить установку параметров ввода на вкладке Workspace I/O окна диалога Simulation parameters… (должен быть установлен флажок для параметра Input и задано имя переменной, которая содержит входные данные). Тип вводимых данных: Array (массив), Structure (структура) или Structure with time (структура с полем "время") задается на этой же вкладке.

На рис. 9.1.18 показана модель, считывающая входной сигнал из рабочего пространства MATLAB. Подсистема Load Data обеспечивает ввод данных из файла в рабочую область MATLAB.

Рис. 9.1.18. Модель, считывающая входной сигнал из рабочего пространства MATLAB с помощью блока Input.

что может быть ошибкой?

3 ответа

Я хотел бы построить график распространения импульса таким образом, чтобы на каждом шаге он отображал форму импульса. Другими словами, Мне нужна серия из x-z графиков для каждого значения y. Что-то вроде этого (без цвета): Как я могу сделать это с помощью matplotlib (или Mayavi)? Вот что я сделал.

Я создал матрицу 3d в MATLAB. Значения матрицы - это скорость в этой точке прямоугольного сечения. Я хотел бы plot с цветами, показывающими значения в каждой позиции, возможно ли это? Говоря по-другому, у меня есть матрица размером 100x100x200. Id как график, который имеет 100x100x200 точек, и.

Это потому, что rectpuls не предназначен для того, чтобы принимать символ, он должен принимать числа.

Вы должны установить T на фактическое число (ширина прямых импульсов).

См . документацию rectpuls .

dutyCycle = 1.9; % Рабочий цикл

y = хевисайд(dutyCycle - (t - T*floor(t/T)));

Похожие вопросы:

Я новичок в хаосе и нелинейной динамике. Я пытался построить график фазового пространства для карты палатки , используя Matlab. График фазового пространства - это график его независимых переменных.

Меня попросили построить график амплитудного отклика импульса с помощью фильтра Баттерворта. Я уже это сделал, [b, a] = butter(n, Wn, 'low') & freqz(b, a) Однако меня также попросили вывести.

Есть ли способ добавить третье измерение к графику в Matlab? У меня есть объект Graph; G = graph(S,T), включая XData и YData, можно ли по существу иметь сетевой Граф 3D в Matlab? XData, YData и.

Я хотел бы построить график распространения импульса таким образом, чтобы на каждом шаге он отображал форму импульса. Другими словами, Мне нужна серия из x-z графиков для каждого значения y. Что-то.

Я создал матрицу 3d в MATLAB. Значения матрицы - это скорость в этой точке прямоугольного сечения. Я хотел бы plot с цветами, показывающими значения в каждой позиции, возможно ли это? Говоря.

Я пытаюсь получить 1D преобразование Фурье прямоугольного импульса. Все остальное кажется прекрасным; компоненты нулевой частоты кажутся очень высокими и кажутся дискретным пиком. Участок FFT.

Эй, я начал задание на matlab,мне нужно найти решение функции. Таким образом, код работает хорошо, и когда я помещаю в него график, он показывает мне этот график. Моя проблема заключается в том .

Часть финансовая часть вопроса R Я пытался воспроизвести приведенную ниже формулу в R, используя пакет Quantmod, а также xts, используя функцию diff. Код дает мне сюжет для кредитного импульса, но.

У меня возникли проблемы с интерпретацией результата обратного преобразования Фурье прямоугольного импульса в Python. Я использую функцию irfft из библиотеки numpy.fft. Вот мой код: import numpy as.

У меня есть базовая нейронная сеть, которую я обучил в Keras. Я играю с эффектом скорости обучения и импульса, и я хотел бы построить хороший график 3d, чтобы визуализировать влияние скорости.

Читайте также: