Как сделать синусоиду в матлабе
Графики в 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.:
Читайте также: