问题标签 [acoustics]

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 回答
75 浏览

python - 如何集成一个复杂的(不是在真实与复杂的定义中)函数

我有这个关于球体周围压力分布的怪物表达式,表达式是 方程 其中 Re[A] 是预定义系数的实部,P 是勒让德多项式,j 和 n 是球面贝塞尔和诺依曼函数。我希望将它整合到 theta 上,所以我为上面的等式定义了一个函数,如下所示

但是,当我尝试像这样使用 scipy.integrate.quad 进行集成时,

它给出了“错误:四边形:第一个参数不可调用”。如果我不这样给出函数的参数,

它给出了“TypeError:P_rms_calc() 正好需要 8 个参数(给定 1 个)”

在使用集成工具 quad 时我是否遗漏了一些简单的东西?如果没有,有没有更好的方法来尝试整合这个表达式?还可以随意推荐一种更有效的方法来定义 rms 压力表达式。作为参考,我只是从 m=0 到 6 左右求和,因此使用 for 循环的计算时间并不可怕。感谢您的帮助!

0 投票
2 回答
154 浏览

audio - 模拟移动音源的方法

我目前正在研究有关音频源的 DOA(到达方向)回归的问题,并且需要以移动声源的音频信号的形式生成训练数据。特别是,我有固定的声音文件,我需要模拟一个源和麦克风,它们之间的距离会发生变化以反映运动。

是否有任何在线软件可以解决问题?我研究了 pyroomacoustics 和 VA 以及其他潜在的库,但由于模拟多普勒效应的困难,它们似乎都没有处理移动音频源。

如果我要编写自己的模拟代码来处理这个问题,那会有多困难?我的用例是一些 2D 环境中的音频源和麦克风,它们都以自己的速度移动,我想从麦克风收集录音作为音频文件。

0 投票
2 回答
262 浏览

modelica - 如何找到振荡器的谐振频率?

我目前正在尝试使用 OpenModelica 模拟声学谐振器,我想知道如何稳健/准确地计算它们的谐振频率。

作为一个简化的例子(没有媒体等),我实现了一个双亥姆霍兹谐振器,本质上是两个体积(顺从性)通过管道(惯性)连接。真实系统由更多连接在一起的组件组成。压力和体积流量(均为复数值)的振荡遵循正弦表达式,具有共振角频率w。这为 4 个压力和 4 个体积流量(在端点和柔顺-惯性连接点)产生了 8 个方程。

这是我每晚在 OpenModelica 中解决的 Modelica 代码:

附加定义

在纸上计算,系统的共振角频率为w=\sqrt{\frac{2}{LC}}(在这种情况下约为 1871 1/s),以获得非零解。

为了避免求解器得到零所有的无趣解,我必须在某一点添加一些刺激,因此初始方程p_a.re = 1e+2

现在,为了模拟这个,因为w是一个附加变量,我需要引入一个附加方程,der(w) = 0;在这种情况下选择谐振频率是恒定的。不幸的是,这使得无法进入更复杂/现实的情况,其中谐振频率随时间变化,例如随温度或其他变化值。

Q1:有没有更好的方法来提供共振频率的附加方程/计算系统的这个特征值?

此外,模拟的成功取决于初始刺激的值(在某些范围内,这会失败,或者我在每个时间步都得到奇异方程)。此外,实际上问题正在初始化阶段得到解决。在最好的情况下,我得到输出

Q2:有没有办法避免奇点和/或干净地处理这个初始化(例如homotopy)? 虽然这在简化示例中可以充分发挥作用(并导致 的值正确w),但我担心对于更复杂/现实的模型,我可能会遇到更多有问题的数值困难。我已经研究过了homotopy,但我真的不知道如何在这里应用它。我想以w某种方式应用它,但弗里茨森的书甚至似乎明确警告不要在导数表达式上使用它,除此之外,w.start似乎只有值出现了。

0 投票
1 回答
135 浏览

matlab - Having trouble conditionally moving files based on their names

I am trying to write a script that will auto sort files based on the 7th and 8th digit in their name. I get the following error: "Argument must be a string scalar or character vector". Error is coming from line 16:

