How to generate a periodic customized waveform?

4 views (last 30 days)
I want to generate waveforms as shown in the image below and then tweak them to modify the fall time constant of the signal. However, MATLAB doesn't have a customized waveform generator I think. Can I make this waveform in MATLAB? Thanks in advance!

Accepted Answer

Yazan
Yazan on 6 Aug 2021
Edited: Yazan on 7 Aug 2021
This simple function can compute the signal you need. Use lambda to control the decay and see the other parameters.
function x = mySignal(T1, T2, A, lambda, np)
if nargin==0
T1 = 10; T2 = 30; A = 5; lambda = 0.25; np = 5; % np is number of periods
end
t1 = 0:T1-1; t2 = (T1:T2);
x1 = A/(T1-0).*t1;
x2 = A.*exp(-lambda.*(t2-T1));
xx = [x1(:); x2(:)];
x = repmat(xx, [np, 1]);
t = 0:length(x)-1;
figure, plot(t, x), grid minor
ax = gca;
ax.XTick = [0, T1, T2];
ax.XTickLabel = {'0', sprintf('T1=%g', T1), sprintf('T2=%g', T2)};
ax.YTick = [0, A];
ax.YTickLabel = {'0', sprintf('A=%g', A)};
title({'Composite signal', 'Control exponential decay by $\lambda$'}, 'interpreter','latex')
end

More Answers (0)

Tags

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!