我想用电脑的麦克风来计算房间的噪音水平。 我将噪音logging为audio文件,但是如何计算噪音dB等级? 我不知道如何开始!
看起来R实际上是devise来处理可以完全放入内存的数据集。 什么R包被推荐用于非常大的数据集上的信号处理和机器学习,这些数据集不能被拉入内存? 如果R完全是这样做的错误的方法,我可以接受其他强大的免费build议(例如,如果有一些很好的方法来处理非常大的数据集,scipy)
我试图用JavaScript实现雅马哈YM3812音效芯片(又名OPL2 http://en.wikipedia.org/wiki/YM3812 )的一些function,使用Audiolet(一个综合库, http: //oampo.github.io/ Audiolet / api.html ) Audiolet允许你创build一个合成器作为节点(振荡器,DSP,包络发生器等)的graphics。 OPL2有9个通道,每个通道有两个操作员(振荡器)。 通常,每个通道中的一个振荡器调制另一个振荡器的频率。 为了模拟这个,我为每个通道build立了一系列节点: 合成节点链(九个通道之一) 节点链创build和连接代码: var FmChannel = function(audiolet) { this.car = new ModifiedSine(audiolet); this.carMult = 1; this.setCarrierWaveform(this.SIN); this.mod = new ModifiedSine(audiolet); this.modMult = 1; this.setModulatorWaveform(this.SIN); this.modMulAdd = new MulAdd(audiolet); this.carGain = new Gain(audiolet); this.carEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1, function() { […]
什么是最好(最干净,最有效)的方式来写入饱和加法在C? 如果总和溢出,函数或macros应该添加两个无符号的input(需要16位和32位版本),并返回全位1(0xFFFF或0xFFFFFFFF)。 目标是使用gcc(4.1.2)和Visual Studio的x86和ARM(仅用于模拟,所以后备实现在那里)。
什么是一个好的数字信号处理algorithm,吉他和弦是好的? 由于快速傅里叶变换我认为只有在吉他弹奏的单个音符上是准确的,而不是同时弹奏的音符(即和弦)。 谢谢!
我是MATLAB新手,我正在尝试使用MATLAB构build语音变形系统。 所以我想知道如何使用MATLAB将信号归一化为零均值和单位方差?
我有一个连续的值,我想计算一个指数移动平均线 。 通常我只是使用这个标准公式: S n =αY+(1-α)S n-1 其中S n是新的平均值,α是α,Y是样本,S n-1是以前的平均值。 不幸的是,由于各种问题,我没有一个一致的采样时间。 我可能知道最多可以抽样一次,也就是每毫秒一次,但是由于我不能控制的因素,我可能无法一次抽样数毫秒。 然而,可能更常见的情况是,我简单地抽样了一些早或晚,而不是在0,1和2毫秒采样。 我在0,0.9和2.1毫秒采样。 我预料到,不pipe延迟如何,我的采样频率将远远高于奈奎斯特极限,因此我不必担心锯齿。 我认为,我可以根据自上次采样以来的时间长度,通过适当地改变阿尔法来或多或less地合理地处理这个问题。 我的推理的部分原因是,EMA在前一个数据点和当前数据点之间“线性插入”。 如果我们考虑以间隔t计算以下样本列表的EMA:[0,1,2,3,4]。 如果我们使用间隔2t,input变成[0,2,4],那么我们应该得到相同的结果,对吗? 如果EMA假设在t 2时刻t 2时刻的值为2,那么和在[0,2,2,4,4]上计算的时间间隔t的计算方法是一样的。 或者这是否有意义呢? 有人能告诉我如何适当地改变阿尔法? “请展示你的工作。” 也就是说,告诉我mathcertificate你的方法确实是做正确的事情。
与拍手检测器(“拍手! 拍手拍手拍手! 拍手拍手拍手,拍手,拍手! 拍手拍手 ”)不同,我需要检测何时关门。 这是在一辆车,比一个房间或家门更容易: 听着: http : //ubasics.com/so/van_driver_door_closing.wav 看: 这是在16位4khz采样,我想避免大量的样品处理或存储。 当你用大胆或其他波形工具来观察它时,它是非常独特的,并且由于车内声压的增加而几乎总是被剪断 – 即使窗户和其他门打开: 听: http : //ubasics.com/so/van_driverdoorclosing_slidingdoorsopen_windowsopen_engineon.wav 看: 我期望有一个相对简单的algorithm,可以读取4kHz,8位的数据,并跟踪“稳定状态”。 当algorithm检测到声音水平的显着增加时,它将标记该点。 你怎么看? 你如何检测这个事件? 有声压级计算的代码示例可能有帮助吗? 我可以不经常采样(1kHz甚至更慢)吗? 更新:玩八度(开源数值分析 – 类似于Matlab),看看是否均方根会给我我需要什么(这导致了一些非常类似于SPL) Update2:在简单情况下,计算RMS可以轻松地closures门: 现在我只需要看一下困难的情况(无线电,高温热气等)。 CFAR看起来非常有趣 – 我知道我将不得不使用自适应algorithm,CFAR当然符合这个法案。 -亚当
我想编写一个简单的C#应用程序来监视线路inputaudio,并给我当前(好,滚动平均)每分钟的节拍。 我见过这个gamedev文章 ,这是绝对没有帮助。 我经历了,试图实现他在做什么,但它只是不工作。 我知道必须有大量的解决scheme,因为很多DJ软件都是这样做的,但是我找不到任何开源库或者自己做的说明。
更新: 令我惊讶的是,在差不多两年后的同一个话题中,我find了一个基于这个问题的“Scipy食谱”! 所以,对于任何感兴趣的人,请直接去: http://wiki.scipy.org/Cookbook/ButterworthBandpass 我很难达到最初实现用于一维numpyarrays(时间序列)的Butterworth带通滤波器的简单任务。 我必须包括的参数是sample_rate,截止频率IN HERTZ和可能的顺序(其他参数,如衰减,固有频率等对我来说比较晦涩,所以任何“默认”值都可以)。 我现在拥有的是这个,它似乎是一个高通滤波器,但我无法确定,如果我正确地做到这一点: def butter_highpass(interval, sampling_rate, cutoff, order=5): nyq = sampling_rate * 0.5 stopfreq = float(cutoff) cornerfreq = 0.4 * stopfreq # (?) ws = cornerfreq/nyq wp = stopfreq/nyq # for bandpass: # wp = [0.2, 0.5], ws = [0.1, 0.6] N, wn = scipy.signal.buttord(wp, ws, 3, 16) # (?) […]