问题标签 [downsampling]

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 投票
10 回答
25304 浏览

audio - 对数字音频进行下采样和应用低通滤波器

我有来自 CD 的 44Khz 音频流,表示为 16 位 PCM 样本数组。我想将其缩减为 11KHz 流。我怎么做?从我多年前上工程课的日子开始,我知道流将无法准确描述超过 5500Hz 的任何东西,所以我想我也想剪掉超过 5500Hz 的所有东西。有任何想法吗?谢谢。

更新:此页面上有一些代码使用简单的算法和看起来像 { 1, 4, 12, 12, 4, 1 } 的系数数组从 48KHz 转换为 8KHz。我认为这就是我所需要的,但我需要它的 4 倍而不是 6 倍。知道这些常数是如何计算的吗?此外,无论如何,我最终还是将 16 字节样本转换为浮点数,因此我可以使用浮点数而不是短裤进行下采样,如果这对质量有帮助的话。

0 投票
1 回答
4649 浏览

java - Java - 下采样 wav 音频文件

嗨,我需要将 wav 音频文件的采样率从 44.1kHz 降低到 8kHz。我必须使用字节数组手动完成所有工作......这是出于学术目的。

我目前正在使用 2 个类 Sink 和 Source 来弹出和推送字节数组。一切都很顺利,直到我到达需要使用线性插值对数据块进行下采样的部分。

由于我从 44100 到 8000 Hz 下采样,我如何插入一个包含 128 000 000 字节的字节数组?现在我根据 i%2 == 0、i%2 == 1 和 i%80 == 0 弹出 5、6 或 7 个字节,并将这 5、6 或 7 个字节的平均值推送到新文件中.

结果确实是一个比原始文件更小的音频文件,但它无法在 windows 媒体播放器上播放(说读取文件时出错)并且有很多噪音,尽管我可以听到噪音背后的正确音轨。

所以,总而言之,我需要关于线性插值部分的帮助。提前致谢。

0 投票
6 回答
10367 浏览

algorithm - 感知图像下采样

所以这是我的问题:

我有一个图像,该图像很大(高分辨率),它需要很小(分辨率低得多)。

所以我做了天真的事情(杀死所有其他像素),结果看起来很糟糕。

所以我尝试做一些更智能的事情(使用傅里叶变换的低通滤波和傅里叶空间中的重新采样),结果稍微好一点,但仍然很差。

所以我的问题是,是否有一种感知动机的图像下采样算法(或实现)?

编辑:虽然我知道许多重采样技术,但我的应用程序更关心保留感知特征,而不是产生平滑的图像。

edit2:可以肯定地假设我对数字信号处理、卷积、小波变换等有一定程度的熟悉

0 投票
4 回答
12760 浏览

matlab - 如何在 MATLAB 中对矩阵进行采样?

我在 MATLAB 中有一个矩阵,我想从中对所有其他条目进行采样:

而且我要:

如果没有 for 循环,我怎么能做到这一点?

0 投票
2 回答
1482 浏览

image-processing - 在对半色调漫画图像进行下采样时减少波纹

在 iPhone 或 iPad 上实时缩放期间对半色调漫画书图像进行下采样时,如何减少波纹效应?

我正在写一个漫画书阅读器。提供更高分辨率的图像并允许用户在阅读漫画书时放大会很好。但是,我的客户不喜欢莫尔效应,如果缩放时出现明显的莫尔条纹,我的客户将不允许使用此功能,当然有。

将图像修改为不易受云纹影响只有在修改不可察觉的情况下才有效。模糊是特别禁止的,任何去除心爱的半色调点的东西也是如此。

图像是黑白半色调和线条艺术。原件是 600 dpi,但我们随应用程序提供的最多只有一半,所以可能是 2500 像素或更小。

那么我的选择是什么?如果我编写一个自定义的下采样算法,在这些设备上实时运行是否足够快?我还有其他技巧可以做吗?仅仅避免具有最视觉波纹效果的尺寸比是否有效?

