问题标签 [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.

0 投票
1 回答
3029 浏览

android - Android:如何控制 onSensorChange 采样率

我对 Android 中的传感器读取率有点困惑。下面的代码报告了约 53 毫秒的延迟(ZTE Blade,速率传感器事件设置为 SENSOR_DELAY_FASTEST)。

日志:

如果我们要平均说 100 个样本,然后保存数据,则每 100 个样本之间的时间将有很大差异。这大概是因为传感器值在常规时间段内没有变化。

但我错过了什么吗?有没有办法获得(更多)定期测量(例如 100 毫秒)?或者也许我应该在特定时间段内进行平均而不是样本数?

50ms 似乎也有点长。这可能是设备的硬件限制吗?这个数字会在不同的平台上有所不同吗?

任何建议表示赞赏。

0 投票
4 回答
7730 浏览

r - 在 R 中绘制分层样本

设计我的分层样本

到目前为止一切都很好,但是我现在如何以与简单采样相同的方式绘制样本?

0 投票
3 回答
416 浏览

r - 从向量中采样循环

我正在开发一个抽样函数来进行随机化以使日子更轻松:

对于这个例子,我想随机化pln1:20、21:32、33:48、49:64、65:80。对于不同的场景,这可能会有所不同。

我想创建一个通用函数,其中长度bcap可以是任意数字,但是pln应该运行1: max(bcap)

0 投票
1 回答
783 浏览

android - 为什么安卓手机静止时传感器采样率会变得太低?

我编写了一个简单的应用程序来读取加速度计数据,当我将手机放在桌子上并保持安静时,我发现采样率太低(甚至一个样本 5 秒)。我将采样率设置为 FASTEST,它的采样率总是很高。

我想知道Android为什么以及如何做到这一点?我猜 jni 或硬件总是读取数据,但是当它发现两个样本之间没有变化时它会丢弃数据。

0 投票
1 回答
171 浏览

directshow - 是否有任何现代 Windows PC 中没有至少一个 DirectShow 捕获设备?

我正在考虑做一些看起来很奇怪的事情来获得一个可靠的时钟。我必须将缓冲区推送到连接 WiFi 的音频输出设备,该设备本身不进行缓冲或音频时间戳仲裁。如果我不以与硬件采样器设备的时序合理匹配的定期间隔发送缓冲区,则播放会损坏并开始卡顿。

在考虑我在下面描述的“黑客”之前,我首先查看了通常的嫌疑人进行高分辨率计时。QueryPerformanceCounter 看起来不错,直到我读到硬件抽象层中的错误硬件实现以及可变 CPU 速度步进破坏 QPC 计算的复杂性。此外,Windows 多媒体计时器只能精确到 1 毫秒,这使得它在 44.1 kHz 等高采样率下的使用令人怀疑。这就是为什么我正在考虑以下内容:

CPU时钟频率和QueryPerformanceCounter错了吗?

据我所知,目前生产的每台 Windows PC 都至少有麦克风的硬件支持。我正在考虑做的是在现有捕获设备的时钟上“捎带​​”。我有一个 DirectShow 推送源过滤器,它是要发送到 WiFi 音频输出设备的音频的真正来源。我将强制捕获过滤器的采样率与推送源过滤器匹配。然后,我将使用信号量来锁定推送源过滤器的 FillBuffer() 调用,直到 Capture Filter 的 FillBuffer() 调用产生一个缓冲区,从而利用Capture Filter 的缓冲区计时。

我可以指望用户的 PC 上至少有一个 Capture Device 吗?此外,对整体战略的任何评论表示赞赏。

0 投票
2 回答
1517 浏览

signal-processing - 未知采样频率

如果有人给我一个波形并且我不知道它的最高频率,那么我将如何确定给定信号的采样率?

0 投票
1 回答
1044 浏览

ios - 如何访问音频文件中的样本

我正在制作一个 iPhone 应用程序,它可以让用户设计一个音频过滤器并在一些录制的声音上对其进行测试。我尝试执行以下操作:

  1. 我创建了两个名为“recordeAudio.aiff”和“filteredAudio.aiff”的音频文件
  2. 我用麦克风录制声音并将其保存在“recordedAudio.aiff”中
  3. 我将音频数据从“recordedAudio.aiff”复制到缓冲区
  4. 稍后,我将在此时对缓冲区中的数据执行一些音频过滤,但出于测试目的,我只想将每个样本的值减少一半(这只会将音量减少一半)所以我我确定我能够操纵单个样本
  5. 我将结果写入第二个缓冲区
  6. 我将该缓冲区的数据写入第二个文件“filteredAudio.aiff”
  7. 我播放第二个文件

问题如下:只要我将数据从一个缓冲区复制到另一个缓冲区,然后将其写入第二个音频文件,一切正常。但是一旦我尝试对样本执行任何类型的操作(比如将它们除以 2),结果就是随机噪声。这让我怀疑我没有正确解释音频数据的值,但我已经尝试了五天,但我就是不明白。如果您知道如何访问和操作单个音频样本,请帮助我,我将非常感激!谢谢!

这是稍后将执行过滤的代码(现在它应该将所有音频样本除以 2);

为了创建音频文件,我使用以下代码:

对于录制,我使用具有以下设置的 AVAudioRecorder:

0 投票
7 回答
534 浏览

algorithm - 与负载平衡/重新分配相关的算法名称

给定一个数组 [x1, x2, x3, ..., xk ],其中 xi 是盒子 i 中的项目数,我如何重新分配这些项目,以便没有一个盒子包含超过 N 个项目。N 接近 sum(xi)/k - 也就是说,N 接近于每个具有相同数量项目的框。中间箱子不应该用来搬运物品——如果 x1 有盈余,而 x2 和 x3 有赤字,x1 应该将一些物品发送给 x2 和 x3,但不要将其所有物品发送给 x2,然后让 x2 解决盈余.

实际问题是:每个计算节点都有一组样本,在重采样步骤之后,一些计算机节点可能有盈余,而另一些则有赤字,所以我想在最小化通信的同时重新分配样本。

我想这类问题有一个名字。

0 投票
1 回答
1072 浏览

c - 音频中的采样率是什么意思

看到我有一个采样率为 44100 的音轨,那是什么意思?

一帧音频的持续时间是多少?我怎样才能在c中得到它?

帧和样本都是音频的不同术语吗?

0 投票
1 回答
2599 浏览

objective-c - 带放回加权随机抽样的高效算法

我有恒定数量的样本,每个样本都有一个概率。现在我想从这个数据源中重新采样以获得相同数量的新样本,每个样本具有相同的概率。

例如:

就我而言,概率不会直接给出,而是作为权重给出。然而,概率可以直接从权重中导出,因为所有权重的总和是已知的(但不是恒定的)。

在一个 MATLAB 实现中,我使用了Statistics Toolbox 的randsample函数来实现这个重采样过程:

y = randsample(n,k,true,w)y = randsample(population,k,true,w)返回一个带替换的加权样本,使用一个正权重向量w,其长度为ni为 的条目选择整数的概率yw(i)/sum(w)。通常,w是一个概率向量。randsample不支持无替换加权抽样。

我现在想将这部分算法移植到 iPad 2 上,用于更新重新采样512 个样本的实时 (~25fps) 数据。因此,时间效率至关重要,因为还将执行其他计算。内存不必最小化。

我研究了 Alias 方法,但似乎结构构建过程非常繁琐,可能不是最有效的解决方案。

是否有任何其他有效的方法可以满足实时要求,或者 Alias 方法是可行的方法?