Argument must be a string scalar or character vector.

Error in sort_files (line 16) movefile (filelist(i), DirOut)

Here's the code:

Also, I am trying to make the file folder conditional so that if the 10-11 digits are 02 the file goes to DirOut/02 etc.

0 投票
0 回答
285 浏览

r - Seewave:读取数据框中的多个 .wav 文件

我正在尝试根据分配给数据框中每个 .wav 文件的起点和终点来剪切 .wav 文件。我尝试使用 for 循环读取每个 .wav 文件,然后运行剪切该 .wav 文件的函数。

不幸的是,我似乎无法让代码工作。我收到以下错误:

任何提示将不胜感激!

源代码来自这里:https ://cran.r-project.org/web/packages/warbleR/vignettes/warbleR_workflow_03.html

这是我的代码:

0 投票
1 回答
34 浏览

serial-communication - 如何使用带有声学调制解调器的串行端口发送图像?

如何将图像转换为数据字节以通过串行端口发送?需要将图像转换为可以通过通道声学发送的数据位。我不确定如何串行发送数据?有没有办法做到这一点 ?

0 投票
1 回答
57 浏览

python - 如何在声学数据集上应用数据增强?

我有一个小的人类声音声学数据集,我想对其进行扩充,然后将其传递给二进制分类器。

我熟悉图像的数据增强,但声学数据集是如何完成的?

用 Pytorch & TorchAudio找到了 2 个关于自动编码器和SpecAugment 的相关答案, 但我想听听您对特定于音频的“最佳方法”的看法。

0 投票
1 回答
53 浏览

r - 如何创建循环函数以使用 R 将“soundecology”中的声学索引应用于 .wav 文件的特定部分

我有大量 .wav 文件,我需要使用 R 中的“soundecology”包中的声学指数进行分析。但是,录音没有统一的开始时间,我需要分析文件中的特定时间段。我想创建一个函数和循环来自动化这个过程。我为每个录音文件夹(每个文件夹位于不同的位置)创建了一个电子表格,其中列出了录音以及我需要分析的每个录音中的时间。基本上,一行包含:声音文件名、样本应该开始的时间(例如 09:00:00、从文件开始到该时间发生的秒数以及从开始开始的秒数样本结束的文件时间。该数据如下所示: Spread sheet of data

我正在使用包“tuneR”和“warbleR”来选择我想要分析的声音文件的特定部分。这是我想在所有声音文件中循环的代码和输出:

wavrow1 <-read_wave(mvb$sound.files[1], from = mvb$start[1], to = mvb$end[1]) wavrow1.aci <- acoustic_complexity(wavrow1, j=10)

哪个产生

但是,当我将它放入一个函数中以便将其放入一个循环中时,我会得到不同的输出。

这给出了输出:

这是不同的。所以我需要修复这个函数并将其放入一个循环中,以便我可以将它应用于所有文件并将结果保存到数据框或最终保存到另一个电子表格中。

我在想像下面这样的循环可能会起作用,但我也遇到了错误:

返回此错误:

感谢您对此的任何帮助和建议。如果还有其他有用的信息,请告诉我。

0 投票
0 回答
39 浏览

r - 如何将具有大量数据的类从因子更改为最新?

我正在尝试绘制用于鱼类检测的数据,但我们有数百万个数据点。

我做到了:plot (Data.df$dates, Data.df$ID == "1")试图让我知道鱼的存在,但 x 轴不是日期,而是:

在此处输入图像描述

我想更改 x 值上的数字以显示为日期。

如果我输入 dput(head(data.df)) 它会将我的日期显示为“2020-07-03 06:51:25”格式,但课程是一个因素。

我们有 90 条鱼,所以我在这里尝试做的是显示每条鱼被检测为真的日期,一旦它们被捕获,我想它们会显示为假,所以这条线会永久移动到顶部,我可以算出钓到鱼的日期。

0 投票
1 回答
252 浏览

matlab - Writematrix 命令在 MATLAB 中不起作用

我已下载此代码用于从音频文件中提取特征并将这些特征存储在 Excel 中的矩阵中,但 writematrix 命令引发错误,即参数名称无效:Sheet1。