Как сделать синусоиду в матлабе

Обновлено: 02.07.2024

Графики в Matlab, также как в табличном процессоре, могут быть построены по узловым точкам. Поскольку MATLAB — матричная система, совокупность узловых точек у(х) для построения графика задается векторами X и Y одинакового размера.

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

В Matlab для построения графиков функций по узловым точкам в декартовой системе координат служит функция plot. Функция plot имеет несколько синтаксических конструкций:
- plot (X, Y) - строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы;
- plot(Y) — строит график у(i), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y), imag(Y)). Во всех других случаях мнимая часть данных игнорируется;
- plot(X,Y,S) — аналогична команде plot(X,Y), но тип линии графика можно задавать с помощью строковой константы S. Значениями константы S могут быть следующие символы:

Если функция задана аналитической моделью, то для построения графика нужно определить вектор значений аргумента для узловых точек, вычислить значения функции при заданных значениях аргумента и сохранить эти значения в виде вектора, а затем применить функцию plot. Приведенный ниже пример иллюстрирует построение графика функций — sin(x) по узловым точкам :

>> x=[0; 0.4; 0.8; 1.2; 1.4;1.8;2.2;2.6;3;3.4;3.8]; Y=sin(x); plot(x,Y)

В этом примере уже определены значения вектора x , вычисляемые значения функции содержатся в векторе Y.

Построение двумерного графика одной функции

Для того, чтобы построить график функции y = f(x) , необходимо сформировать два одномерных массива x и y одинаковой размерности, а затем использовать функцию plot .

Пример 1 . Требуется построить график функции на интервале значений X [-1; 1].

Информационно-учебный проект по цифровой электронике

Руководство по лабораторной работе

Для выполнения лабораторной работы Вам необходимо повторить соответствующие лекции.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Гармонические сигналы и их комбинации в среде MatLab создаются с помощью функций Sin(x) и Cos(x). Следующий пример демонстрирует сигнал, представляющий собой сумму двух синусоид – 3Гц с амплитудой 1 В и 40 Гц с амплитудой 0,25 В. Сигнал сформирован для интервала времени от 0 до 1 с, частота дискретизации – 100 Гц.

Пример № 1

fs = 100; %частота дискретизации 100 Гц

t = 0:1/fs:1; %интервал времени от 0 до 1 сек

x = sin(2*pi*t*3) + .25*sin(2*pi*t*40);%сумма гармоник

Результат работы программы представлен на рисунке 1.


Рисунок 1. Результат работы программы из примера № 1

Следующий пример демонстрирует генерацию гармонического сигнала с частотой 1 КГц (частота дискретизации – 8 КГц), амплитуда которого изменяется по экспоненциальному закону. Начальная амплитуда сигнала – 2 В, начальная фаза сигнала – 45 0 . В примере показаны различные способы визуализации сигнала (посмотрите документацию для следующих команд – subplot, plot, stem, stairs).

Пример № 2

Fs = 8e3; %частота дискретизации 8 КГц

t = 0:1/Fs:1; %1 секунда дискретных моментов времени

t = t’; %преобразование строки в столбец

A = 2; %амплитуда – 2 В

f0 = 1e3; %частота – 1 КГц

phi = pi/4; %начальная фаза – 45 град

s1 = A*cos(2*pi*f0*t+phi); %гармонический сигнал

alpha = 1e3; %скорость затухания экспоненты

s2 = exp(-alpha*t).*s1; %затухающая синусоида

Результат работы программы представлен на рисунке 2.


Рисунок № 2. Результат работы программы из примера № 2

Для генерации одиночных импульсов в среде MatLab имеются встроенные функции:
rectpuls – прямоугольный импульс;
tripuls – треугольный импульс;
sinc – импульс вида sin(πt)/ (πt);
gausplus – радиоимпульс с гауссовой огибающей;
pulstran – последовательность из конечного числа импульсов произвольной формы.

Рассмотрим несколько примеров с использованием данных функций.

Функция rectpuls формирует одиночный прямоугольный импульс с единичной амплитудой. Формат вызова данной функции следующий:
y = rectpuls (t, width), где
t – вектор значений времени, width – ширина (длительность) импульса.

