用Matlab符号工具箱推导dirac-delta函数
我是matlab新手。我不明白如何导出狄拉克δ函数,然后使用符号工具箱对其进行移位用Matlab符号工具箱推导dirac-delta函数,matlab,Matlab,我是matlab新手。我不明白如何导出狄拉克δ函数,然后使用符号工具箱对其进行移位 syms t x = dirac(t) 例如,为什么我不能使用ezplot(x,[-10,10])来查看dirac delta函数?首先,我以前没有遇到过ezplot;我不得不仔细阅读。对于像你的x这样的函数,它很方便,但你仍然必须意识到它确实给了你它所承诺的东西:一个情节 如果你有绘制狄拉克三角函数的工作,你会如何正确地去做呢?你不能。您必须找到一种约定,即使用以下信息对绘图进行注释:绘图中有一个单独的、孤立
syms t
x = dirac(t)
例如,为什么我不能使用
ezplot(x,[-10,10])
来查看dirac delta函数?首先,我以前没有遇到过ezplot
;我不得不仔细阅读。对于像你的x
这样的函数,它很方便,但你仍然必须意识到它确实给了你它所承诺的东西:一个情节
如果你有绘制狄拉克三角函数的工作,你会如何正确地去做呢?你不能。您必须找到一种约定,即使用以下信息对绘图进行注释:绘图中有一个单独的、孤立的、无限的点
因此,除了平滑函数(这是一个定义良好的术语)之外,使用线图绘制其他对象是不合适的。Dirac Delta绝对不属于平滑函数类。您通常会使用一条垂直线或其他东西来表示函数不是0的点。正如其他人所指出的,函数不是真正的函数,而是一个函数。dirac的帮助说明如下:
狄拉克(X)不是严格意义上的函数,而是一个具有int(dirac(x-a)*f(x),-inf,inf)=f(a)和
diff(heaviside(x),x)=狄拉克(x) 严格地说,Matlab不可能以正常的方式绘制Dirac delta函数,因为它的一部分扩展到无穷大。但是,如果您想要可视化,有许多变通方法。一个简单的方法是使用plot函数和
操作符将一个Inf
值转换为有限值。这将产生单位脉冲函数(或):
如果t
和x
已作为符号变量/表达式而不是数字变量/表达式存在,则可以使用subs
:
syms t
x = dirac(t);
t2 = -10:10;
x2 = subs(x,t,t2)>0;
stem(t2, x2)
如果您想要看起来不同的东西,可以编写自己的绘图例程。使用
ezplot
不太可能起作用,因为它不能提供太多的控制。因为狄拉克(t)不是一个函数。但是matlab在绘图时把它伪装成一个函数,如果你的样本没有精确地达到零,你会得到平坦的零,它可能不在函数类中:-)@LuisMendo:是的,它是一个分布,是基于函数的广义概念;但你向OP解释;)
syms t
x = dirac(t);
t2 = -10:10;
x2 = subs(x,t,t2)>0;
stem(t2, x2)