Heaviside Unit Step Function
The
unit step function (also known as the Heaviside function) is
a
discontinuous function whose value is zero for negative arguments and
one for positive arguments. The Heaviside function is the integral of
the Dirac delta function.
This concept can be mathematically expressed as:
Our current intention is not to deal with all
the formal details. In this brief article we're going to deal
with it in an informal way, in order to just operate
with
it and create some plots in Matlab.
This
function is commonly utilized in control theory or digital
signal
processing (dsp) to represent a signal that switches on at a
specified time and remains switched on indefinitely.
The
function depends on real input parameters. We can
define the function having a scalar number as an input. For
example, let’s
create a discrete plot without using any special toolbox in
Matlab.
function y =
step_fun(n)
%
We assume a scalar input
%
Our default output value is 0
y = 0;
%
We change our output to 1 if the argument is greater
% than or equal to 0
if n >=
0
y
= 1;
end
If we want to
get a plot from there, we have to iterate utilizing real numbers. If
the input is an integer, then the function will be a discrete one. To
stress the fact that we're working with discrete functions
here,
we'll use 'stem' instead of 'plot'.
Let's call the function from another script. For example:
%
We iterate from -5 to 5 using only integers
for n = -5
: 5
y
= step_fun(n);
stem(n,
y)
hold on
end
%
We adjust our axis values just to visualize better
axis([-5
5 -1 2])
and we get
Now,
let’s say that we have a vector (not a scalar) as an input. We want to
calculate the Heaviside function for all of the values
included in the vector.
We can create another function to considerate this approach:
function y =
heaviside(n)
%
We assume a vector input
%
Our default output value is 0
y = 0 *
n;
%
Now, we find values in n greater than or equal to 0
y(find(n
>= 0)) = 1;
We
don’t need a
loop now, so our process has been simplified a lot. Let's
use this new approach.
n = -5 :
5;
y =
heaviside(n);
stem(n,
y)
axis([-5
5 -1 2])
The
result is again:
If we
want to calculate y = 4H(n)
+ 3H(n-2), in
a range of integers that go from -10 to 10, we can do
simply this:
n = -10 : 10;
y = 4 *
heaviside(n) + 3*heaviside(n-2);
stem(n,
y)
axis([-15
15 -1 8])
and the
result is:
We can
see that every integer in the domain of the
function counts to add to the final result, and that
happens
when the argument is zero for each term. The first term, 4H(n),
adds a height of 4 (coefficient) at n
= 0; the second term, 3H(n-2),
adds a magnitude of 3 at n = 2.
From
'Step Function'
to home
From
'Step
Function' to 2D-plots Menu
|