我是matlab的新手。我不知道如何导出dirac增量函数,然后使用符号工具箱将其转换。
syms t
x = dirac(t)
为什么我不能看到使用ezplot(x,[-10,10])
的狄拉克δ函数?
发布于 2015-11-14 17:27:07
正如其他人所指出的,Diracδ函数不是一个真正的函数,而是一个广义函数。对dirac
的帮助表明:
dirac(X)不是严格意义上的函数,而是一个 带int(dirac(X)*f(X),-inf,inf) = f(a)和 diff(heaviside( x),x)= dirac(x)。
严格地说,Matlab不可能用正规的方法绘制Diracδ函数,因为它的一部分扩展到无穷大。然而,如果你想要可视化的话,有很多解决办法。一个简单的方法是使用stem
绘图函数和>
运算符将一个Inf
值转换为有限值。这会产生一个单位脉冲函数(或克罗内克三角洲):
t = -10:10;
x = dirac(t) > 0;
stem(t,x)
如果t
和x
已经作为符号变量/表达式而不是数字变量/表达式存在,则可以使用subs
syms t
x = dirac(t);
t2 = -10:10;
x2 = subs(x,t,t2)>0;
stem(t2, x2)
如果你想要看上去不同的东西,你可以写你自己的情节例程。使用ezplot
不太可能工作,因为它没有提供太多的控制。
发布于 2015-11-14 11:30:16
首先,我以前没有见过ezplot
,我不得不把它读出来。对于像您的x
这样的功能类的东西,它很方便,但是您仍然必须意识到它确实给了您它所承诺的东西:一个阴谋。
如果你有绘制狄拉克三角函数的工作,你如何正确地去做呢?你不能。你必须找到一个惯例,用信息注释你的情节,在你的情节中有一个孤立的,无限的点。
因此,用线条图绘制一些东西是不适合于任何事情的,除非是光滑的函数(这是一个明确的术语)。Dirac Delta绝对不是光滑的函数类之一。您通常会使用垂直线或其他东西来表示函数式不是0的点。
https://stackoverflow.com/questions/33707851
复制相似问题