问题标签 [signal-processing]

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 投票
3 回答
10220 浏览

c# - 寻找 C# 音频分析库

我正在做一个软件项目,我们的团队需要录制火车喇叭的声音。我们已经购买了录音机;它保存为 .wav 文件。我们现在需要从文件中提取数据,如频率和幅度,以创建频谱分析和分贝水平图。有针对这种类型的 C# 库吗?

0 投票
4 回答
330 浏览

windows - 如何在 Windows 平台上实现吉他放大器或 FX 仿真?

我应该选择哪种技术?我应该写一个驱动程序还是什么?非常感谢

0 投票
4 回答
7079 浏览

java - 如何将 .WAV 音频数据样本转换为双精度类型?

我正在开发一个处理音频数据的应用程序。我正在使用 java(我添加了 MP3SPI、Jlayer 和 Tritonus)。我将音频数据从 .wav 文件提取到字节数组。我正在使用的音频数据样本是 16 位立体声。

根据我读过的一个样本的格式是:

AABBCCDD

其中 AABB 表示左通道和 CCDD 右通道(每个通道 2 个字节)。我需要将此示例转换为双值类型。我已经阅读了有关数据格式的信息。Java 使用大端,.wav 文件使用小端。我有点困惑。你能帮我完成转换过程吗?谢谢大家

0 投票
1 回答
3468 浏览

algorithm - 快速平均平方差函数

我想知道是否有人知道一种快速(即 O(N log(N)) )计算周期信号的平均平方差函数(ASDF)或平均幅度差函数(AMDF)的方法,或者它甚至是可能的.

我知道可以使用 FFT 来计算周期性互相关。例如,在 Matlab 代码中,

相当于快得多

是否有类似的“快速”算法

或者

?

0 投票
8 回答
18672 浏览

math - 在不同时间采样的指数移动平均线

我有一个连续值,我想计算一个指数移动平均线。通常我会为此使用标准公式:

  • S n = αY + (1-α)S n-1

其中 S n是新的平均值,α 是 alpha,Y 是样本,S n-1是之前的平均值。

不幸的是,由于各种问题,我没有一致的采样时间。我可能知道我最多可以采样一次,例如每毫秒一次,但由于我无法控制的因素,我可能无法一次采样几毫秒。然而,一个可能更常见的情况是,我稍微早一点或晚一点地进行简单采样:而不是在 0、1 和 2 毫秒进行采样。我在 0、0.9 和 2.1 ms 采样。我确实预计,无论延迟如何,我的采样频率都会远远高于奈奎斯特极限,因此我不必担心混叠。

我认为我可以根据自上次采样以来的时间长度,通过适当地改变 alpha 以或多或少合理的方式处理这个问题。

我认为这会起作用的部分原因是 EMA 在前一个数据点和当前数据点之间“线性插值”。如果我们考虑以间隔 t 计算以下样本列表的 EMA:[0,1,2,3,4]。如果我们使用区间 2t,我们应该得到相同的结果,其中输入变为 [0,2,4],对吧?如果 EMA 假设,在 t 2时,该值自 t 0以来一直为 2 ,那将与在 [0,2,2,4,4] 上计算的间隔 t 计算相同,但它没有这样做。或者这完全有意义吗?

有人可以告诉我如何适当地改变 alpha 吗?“请展示你的作品。” 即,向我展示证明您的方法确实在做正确的事情的数学。

0 投票
3 回答
6040 浏览

c++ - 如何使用 DSP 加速 OMAP 上的代码?

我正在为 OMAP3430 开发视频编解码器。我已经有用 C++ 编写的代码,我尝试修改/移植其中的某些部分以利用 DSP(我有一个额外的 DSP 的 SDK(OMAP ZOOM3430 SDK))。

我尝试移植一个小的 for 循环,它在非常少量的数据(~250 字节)上运行,但在不同的数据上运行大约 2M 次。但是 CPU 和 DSP 之间通信的过载远远超过增益(如果我有的话)。

我认为这项任务很像优化普通计算机中 GPU 的代码。我的问题是移植什么样的零件会有好处?GPU 程序员如何处理这些任务?

