I have this signal in matlab:
x(t) = t*sin(m*pi*t)*heaviside(-m*pi-t) t*cos(k*pi*t)*heaviside(t-k*pi) sin(k*pi*t)*cos(m*pi*t)*(heaviside(t m*pi)-heaviside(t-k*pi));
and I want to calculate the values only from -5pi to 5pi with a step of pi/100.What should I edit?
CodePudding user response:
Provided you have defined m
and k
somewhere, and you have the matlab symbolic toolbox which provides the heaviside function, this is how it is done:
% First we define the function
x = @(t) t*sin(m*pi*t)*heaviside(-m*pi-t) t*cos(k*pi*t)*heaviside(t-k*pi) sin(k*pi*t)*cos(m*pi*t)*(heaviside(t m*pi)-heaviside(t-k*pi));
% Then we define the values for which we want to compute the function
t_values = -5*pi:pi/100:5*pi;
% Finally we evaluate the function
x_values = x(t_values)
Details
First line we define your function as an anonymous function which is a handy tool in matlab.
Then we create a vector of values from -5pi to 5*pi with steps of pi/100. For this we use the matlab colon syntax. It makes it short and efficient.
Finally we evaluate the function on each of the
t_values
by passing the vector to the anonymous function.
Note: If you don't have the symbolic toolbox, you could easily implement heaviside
yourself.