问题标签 [sampling]
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.
java - 合成采样声音
我正在尝试将整数数组转换为声音表示。目前,我将每个值作为单独的短音播放,但我想从信息中创建一个采样波并播放它,如下所示:
每个红点代表一个数据点。理想情况下,我希望得到一个简单的方法,例如playSound(int[] array);
. 我查看了 javax.sound.sampled 包,但我不知道从哪里开始。
matlab - 在MATLAB中对两个不同长度的数据集进行重采样
我有两个向量:长度为 927 的传感器 A 和长度为 1250 的传感器 B。我想让它们的长度相同。MATLAB 中的 resample() 函数在边缘非常嘈杂,我需要在整个过程中至少有相当好的精度。
我知道重采样可以通过插值来完成,但我如何以最有效的方式实现它。我需要尽可能均匀地将 927 拉伸到 1250。
我想知道我是否可以做这样的事情:
- 我需要较短向量中的 333 个新样本。因此,对于每 3 个值,我在其间插入两个连续值的平均值(中点)。=> 插入了 309 个样本
- 对于剩下的,我每 38 个样本再次插入 (927/(333-309))
这有意义吗?我仍然无法获得精确的插值。还有其他我可以使用的功能吗?(除了interp()
因为它需要一个完整的重采样率?)
audio - 每秒音频样本?
我想知道样本块与其时间当量之间的关系。到目前为止,鉴于我的粗略想法:
每秒播放的样本数 = 总文件大小 / 持续时间。
比如说,我有一个 1.02MB 的文件和 12 秒(平均)的持续时间,我每秒将播放大约 89,300 个样本。这是正确的吗?
还有其他方法可以计算这个吗?例如,我如何知道一个 byte[1024] 数组在时间上相当于多少?
android - Android SENSOR_DELAY_FASTEST 不够快
我正在使用传感器来平衡机器人,但SENSOR_DELAY_FASTEST
仅提供 10Hz 的采样率,这根本不够快。有没有更快的采样方法?
有没有办法轮询传感器而不是等待SensorEvent
?
java - 有什么方法可以在 Android 或 Java 中更改 WAV(或 MP3)的采样频率?
我正在尝试通过 Android 中的单声道(SCO)BT 耳机播放文件。这些文件必须有 8000 Hz 的频率,但我有的是 44100 Hz。这些文件是 MP3,但我已经创建了将它们转换为 WAV 的代码,因为我知道 Android 本身并不处理 MP3。
这必须在执行时在设备上完成,所以有人可以提供任何建议吗?
我应该提一下,我不在乎文件最终采用什么格式,只要它们可以使用 MediaPlayer 播放即可。
java - AMR - 如何上采样
如何对 AMR 音频数据进行上采样。amr 文件包含 6 个字节的标题 - "!#AMR".getBytes(),之后有 32 个字节的帧,每个帧有 1 个字节的标题和 31 个字节的音频。我应该如何对其进行上采样?我阅读了有关线性插值的信息,但我不确定如何在这里应用它。我应该在不同帧之间或帧中的字节之间或其他东西之间进行插值吗?任何帮助将不胜感激:)
python - 寻找合适的临界值
我尝试实现Hampel tanh 估计器来标准化高度不对称的数据。为此,我需要执行以下计算:
给定x
- 一个排序的数字列表和m
- 的中位数x
,我需要找到a
大约 70% 的值x
落入范围内(m-a; m+a)
。我们对 中的值分布一无所知x
。我使用 numpy 在 python 中编写,我最好的想法是编写某种随机迭代搜索(例如,如Solis 和 Wets所述),但我怀疑有更好的方法,或者以更好的算法或作为现成的功能。我搜索了 numpy 和 scipy 文档,但找不到任何有用的提示。
编辑
Seth 建议使用 scipy.stats.mstats.trimboth,但是在我对倾斜分布的测试中,这个建议不起作用:
输出为 0.79(~80%,而不是 70)
signal-processing - 线性量化和非线性量化有什么区别?
线性量化和非线性量化有什么区别?我说的是PCM样本。 http://www.blurtit.com/q927781.html有一篇关于它的文章,但我正在寻找更详细的答案。
matlab - MATLAB/General CS:从多个集合中进行抽样而不进行替换(+跟踪未抽样案例)
我目前正在实施一种优化算法,该算法需要我从几组中进行采样而不进行替换。虽然我在 MATLAB 中编码,但这本质上是一个 CS 问题。
情况如下:
我有有限数量的集合(A,B,C),每个集合都有有限但可能不同数量的元素(a1,a2...a8,b1,b2...b10,c1, c2...c25)。我还有每个集合的概率向量,其中列出了该集合中每个元素的概率(即对于集合A, P_A = [p_a1 p_a2... p_a8] 其中 sum(P_A) = 1)。我通常使用这些为每个集合创建一个概率生成函数,给定一个介于 0 到 1 之间的统一数字,可以从该集合中吐出一个元素(即函数 P_A(u),给定 u = 0.25,将选择a2 )。
我希望从集合A、B和C中进行抽样而不进行替换。每个“完整样本”是来自每个不同集合的元素序列,即 ( a1, b3, c2 )。请注意,完整样本的空间是A、B和C中元素的所有排列的集合。在上面的例子中,这个空间是 ( a1,a2...a8 ) x ( b1,b2...b10 ) x ( c1, c2...c25 ) 并且有 8*10*25 = 2000 个唯一的“完整样品”在我的空间。
不替换此设置进行采样的烦人部分是,如果我的第一个样本是 ( a1, b3, c2 ),那么这并不意味着我不能再次对元素a1进行采样- 这只是意味着我无法对完整序列进行采样 ( a1, b3, c2 ) 再次。另一个烦人的部分是我正在使用的算法要求我对我没有采样的元素的所有排列进行函数评估。
我现在可以使用的最好方法是跟踪抽样案例。这有点低效,因为我的采样器被迫拒绝之前采样过的任何案例(因为我在没有更换的情况下进行采样)。然后,我对未采样的情况进行函数评估,方法是使用嵌套的 for 循环遍历每个排列(ax, by, cz ),并且仅在( ax, by, cz)的组合不包含在采样中时才进行函数评估案例。同样,这有点低效,因为我必须“检查”每个排列(ax, by, cz)是否已经被采样。
我将不胜感激有关此问题的任何建议。特别是,我正在寻找一种无需替换即可采样并跟踪未明确列出完整样本空间的未抽样案例的方法(我通常使用 10 个集合,每个集合包含 10 个元素,因此列出完整样本空间需要 10 ^10 x 10 矩阵)。我意识到这可能是不可能的,尽管找到有效的方法可以让我证明算法的真正局限性。
java - 用于上采样的 PCM 算法
我有 8k16bit pcm 音频,我想将它上采样到 16k16bit。我必须手动执行此操作。
有人能告诉我线性插值的算法吗?我应该在每两个字节之间进行插值吗?
另外,当我进行上采样时,我必须对 wav 标头进行更改 - 我应该更改什么?