This repository has been archived on 2023-12-21. You can view files and clone it, but cannot push or open issues or pull requests.
ece45-project/src/generate_square.m

21 lines
508 B
Mathematica
Raw Normal View History

2021-12-01 23:17:58 +00:00
function x = generate_square(amplitude, frequency, phase, fs, duration, duty)
%GENERATE_SINE:Arthur Lu returns a matrix of sampled sine wave, where the
%phase shift is in number of periods
x = zeros(1, fs * duration);
A = amplitude;
f = frequency;
p = phase;
n = fs * duration;
dt = 1 / fs;
for i = 1:n
t = i * dt;
st = mod(f * t - p, 1);
if(st < duty)
x(i) = A;
else
x(i) = -A;
end
end
end