编辑:

  1. GPP 应用程序分配大小为 0x1000 字节的缓冲区。
  2. GPP 应用程序调用 DSPProcessor_ReserveMemory 为每个分配的缓冲区保留一个 DSP 虚拟地址空间,使用比分配的缓冲区大 4K 的大小来考虑自动页面对齐。总预留大小还必须沿 4K 页面边界对齐。
  3. GPP 应用程序调用 DSPProcessor_Map 将每个分配的缓冲区映射到上一步中保留的 DSP 虚拟地址空间。
  4. GPP 应用程序准备一个消息来通知 DSP 执行阶段虚拟地址空间的基地址,这些基地址已映射到 GPP 上分配的缓冲区。GPP 应用程序使用 DSPNode_PutMessage 将消息发送到 DSP。
  5. GPP 调用 memcpy 将要处理的数据复制到共享内存中。
  6. GPP 应用程序调用 DSPProcessor_FlushMemory 以确保数据缓存已被刷新。
  7. GPP 应用程序准备一个消息来通知 DSP 执行阶段它已完成对缓冲区的写入并且 DSP 现在可以访问缓冲区。该消息还包含写入缓冲区的数据量,以便 DSP 知道要复制多少数据。GPP 使用 DSPNode_PutMessage 将消息发送到 DSP,然后调用 DSPNode_GetMessage 等待从 DSP 收到消息。

在这些之后,DSP程序开始执行,当DSP完成处理时,DSP用消息通知GPP。只是为了尝试,我没有在 DSP 程序中进行任何处理。我只是将“处理完成”消息发送回 GPP。而这仍然会消耗大量时间。这可能是因为内部/外部内存使用,还是仅仅是因为通信过载?

0 投票
2 回答
4533 浏览

java - 数字滤波器,Java 中的数学,

我需要您的帮助,感谢您阅读我的问题!我目前正在编写一个使用 Direket Form 2 转置过滤器的 java 程序。我知道 Matlab 中的函数过滤器可以做到这一点,但我必须使用 Java。那么有谁知道你要实现这个 Direkt Form 2 Transposed ,这个数学函数:

y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)* y(n-1) - ... - a(na+1)*y(n-na)

使用任何编程语言?所需要的只是希望指向 wrigth 方向,所以我可以弄清楚!也许有一个 C Lib 实现了一些 matlab 函数,只是任何东西。

所以谢谢你的时间

你的 Elektro

跟进:

我尝试了几天来了解您的功能,但我做不到。

这是来自 Matlab 的函数:过滤器

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/filter.html&http://www.google.de/search?hl=de&q =filter+matlab&btnG=Google-Suche&meta=&aq=f&oq=

我所知道的是我在matlab中使用这样的函数:

newArray = filter(1,LPC_Faktor,OldArray)

我所要做的就是实现过滤器功能。

那你能再帮忙吗?

谢谢

电子

0 投票
2 回答
888 浏览

.net - .NET 的 AWGN 生成器

我正在寻找.NET 的加性高斯白噪声生成器。

  1. 我知道 .NET 和 MATLAB 之间存在某种程度的互操作性,它有一个 AWGN 生成器,但我不知道它是否是免费的EDIT我刚刚找到它

  2. 可能与 MATLAB 具有相似功能的 GNU Octave 等其他应用程序具有 .NET 绑定。我没有对这件事进行广泛的搜索。

  3. 我宁愿使用具有此功能的 .NET 库。从我认识的人那里:

  4. Math.NET Neodym似乎没有。

  5. AForge.NET有一个高斯数生成器,但我对 AWGN 缺乏了解,不知道这个生成器是否可以用于此目的。有任何想法吗?

0 投票
6 回答
35655 浏览

python - Python中基于FFT的二维卷积和相关性

scipy(或其他流行的库)中是否有基于 FFT 的 2D 互相关或卷积函数?

有这样的功能:

  • scipy.signal.correlate2d- “直接方法实现的convolveND大数据会很慢”
  • scipy.ndimage.correlate- “使用精确计算(即非 FFT)将数组与给定内核相关联。”
  • scipy.fftpack.convolve.convolve,我不太明白,但似乎是错误的

numarray 有一个带switch的correlate2d()函数fft=True,但我猜 numarray 被折叠成 numpy,我找不到这个函数是否包含在内。

0 投票
4 回答
8307 浏览

audio - 好的音频混响源?

音频混响(除了 Freeverb)是否有任何好的 C 或 C 类源代码。听起来很棒的低通滤波器的例子数不胜数,但要找到听起来不错的混响源却非常困难。

这是为什么?保留良好的实现而不发布是否是一个足够困难的问题?