与拍手探测器不同("Clap on!clap clap Clap off!clap clap Clap on,clap off,Clapper! clap clap ")我需要检测门何时关闭.这是一辆车,比房间或家门更容易:
听:http://ubasics.com/so/van_driver_door_closing.wav
它的采样速率为16位4khz,我希望避免大量处理或存储样本.
当您在大胆或其他波形工具中查看它时,它非常独特,并且由于车辆中声压的增加而几乎总是剪辑 - 即使窗户和其他门打开时:
听:http://ubasics.com/so/van_driverdoorclosing_slidingdoorsopen_windowsopen_engineon.wav
我希望有一个相对简单的算法可以读取4kHz,8位的读数,并跟踪"稳态".当算法检测到声级显着增加时,它将标记该点.
更新:使用Octave(开源数值分析 - 类似于Matlab)并查看均方根是否会给我我需要的东西(这导致与SPL非常相似的东西)
Update2:在简单的情况下,计算RMS可以轻松地关闭门:
现在我只需要看看困难的情况(收音机,高温/高空等).CFAR看起来非常有趣 - 我知道我将不得不使用自适应算法,CFAR肯定符合要求.
-亚当
似乎R真的设计用于处理它可以完全进入内存的数据集.对于无法拉入内存的超大型数据集,建议使用哪些R软件包进行信号处理和机器学习?
如果R只是错误的方法,我会接受其他强大的免费建议(例如scipy,如果有一些很好的方法来处理非常大的数据集)
在C中编写饱和加法的最佳(最干净,最有效)方法是什么?
函数或宏应添加两个无符号输入(需要16位和32位版本),如果总和溢出,则返回所有位 - 一(0xFFFF或0xFFFFFFFF).
目标是x86和ARM使用gcc(4.1.2)和Visual Studio(仅用于模拟,因此可以使用后备实现).
c algorithm performance signal-processing saturation-arithmetic
什么是好的数字信号处理算法,这对吉他和弦有好处?由于快速傅里叶变换,我认为只有在吉他上演奏的单个音符才准确,而不是同时演奏的音符(即和弦).
谢谢!
我正在尝试使用Audiolet(一个综合库,http: //oampo.github.io/ )在JavaScript中实现Yamaha YM3812声音芯片(又名OPL2 http://en.wikipedia.org/wiki/YM3812)的一些功能.Audiolet/api.html)
Audiolet允许您将合成器构建为节点图(振荡器,DSP,包络发生器等).
OPL2有9个通道,每个通道有两个运算符(振荡器).通常,每个通道中的一个振荡器调制另一个振荡器的频率.为了模拟这个,我为每个频道建立了一系列节点:
Synth节点链(九个通道之一)

节点链创建和连接代码:
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() {
this.carEnv.reset();
}.bind(this)
);
this.carAtten = new Multiply(audiolet);
this.modGain = new Gain(audiolet);
this.modEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1,
function() {
this.modEnv.reset();
}.bind(this)
);
this.modAtten = …Run Code Online (Sandbox Code Playgroud) javascript signal-processing sound-synthesis audiolet web-audio-api
我是R的初学者,我试图在没有找到任何内容的情况下找到有关以下内容的信息.
图中的绿色图由红色和黄色图组成.但是,假设我只有绿色图形的数据点.如何使用低通/高通滤波器提取低/高频率(即大约红/黄图)?

更新:图表是使用生成的
number_of_cycles = 2
max_y = 40
x = 1:500
a = number_of_cycles * 2*pi/length(x)
y = max_y * sin(x*a)
noise1 = max_y * 1/10 * sin(x*a*10)
plot(x, y, type="l", col="red", ylim=range(-1.5*max_y,1.5*max_y,5))
points(x, y + noise1, col="green", pch=20)
points(x, noise1, col="yellow", pch=20)
Run Code Online (Sandbox Code Playgroud)
更新2:使用signal包中的Butterworth过滤器建议我得到以下内容:

library(signal)
bf <- butter(2, 1/50, type="low")
b <- filter(bf, y+noise1)
points(x, b, col="black", pch=20)
bf <- butter(2, 1/25, type="high")
b <- filter(bf, y+noise1)
points(x, b, col="black", pch=20) …Run Code Online (Sandbox Code Playgroud) 我想计算时间序列的功率谱密度; 做一些带通,低通和高通滤波; 也许其他一些基本的东西.
有没有一个很好的开源Java库来做到这一点?
我有点没有成功(例如,谷歌搜索"功率谱密度java"或"信号处理java"和点击链接,查看Apache Commons,Sourceforge,java.net等).
有许多小程序,书籍,教程,商业产品等,不符合我的需求.
更新:我找到了 org.apache.commons.math.transform进行傅立叶变换.这不实现功率谱密度,带通等,但它是一些东西.
我想知道是否有人有一个数据压缩算法列表.我基本上都不知道数据压缩,我希望能够了解更多关于不同算法的知识,看看哪些是最新的,还有很多ASIC尚未开发.
我希望实现一个数据压缩ASIC,它独立于进入的数据类型(音频,视频,图像等).
如果我的问题太开放,请告诉我,我会修改.谢谢
我正在使用一些执行傅里叶变换的代码(计算音频样本的倒谱).在计算傅里叶变换之前,它会对样本应用汉明窗口:
for(int i = 0; i < SEGMENTATION_LENGTH;i++){
timeDomain[i] = (float) (( 0.53836 - ( 0.46164 * Math.cos( TWOPI * (double)i / (double)( SEGMENTATION_LENGTH - 1 ) ) ) ) * frameBuffer[i]);
}
Run Code Online (Sandbox Code Playgroud)
它为什么这样做?我找不到任何理由在代码中或在线上执行此操作.
我有一个301值的数组,这些数据是从301帧的影片剪辑中收集的.这意味着1帧中的1个值.影片剪辑以30 fps运行,实际上是10秒长
现在我想获得这个"信号"的功率谱(使用正确的轴).我试过了:
X = fft(S_[:,2]);
pl.plot(abs(X))
pl.show()
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
X = fft(S_[:,2]);
pl.plot(abs(X)**2)
pl.show()
Run Code Online (Sandbox Code Playgroud)
虽然我认为这不是真正的频谱.
信号:

频谱: 
功率谱:

任何人都可以提供一些帮助吗?我希望有一个以赫兹为单位的情节.
algorithm ×3
c ×3
audio ×2
r ×2
audiolet ×1
bigdata ×1
c++ ×1
compression ×1
guitar ×1
java ×1
javascript ×1
numpy ×1
performance ×1
python ×1
scipy ×1