当你放大缩小时,肯定有云纹效果最差的峰值。有没有办法计算这些点是什么,然后放大到附近还不错的比例?

欢迎任何建议。我在图像和信号处理方面的经验很少,但我很享受学习的机会。我对小波、锐度和其他行话一无所知,所以请详细说明。

编辑:

至少目前我们正在关注动态缩放。我们将支持放大到全放大,但不支持任意缩放。我希望将来能重温这一点。

0 投票
6 回答
5593 浏览

python - 对列表中的条目数进行下采样(无插值)

我有一个包含许多条目的 Python 列表,我需要使用以下任一方法对其进行下采样:

  • 最大行数。例如,将 1234 个条目的列表限制为 1000 个。
  • 原始行的一部分。例如,使列表成为其原始长度的 1/3。

(我需要能够同时使用两种方式,但一次只能使用一种方式)。

我相信对于最大行数,我可以计算所需的比例并将其传递给比例缩小器:

...所以我真的只需要一个下采样功能。请问有什么提示吗?

编辑:列表包含对象,而不是数值,所以我不需要插值。丢东西就好了。

解决方案:

谢谢。

0 投票
1 回答
89 浏览

audio - symbian C++ 精简库

我希望在我的 Symbian 设备上录制 32 kHz 的音频,但它只支持 48 kHz。通过搜索互联网,我相信我正在尝试做的事情的术语称为缩小规模。是否有可以在诺基亚 Symbian 手机上编译和运行的 C++ 库来为我做这件事?或者算法是否足够简单,我可以自己实现?

0 投票
4 回答
457 浏览

audio - 切比雪夫 LPF 引入噪声

我根据该站点生成的系数创建了一个简单的 Chebyshev 低通滤波器:http ://www-users.cs.york.ac.uk/~fisher/mkfilter/ ,我用它来滤除 4kHz 以上的频率在下采样到 8kHz 之前,采样率为 16kHz 的音频信号。这是我的代码(它是 C#,但这个问题不是 C# 特定的,请随意使用不同语言的其他语言)。

为了测试它,我使用 Audacity 创建了一个从 20Hz 到 8kHz 的正弦波“啁啾”。测试信号如下所示:

测试信号

过滤后我得到:

过滤光谱

波形显示滤波器确实降低了 4kHz 以上频率的幅度,但我的信号中添加了大量噪声。无论我尝试实现哪种过滤器类型(例如 Butterworth、Raised Cosine 等),这似乎都是如此。

滤波波形

我做错了什么,还是这些滤波器只是在其他频率引入伪影?如果我使用平均每对样本的简单方法进行下采样,我根本不会得到这种噪声(但显然混叠更糟)。

0 投票
1 回答
1751 浏览

c - C中的图像/二维数组重采样

我正在寻找为 2D 数组实现重采样算法(它可以是灰度图像或一些 2D 浮点值数组)。

此特定操作涉及的步骤是:

  1. 给定一个二维数组,我首先使用一些下采样方法(最好使用前面的抗混叠过滤)将其下采样到 8x8 或 16x16 的大小。

  2. 对此进行一些数值运算。

  3. 然后通过双线性插值将其上采样回其原始大小。

作为原型,我在 Octave 中对其进行了如下编码。它给出了不错的结果。我希望获得有关 C 实现的一些参考。

我试图查看 imresize.m 中的代码,但一段时间后它变得复杂,无法从中提取 C 代码。

任何指向用于双线性插值以执行上采样的 C 代码的指针。

还希望获得一些关于使用双线性方法的抗混叠滤波器和下采样方法的指针。

0 投票
3 回答
2574 浏览

java - 音频文件下采样

我在处理音频文件时遇到问题。我正在实现一种处理音频文件的算法,该算法要求输入为 5 KHz 单声道音频文件。

我拥有的大多数音频文件都是 PCM 44.1 KHz 16 位立体声,所以我的问题是如何将 44.1 KHz 立体声文件转换为 5 KHz 单声道文件?

如果有人能提供一个教程来解释这个想法或任何 JAVA 库背后的 DSP 基础知识,我将不胜感激。