How Define Delta Function
95 ビュー (過去 30 日間)
古いコメントを表示
I have a problem about calculating with Delta Function. I am trying write matlab code for these function.

I wrote the following code for this function.
n = -5:1:7;
x = delta(n+1) - delta(n) + unit(n+1) - unit(n-2);
stem(n,x,'fill');
axis([-6 8 -1.5 1.5])
xlabel('n')
ylabel('x[n]')
grid
But I am getting the following error.
I don't now how can ı write the delta function in this way ,
function y = unit(x);
y = zeros(size(x));
y(x>0) = 1;
end
Can you help me write the delta function as the 'unit' function you see above? Thank you for your helping.
0 件のコメント
採用された回答
Star Strider
2021 年 3 月 24 日
If you have the Symbolic Math Toolbox, use the dirac function. It can be used with non-symbolic arguments as well.
4 件のコメント
Walter Roberson
2021 年 3 月 24 日
That is not a true Dirac δ function.
delta = @(x) x==0;
unit = @(x) x>=0;
n = -5:1:7;
x = delta(n+1) - delta(n) + unit(n+1) - unit(n-2);
stem(n,x,'fill');
axis([-6 8 -1.5 2])
xlabel('n')
ylabel('x[n]')
grid
その他の回答 (1 件)
Carlos M. Velez S.
2025 年 7 月 24 日
The examples above refer to the Kronecker delta function for discrete signals. 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
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Graph and Network Algorithms についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


