java - 分布式 "dumping"/"compressing"数据样本

标签 java math audio signal-processing

我不确定我的问题的正确标题是什么
那么问题来了
假设我有 N 个样本,例如:
1
2
3
4
.
.
.
N

现在我想通过从 N 个样本中转储 (N-M) 数据来将样本的大小从 N“减少”到 M。
我希望倾销尽可能“分散”,
因此,如果我有 100 个样本并想将其压缩为 50 个样本,我会丢弃所有其他样本。另一个例子,假设数据是 100 个样本,我想将其压缩为 25 个样本。我会在每组 100/25 个样本中丢弃 1 个样本,这意味着我会遍历每个样本并进行计数,每次计数达到 4 时,我都会丢弃样本并重新开始计数。
问题是,如果上面的 4 是 2.333,我该怎么做。我如何对待小数点以分布式丢弃样本?

非常感谢..

最佳答案

您正在寻找的条款是 resampling , downsamplingdecimation .请注意,在一般情况下,您不能在不冒风险的情况下丢掉一部分数据aliasing .您需要low pass filter在抽取之前,首先您的数据,以便在您的新 Nyquist rate 之上没有信息这将是别名。

当您想按非整数值进行下采样时,例如2.333 根据你上面的例子,你通常会通过一个整数因子 M 上采样,然后用一个不同的整数因子 N 下采样来做到这一点,其中分数 M/N为您提供所需的重采样因子。在您的示例中 M = 3N = 7 ,因此您将上采样 3 倍,然后下采样 7 倍。

关于java - 分布式 "dumping"/"compressing"数据样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905890/

相关文章:

java - 在没有 RCP 应用程序构建功能的情况下使用 Maven 的依赖管理?

java - ProgressDialog 出现得太晚

php - 用数学替换 elseif

math - 斐波那契数列质数

android - 无法识别使用 cordova-plugin-media 生成的 Ionic 2 音频文件

java - 无法更改数组内变量的值

java - 无法解析符号 'GoogleCloudMessaging' GCM

java - 如何定位列表中的每个第 n 个元素,但仅在 3 个之后

python - 等长样本的音频分类/'vocoder' thingy

android 模拟器不在 iMac 中的蓝牙耳机上播放声音