В качестве следующего примера рассмотрим генерацию одиночного отрицательного импульса, длительностью 20 мс и амплитудой – минус 5 В (пример № 3):

Пример № 3


Функция tripuls формирует одиночный треугольный импульс с единичной амплитудой. Формат вызова данной функции следующий:
y = rectpuls (t, width, skew), где
t – вектор значений времени, width – ширина (длительность) импульса, skew – коэффициент асимметрии импульса, определяющий положение его вершины. Пик импульса расположен при t = width*skew/2 . Параметр skew должен лежать в диапазоне от -1 до 1.


В качестве следующего примера рассмотрим генерацию одиночного треугольного импульса, длительностью 60 мс, амплитудой 10 В и смещением вершины на 15 мс (пример № 4).

Пример № 4


Fs = 1e3; %частота дискретизации

t = -50e-3:1/Fs:50e-3; %дискретное время

A = 10; %амплитуда

T1 = 0.5; %смещение вершины

T2 = 60e-3; %нижнее основание

s = A*tripuls(t,T2,T1);% генерация импульса

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

y = gauspuls(t, fc, bw, bwr), где

t – вектор значений времени, fc – несущая частота в Гц, bw – относительная ширина спектра (ширина спектра, деленная на несущую частоту), bwr – уровень (в децибелах), по которому производится измерение ширины спектра.

В качестве примера рассмотрим генерацию одиночного радиоимпульса с несущей частотой = 4 КГц, шириной спектра = 400 Гц, амплитудой = 1 В, уровнем измерения ширины спектра = – 20 дБ (пример № 5).

Пример № 5


Fs = 16e3;% частота дискретизации 16 КГц

t = -10e-3:1/Fs:10e-3;%длительность радиоимпульса

Fc = 4e3;%несущая частота 4 КГц

bw = 0.1;%относительная ширина спектра 0.1

bwr = -20;%уровень = -20 дБ

s=gauspuls(t,Fc,bw,bwr);% генерация радиоимпульса

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

y = pulstran(t, d, ‘func’, p1, p2, …), где
t – вектор значений времени, d – вектор задержек, ‘func’ – имя функции, генерирующей одиночный импульс (могут использоваться функции rectpuls,
tripuls, gausplus или собственные функции). Оставшиеся параметры p1, p2, … – дополнительные, они передаются функции ‘func’ при ее вызове.

Измените параметры генерируемых сигналов в М-файлах из примеров № 1 и № 2. Для каждого из примеров создайте по два варианта собственной реализации.


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

Рисунок 3. Одиночный двухполярный импульс.


С помощью функции tripuls создайте одиночный трапецеидальный импульс, изображенный на рисунке 4.


Рисунок 4. Одиночный трапецеидальный импульс.

Как мне генерировать простую синусоидальную волну в Matlab?

Я хотел бы создать волну, которая представляет температурный сигнал с амплитудой 15 градусов в течение 24 часов, как я могу это сделать?

где 15 - амплитуда. Это не генерирует синусоидальную волну, как я ожидал. Я ожидал увидеть одну волну, которая продолжается в течение 24 часов с амплитудой 15, скажем, с наименьшим значением 5 и максимумом 20 (как мне включить их в уравнение?).

2 ответа

Добавьте постоянную и настройте частоту:

В вашем коде частота неверна, а период выборки слишком велик для этой частоты: у вас есть псевдоним. Вот почему вы не видите синусоиды.

1 -е занятие по MATLAB

ЛАБОРАТОРНАЯ РАБОТА №1

I . Основные вычислительные процедуры системы MATLAB

1. Операции сложения, вычитания с присвоением и без присвоения результата (+, -).

2. Операции умножения, деления (*, /).

3. Возведение в степень ( ^ ) .

4. Извлечение из квадратного корня ( sqrt ): sqrt (16+9)

5. Повторение действий, повторение с измененными параметрами и функциями.

6. Невыполняемый комментарий — %

7. Задание ряда чисел с заданным шагом и по умолчанию: t=(0:0.5:7)' % В виде столбца

8. Задание матриц (например: a = [1 2 3;4 5 6]):

