square

Прямоугольная волна

Описание

пример

x = square(t) генерирует прямоугольную волну с периодом 2π для элементов массива времени t. square похоже на синусоидальную функцию, но создает прямоугольную волну со значениями –1 и 1.

пример

x = square(t,duty) генерирует прямоугольную волну с заданным рабочим циклом duty. Рабочий цикл является процентом периода сигнала, в который прямоугольная волна положительна.

Примеры

свернуть все

Создайте вектор 100 равномерно распределенных чисел от 0 к 3π. Сгенерируйте прямоугольную волну с периодом 2π.

t = linspace(0,3*pi)';
x = square(t);

Постройте прямоугольную волну и наложите синус. Нормируйте ось X π. Сгенерированная прямоугольная волна имеет значение 1 для интервалов [nπ,(n+1)π) с даже n и значение -1 для интервалов [nπ,(n+1)π) с нечетным n. Волна никогда не имеет значение 0.

plot(t/pi,x,'.-',t/pi,sin(t))
xlabel('t / \pi')
grid on

Повторите вычисление, но теперь оцените square(2*t) в 121 равномерно распределенном числе между -π и 2π. Измените амплитуду в 1.15. Постройте волну и наложите синус теми же параметрами. Эта новая волна отрицательна в t=0 и положительный в конечных точках, -π и 2π.

t = linspace(-pi,2*pi,121);
x = 1.15*square(2*t);

plot(t/pi,x,'.-',t/pi,1.15*sin(2*t))
xlabel('t / \pi')
grid on

Сгенерируйте прямоугольную волну на 30 Гц, произведенную на уровне 1 кГц для 70 мс. Задайте рабочий цикл 37%. Добавьте белый Гауссов шум с отклонением 1/100.

t = 0:1/1e3:0.07;
y = square(2*pi*30*t,37)+randn(size(t))/10;

Вычислите рабочий цикл волны. Постройте форму волны и аннотируйте рабочий цикл.

dutycycle(y,t)

ans = 0.3639

Входные параметры

свернуть все

Массив времени в виде вектора, матрицы или N-D массив. square действует вдоль первого измерения массива t с размером, больше, чем 1.

Типы данных: single | double

Рабочий цикл в виде действительного скаляра от 0 до 100.

Типы данных: single | double

Выходные аргументы

свернуть все

Прямоугольная волна, возвращенная как вектор, матрица или N-D массив.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | | | | | | |

Представлено до R2006a