Defining Dirac Function matlab

5 visualizzazioni (ultimi 30 giorni)
Jente Marien
Jente Marien il 2 Mar 2017
Risposto: Carlos M. Velez S. il 24 Lug 2025
x(t) = t(u(t + 2) − 3 u(t − 3) + 2 u(t − 5))
How can I plot this function, with u as the diriac and t as a variable?
  2 Commenti
Walter Roberson
Walter Roberson il 2 Mar 2017
It seems much more likely to me that you want Heaviside rather dirac.
Rik
Rik il 2 Mar 2017
I agree with Walter. If so, you could implement the Heaviside function (if there is not already an implementation built in) with something like (x+abs(x))/2

Accedi per commentare.

Risposte (2)

Walter Roberson
Walter Roberson il 2 Mar 2017
heaviside exists in the Symbolic Math toolbox. Please be careful about the value of heavside(0); since R2015a you have been able to configure that value using sympref()
dirac exists in the Symbolic Math toolbox as well. Please remember that dirac() is technically a distribution, and that dirac(x) is 0 for all non-0 x and is infinite for x == 0, so multiplying dirac(x) by a constant only makes sense if you are integrating a function that contains dirac() (in which case you get the heaviside step function.)

Carlos M. Velez S.
Carlos M. Velez S. il 24 Lug 2025
If you want to apply the Dirac delta function in simulation to continuous-time systems, the following code is enough:
function y = delta_dirac(u)
[n,m] = size(u);
if max(n,m) ==1
dt = 1e-6; % Define a small time increment for the delta function
else
dt = u(2) - u(1);
end
y = zeros(n,m);
for i=1:max(m,n)
if u(i) == 0
y(i) = 1/dt;
else
y(i) = 0;
end
end

Categorie

Scopri di più su Introduction to Installation and Licensing in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by