9. Матричные операции:

— сложение, вычитание (+, -) ;

— умножение (*) ;

— обращение (inv) ;

— возведение в степень ( ^ ) ;

— транспонирование ( ' ) .

— c оздание нижней треугольной матрицы А: tril (А).

— c оздание верхней треугольной матрицы А: triu (А).

¾ вращение матрицы А относительно вертикальной оси: fliplr ( A ).

¾ вращение матрицы А относительно горизонтальной оси: flipud ( A ).

¾ поворот матрицы А на 90 0 против часовой стрелки: rot 90( A ).

¾ поворот матрицы А на 90 0 по часовой стрелке: rot 90( A ,-1).

¾ поворот матрицы А на кратное 90 0 значение: rot 90( A , k ), где k = ± 1, ± 2, . . . — множитель, на который умножается угол 90 0 .

¾ п.п. вращения и поворота выполнить для квадратных и прямоугольных матриц.

¾ формирование единичной матрицы заданного размера n : eye ( n ).

¾ формирование единичной матрицы по размеру данной квадратной матрицы А: eye ( size ( A )).

¾ матрица единиц данного размера n ´ m : ones ( n , m ). Для создания квадратной матрицы: ones ( n ).

¾ матрица единиц по размеру заданной матрицы А: ones ( size ( A )).

¾ матрица нулей данного размера n ´ m : zeros ( n , m ). Для создания квадратной матрицы: zeros ( n ).

¾ матрица нулей по размеру заданной матрицы А: zeros ( size ( A )).

¾ матрица Паскаля данного размера n : pascal ( n ). Матрица Паскаля является положительно-определенной.

¾ извлечение диагонали заданной матрицы А: diag ( A ).

¾ вычисление следа матрицы А: trace ( A ).

¾ вычисление следа матрицы А через функции sum и diag : sum ( diag ( A )).

¾ магический квадрат размера n ( n >2): magic ( n ).

¾ проанализировать магический квадрат с помощью функций MATLAB : просуммировать элементы каких-либо строк или столбцов, найти след магического квадрата.

¾ создание диагональной матрицы по заданной матрице А: diag ( diag ( A )).

¾ создание диагональной матрицы по заданному вектору-столбцу Р: diag ( P ).

¾ создание диагональной матрицы по заданному вектору-строке N : diag ( N ).

¾ создание диагональной матрицы по заданному вектору или матрице, набираемым в поле аргумента функции diag .

¾ собственные числа действительной или комплексной матрицы А: eig ( A ).

¾ выделение строк или столбцов матрицы: A = [1 2 3;4 5 6]; A (:,2:3) — 2-й и 3-й столбцы

¾ Задание матриц по случайному равномерному закону — rand (например, rand (3,4))

¾ Задание матриц по случайному нормальному закону — randn (например, randn (2,5))

¾ Получение помощи для заданной встроенной функции: help -пробел-функция.

¾ Операции с массивами (перед знаком арифметического действия ставится точка):

(например: [1 2 3;4 5 6].^2) — возведение каждого элемента матрицы в квадрат.

Выполнить матричные операции п.9 в виде операций с массивами.

8. Формирование коэффициентов характеристического полинома заданной числовой матрицы А: poly ( A ).

9. Формирование характеристического полинома заданной числовой матрицы А: poly ( sym ( A )). По умолчанию независимой переменной полинома является х.

10. Формирование характеристического полинома заданной числовой матрицы А с назначаемой независимой переменной полинома (например s ): poly ( sym ( A ), sym (' s ')).

11. Сравнить результаты выполнения п.п. 1.26, 1.27, 1.28.

12. Формирование коэффициентов характеристического полинома матрицы А по ее заданным собственным числам: poly ( eig ( A )).

13. Формирование характеристического полинома по заданным корням, являющимися элементами вектора Р : poly ( P ).

14. Формирование полинома с коэффициентами, являющимися элементами заданного вектора Р: poly 2 sym ( P ). Степень полинома на единицу меньше размерности заданного вектора Р.

II . Информативные сведения о матрицах, векторах, числах.

1. Размерность матрицы А: size ( A ).

2. Длина вектора Р: length ( P ).

3. Применить функцию size к вектору Р, примениить функцию length к матрице А (к прямоугольной и квадратной).

4. Уплотненный вывод на экран массивов и чисел: disp ( A ), disp ( P ), disp ( a ), где а — какое-либо число (действительное или комплексное, например, а=2+3 i ).

5. Определение простого числа: если а - простое число, то функция isprime ( a ) возвращает 1 (единицу), в противном случае будет 0 (ноль). Величина задаваемого числа а имеет определенные ограничения (порядка десятков миллионов).

6. Определение простых чисел из диапазона 2 . . . а: primes ( a ). Величина числа а также ограничена. Функция primes ( a ) возвращает вектор, элементы которого являются простые числа из диапазона 2 . . . а.

7. Определение знак заданного числа а: sign ( a ). Аргументом функции sign могут быть числа, выражения, математические функции.

8. Округление числа а до ближайшего целого: round ( a ).

9. Абсолютное значение заданного числа или выражения — abs : abs ((3-5)/2), abs (-2^3)

III. Специальные функции.

1. Разложение числа N на простые множители: factor ( N ).

2. Суммирование элементов вектора Р: sum ( P ). Результат — число.

3. Суммирование элементов столбцов матрицы А: sum ( A ). Результат — строка, состоящая из суммы элементов каждого столбца матрицы А.

4. Формирование произведения элементов вектора Р: prod ( P ).

5. Формирование произведения элементов столбцов матрицы А: prod ( A ).

6. Формирование матрицы с элементами из возможных перестановок элементов заданного числового вектора Р: perms ( P ).

Создание М-файлов в виде М-сценариев.

2- D графика в MATLAB .

М-сценарии представляют собой последовательность действий или запись вычислительных алгоритмов, которые затем оформляются системой MATLAB в виде m -файлов (с расширением m ). Техт М-сценария может быть написан в любом текстовом редакторе (текстовый документ) и затем перенесен в систему MATLAB , где для дальнейшего использования должен быть сохранен в окне редактора как m -файл.

1. Создание простейших сценариев.

10. Создать в командном окне MATLAB матрицу: а = [1 2 3;4 5 6] или а = [1,2,3;4,5,6];

11. Транспонировать матрицу а : а1 = а ' ;

12. Создать матрицу b = [10 20 30;40 50 60];

13. Перемножить матрицы а1 и b : с = а1* b ;

14. На экране создать надпись 'Перемножение матриц а1 и b :' с помощью disp ('Перемножение матриц а1 и b : ');

15. Вывести результат перемножения, набрав в командной строке обозначение с и нажав клавишу Enter ;

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

17. Проделать предыдущие пункты команд с точкой с запятой и без.

18. Пункты 1-6 записать в М-файле. Для этого в командной строке набрать edit . Как только откроется окно текстового редактора, повторить набор команд пп. 1-6 и сохранить под каким-либо именем (например, Lab 1). Тем самым создали М - сценарий.

19. Выйти из редактора в командное окно MATLAB .

20. Запустить на выполнение созданный М - сценарий. Для этого в активной командной строке набрать имя М - сценария и нажать клавишу Enter ;

21. Для возвращения в редактор с целью редактирования созданного М - файла в командной строке набрать edit и через пробел имя желаемого файла (например, Lab 1).

22. В М - файле можно записывать комментарии. Они создаются с помощью знака %. Т.е. после знака % можно писать как на русском, так и на английском и т.д. Все, что находится за знаком %, является невыполняемыми действиями, даже если там будут записаны стандартные команды MATLAB .

23. Создать М - сценарий с набором матриц и их инвертированием. Инвертирование матрицы с: inv ( c ) .

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

Функция распределения экспоненциального распределения вероятностей:

где — интенсивность распределения, равная обратной величине математического ожидания (среднего) распределения, т.е. где — математическое ожидание.

Выборка случайных чисел определяется через инверсную функцию от F ( t ):

где — случайное число из интервала [0, 1],

1. Сценарий формирования выборки случайных чисел, распределенных по экспоненциальному закону.

1.1. Выборка из 18 случайных чисел с экспоненциальным распределением и с заданным параметром интенсивности, равным 2:

% начало цикла, шаг индексации равен 1

% — случайное число из [0, 1]

% получение вектора-столбца случайных чисел

% сортировка случайных чисел по возрастанию значений

1.2. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции expinv :

T=expinv(p2,0.5)

1.3. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции exprnd :

R = sort ( y ) % R — вектор случайных отсортировнных чисел по возрастанию

Сценарии 1.1, 1.2, 1.3 должны быть сохранены под какими-либо именами, которым система MATLAB присваивает расширение m . Выполнение m -файла (сценария) может быть осуществлено из рабочей строки командного окна MATLAB .

Примеры статистичесих интерактивных графических окон

функций распределения вероятностей.

Диалоговое (интерактивное) окно графических типовых распределений вероятностей в системе MATLAB — функция DISTTOOL ( disttool ).

DISTTOOL позволяет наглядно в виде графиков представлять различные функции распределения вероятностей с задаваемыми параметрами. В DISTTOOL приводятся две функции: cdf — функция распределения (интегральная функция распредления вероятностей), pdf — функция плотности распределения (дифференциальная функция распределения вероятностей).

Диалоговое (интерактивное) окно графических типовых гистограмм распределения вероятностей в системе MATLAB — функция RANDTOOL ( randtool ).

RANDTOOL позволяет представлять гистограммы функций плотности распределения вероятностей с возможным изменением параметров распределения и с изменением количества интервалов рассматриваемой гистограммы.

Графические построения. 2- D графика MATLAB .

2.1. График в полярной системе координат:

t=0:0.01:2*pi; y=3*(1+sin(t)); polar(t,y)

2.2. Совмещение графиков в одной системе координат с помощью функции hold on : t =0:0.01:2* pi ; y 1=3*(1+ sin ( t )); y 2=3*(1- sin ( t ));

polar(t,y1),hold on,polar(t,y2,'r')

2.3. Совмещение трех и более графиков с помощью функции hold on :

polar(t,y1),hold on,polar(t,y2,'r'),polar(t,y3,'g'),polar(t,y4,'k')

2.4. График в декартовой системе координат:

2.5. Формирование пояснений к графику с помощью функции gtext :

t=0:0.01:2*pi; y=sin(t);plot(t,y),grid,gtext('t'),gtext('y')

% требуемые символы ( t и y ) устанавливаются в позиции курсора мыши.

2.6. Построение графиков заданных функций — fplot .

% График функции sin ( t ) или sin ( x ) и т.д. в пределах по аргументу от до :

% График функции sin ( t ) в пределах по t от до с ограничением от -0.7 до 0.7

% Совмещение нескольких графиков: sin ( t ), exp (-0.5 t ), 3 cos ( t )

Задание: Построить с помощью fplot графики следующих функций и их комбинаций:

с соответствующими областями определения.

2.7. Формирование пояснений к графику с помощью функций title , xlabel , ylabel :

t =0:0.01:2* pi ; y = sin ( t );

plot ( t , y ), grid , title ('Синусоида'), xlabel ('радианы'),

ylabel(' функция '),gtext('t'),gtext('y')

% требуемые символы на графике устанавливаются в позиции курсора мыши.

2.8. Формирование пояснений к начертанию нескольких графиков с помощью функции legend :

t=0:0.01:2*pi;y1=sin(t);y2=cos(t);

plot(t,y1,'r'),grid,hold on,plot(t,y2), legend('s1','c2')

2.9. Установка ярлыка legend в различных частях графика:

в левом верхнем углу: legend (' s 1',' c 2', 2);

в левом нижнем углу: legend (' s 1',' c 2', 3);

в правом нижнем углу: legend (' s 1',' c 2', 4);

в правом верхнем углу: legend (' s 1',' c 2', 1)

или по умолчанию: legend (' s 1',' c 2');

вне рабочей области графика: legend (' s 1',' c 2', -1);

2.10. Интерактивный графический калькулятор — funtool .

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

% Установка для графиков цветов осуществляется в соответствии со следующими ключевыми обозначениями, приведенными в табл.1.:

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