- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要计算以下卷积:
K 是一个非常简单的过滤器,它只是一个具有有限(!)大小的矩形框。我的数据是狄拉克三角洲的时间 t_i 的列表。
最简单的解决方案是将数据分箱并使用 numpy 或 scipys 卷积函数之一。然而,有没有更快的方法呢?我可以避免数据分箱并利用以下事实:a)我的过滤器大小有限(只是一个盒子)和b)我有一个时间点列表。因此,我只需检查我的时间点当前是否是滑动框的一部分。
因此,我正在寻找一种复杂度为 O(d*n) 且 d 为卷积分辨率大小的解决方案。因此,我希望比 O(b**2) 快得多,其中 b 是 bin 的数量。此外,由于 n << b,对于基于 fft 的卷积,仍然认为 O(d*n) 远小于 O(b * log b)。谢谢!
最佳答案
使用 cumulative sum of the signal 可以加速大型盒式过滤器的卷积速度:
信号示例:
import numpy as np
a = np.random.rand(10)
print a
输出:
[ 0.22501645 0.46078123 0.6788864 0.88293584 0.10379173 0.50422604
0.4670648 0.22018486 0.96649785 0.44451671]
使用 default convolution function 进行卷积:
print np.convolve(a, np.ones(3) / 3, mode='valid')
输出:
[ 0.45489469 0.67420116 0.55520466 0.49698454 0.35836086 0.39715857
0.55124917 0.54373314]
使用累积和进行卷积:
s = np.cumsum(np.concatenate(([0], a)))
print (s[3:] - s[:-3]) / 3
输出:
[ 0.45489469 0.67420116 0.55520466 0.49698454 0.35836086 0.39715857
0.55124917 0.54373314]
<小时/>
cumsum 计算以及列表减法都是 O(n),其中 n 是列表元素的数量,因此总计算时间是 O(n) 并且有趣的是独立于过滤器尺寸。
关于python - python中具有有限滤波器和狄拉克增量之和的快速一维卷积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121770/
我有一个关于复杂性的简单问题。我在 Java 中有这段代码: pairs是 HashMap包含 Integer作为键,它的频率为 Collection作为一个值。所以: pairs = new Has
对于我的应用程序,我需要在 Coq 中使用和推理有限映射。谷歌搜索我发现 FMapAVL 似乎非常适合我的需求。问题是文档很少,我还没有弄清楚我应该如何使用它。 作为一个简单的例子,考虑以下使用对列表
我有一个主表tblAssetMaster A和一个移动表tblMovement M。 我想提取所有 Assets 及其当前位置,因此需要获取每个 Assets 的最新移动条目。 字段 A: Asset
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
我正在尝试批量删除 Backbone 模型的集合,如下所示...... collection.each(function(model, i){ model.destroy(); }); 我发现当每
我想要一个软件环境,在其中我可以在具有特定资源的硬件上测试我的软件的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24 Mb RAM 的 800
在 Eclipse 中,我得到了 BigInteger.valueOf(2).pow(31093) 的值,但没有得到 BigInteger.valueOf(2).pow(31094) 的值(它是空的)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想将 2 个表从本地 sql server 2000 上传到托管的 mysql。第一个表有 17 列和 680 行,其他 10 列和 8071 行。 我首先使用 xampp mysql 尝试离线,它
我在 S3 中自动生成并保存了静态 html 文件。有时文件大小达到 2mb。是否可以使用javascript来获取html文件的一部分,显示它,当用户到达页面底部时,获取下一部分等等? 最佳答案 X
我是一名优秀的程序员,十分优秀!