【发布时间】:2016-01-24 01:48:06
【问题描述】:
在使用傅里叶变换和一些数据清理对记录的拨号音进行频谱分析后,我最终得到了一个看起来像这样的二进制矩阵(红色为 0,黄色为 1)。每个像素代表矩阵中的一个点。
X 轴是时间,Y 轴是声音频率(与问题无关)。我要做的是确定在任何给定时间点当前正在播放的两个频率。我已经尝试尽可能多地清理数据,这就是为什么矩阵是二进制的,并且大多数 簇 是相互分离的。
我需要做的是找出频率变化的每个点的簇,并垂直计算它们的复合值,如图所示
感觉这种问题应该有一个众所周知的解决方案,尤其是对于像这样的二进制矩阵,但我就是想不出一个可以证明有效的简单算法。我真的不想只关注解决方案。
简单地说,我需要以某种方式将所有这些黄色的方形簇组合成一个点,或者类似的东西。使用 R 的解决方案将是首选,但我也会接受通用算法/方法。
【问题讨论】:
-
你应该添加你的代码/尝试以及为什么它们不工作
-
@rawr 没有代码,我在问如何解决这个问题,因为我不知道如何处理它。这是算法问题,不是编码问题。
-
那么你在错误的堆栈交换站点上询问