【问题标题】:How to convolve a function with delta function in Matlab?如何在 Matlab 中将函数与 delta 函数进行卷积?
【发布时间】:2016-10-11 09:44:16
【问题描述】:

我们知道另一个函数与 delta 函数进行卷积,输出将与函数本身相同,例如

f(n) * δ(n) = f(n)

例如

n=-10:10;
h=[n>=0];
i=[(n-4)>=0];
f=h-i;

我得到了函数f(n),但是我应该如何编码δ(n) 以获得f(n) * δ(n) 的茎图?

还有一个问题,如果我们反复对一个函数本身进行卷积,实际发生了什么?我尝试在 Matlab 中进行一些链卷积,例如 conv(conv(f,f,'same'),f,'same');,主干图各不相同,但我无法弄清楚原因。 请帮忙,谢谢。

【问题讨论】:

  • Dirac delta 函数仅用于分析数学。如果x=0δ(x)=0 否则定义为δ(x)=Inf。此外,integral(δ(x),-Inf,Inf)=1。因此您的f(n) * δ(n) = f(n) 不正确!此外,您可以使用限制来近似它,例如 δ(x)=a/(a^2+x^2)/pi if a→0 (or very very small) 。
  • @AlexanderKorovin δ(0)=Infδ(x)=0 否则不是函数的定义。该功能没有明确的定义。只是说它的无穷小并且积分是1。很容易有函数遵循这一点并具有δ(0)=0f(n) * δ(n) = f(n) 是正确的,只要 * 是卷积(定义)而不是乘数点的替换。
  • @KamiKaze 你可以看到狄拉克三角函数的定义,例如here。也许,问题的作者的意思是Kronecker delta。因此,f(n) * δ(0) = f(n)f(n') * δ(n-n') = f(n)
  • @AlexanderKorovin 来自您的维基百科链接:he Dirac delta can be loosely thought of This is merely a heuristic characterization. The Dirac delta is not a function in the traditional sense as no function defined on the real numbers has these properties. 它没有被定义为这种方式。这是它的一般想象,但它不是定义。

标签: matlab


【解决方案1】:

在离散数学中,脉冲是δ(0) = 1δ(n) = 0 对应于n != 0

如果你将一个函数与它本身进行卷积,你就可以做到这一点。没什么特别的。

将其与自身的镜像(y 轴)函数进行卷积将是自相关。

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2016-09-05
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多