问题标签 [convolution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10643 浏览

r - R中的卷积

我尝试直接在 R 中进行卷积并使用 FFT 然后取反。但从简单的观察看来它是不正确的。看这个例子:

让我们取索引 0。在 0 处,卷积应该只是 x2$xt (24.610) 的最后一个值乘以 h2$xt (0.003891051) 的第一个值,这应该在索引 0 = 24.610*0.003891051 = 0.09575877 处给出卷积,即远离 0.4750436。

难道我做错了什么?为什么值与预期如此不同?

0 投票
4 回答
16515 浏览

numpy - 仅沿一个轴进行卷积

我有两个具有相同第一轴尺寸的二维数组。在 python 中,我只想沿第二个轴对两个矩阵进行卷积。我也想C在不计算沿第一轴的卷积的情况下到达下方。

有没有快速的方法?

0 投票
2 回答
1788 浏览

c++ - CUDA 卷积 - 不可分离的内核

我需要使用不可分离的内核实现图像卷积的高效版本(因此 CUDA 的 sdk 仅对 FFT 示例有用,但明确指出它仅适用于大内核大小)

除了从头开始实现它之外,我还需要对先验未知大小的矩阵和内核进行操作(它们可以是 10x10 和 20.000x20.000,我根本无法预测)

您对 FFT 示例有何建议?(如果这是你最好的选择,请给我一些好点子,让我开始弄清楚它是如何工作的)

对于第二个选择(我自己手动实现卷积),最大化内存合并的建议是什么?

0 投票
2 回答
3723 浏览

c++ - CUDA FFT——二的幂

我正在查看 CUDA SDK 上的 FFT 示例,我想知道:当填充数据的一半是 2 的幂时,为什么 CUFFT 更快?(一半是因为在频域中一半是多余的)

拥有两个大小的力量有什么意义?

0 投票
2 回答
1285 浏览

c++ - 具有可分离核的卷积

我正在查看带有可分离内核的 CUDA SDK 卷积,我有一个简单的问题,但找不到答案:

卷积给出内核的向量是否需要具有相同的大小?我可以先用向量 1x3 执行行卷积,然后再用另一个 5x1 执行列卷积吗?或者他们都需要相同的大小?谷歌没有帮助(或者我无法搜索答案)

0 投票
3 回答
12583 浏览

image-processing - 处理 CUDA 中的边界条件/光环区域

我正在使用 CUDA 进行图像处理,但我对像素处理有疑问。

m x m应用卷积滤波器时,通常对图像的边界像素进行什么处理?

3 x 3卷积核中,忽略1图像的像素边界更容易处理,尤其是在使用共享内存改进代码时。实际上,在这种情况下,不需要检查给定像素是否具有所有可用的邻域(即坐标处的像素(0, 0)没有离开、左上、上邻居)。但是,删除1原始图像的像素边界可能会产生部分结果。

与此相反,我想处理图像中的所有像素,在使用共享内存改进时也是如此,例如,加载16 x 16像素,但计算内部14 x 14. 同样在这种情况下,忽略边界像素会生成更清晰的代码。

在这种情况下通常会做什么?

有没有人通常使用我的方法忽略边界像素?

当然,我知道答案取决于问题的类型,即按像素添加两个图像没有这个问题。

提前致谢。

0 投票
3 回答
3460 浏览

matlab - MATLAB:矩阵值函数的卷积

我编写了这段代码来执行二维矩阵值函数的一维卷积(k 是我的时间索引,kend 大约为 10e3)。是否有更快或更清洁的方法来做到这一点,也许使用内置函数?

0 投票
2 回答
3826 浏览

matlab - Matlab上wavfile的卷积

我正在做一个使用卷积在 Matlab 上生成回声的任务,我不明白wavread实际做了什么。输出是我可以在卷积中使用的向量吗?

我试过了,得到一个错误“A和B必须是向量。”

另一个问题:如果我从波形文件中得到的信号是 ,我x(t)怎么能得到x(t-4)

0 投票
2 回答
4825 浏览

c# - 使用卷积在连续的声音流中找到参考音频样本

我之前关于在更大的音频样本中寻找参考音频样本的问题中,有人建议我应该使用卷积。
使用DSPUtil,我能够做到这一点。我用它玩了一点,尝试了不同的音频样本组合,看看结果如何。为了可视化数据,我只是将原始音频作为数字转储到 Excel 中,并使用这些数字创建了一个图表。一个峰值可见的,但我真的不知道这对我有什么帮助。我有这些问题:

  • 我不知道,如何从峰值位置推断原始音频样本中匹配的起始位置。
  • 我不知道,我应该如何将它应用到连续的音频流中,这样我就可以在参考音频样本出现后立即做出反应。
  • 我不明白,为什么图 2 和图 4(见下文)差异如此之大,尽管它们都代表了一个与自身卷积的音频样本......

非常感谢任何帮助。

以下图片是使用Excel分析的结果:

  1. 一个较长的音频样本,参考音频(哔声)接近尾声:
  2. 哔哔声与自身卷积:
  3. 没有哔声的较长音频样本与哔声卷积:
  4. 第 3 点的较长音频样本与自身卷积:

更新和解决方案:
感谢Han的广泛帮助,我能够实现我的目标。
在我推出自己的没有 FFT 的慢速实现之后,我发现alglib提供了一种快速实现。我的问题有一个基本假设:其中一个音频样本完全包含在另一个音频样本中。
因此,以下代码返回两个音频样本中较大的样本中的偏移量以及该偏移量处的归一化互相关值。1 表示完全相关,0 表示完全不相关,-1 表示完全负相关:

赏金:
不需要新的答案!我开始赏金将其奖励给 Han,以表彰他在这个问题上的持续努力!

0 投票
2 回答
10376 浏览

math - 如何确定我的卷积是否可分离?

是什么让卷积核可分离?为了进行两个 1D 卷积而不是 2D 卷积,我如何能够分辨出这些可分离的部分是什么>

谢谢