我在互联网上发现了一些非常简单的信号过滤器代码片段。不幸的是,没有太多信息可以支持它。使用谷歌我发现了类似的代码,但没有一个得到研究或文档的支持。我已经尝试过了,它对我的情况来说效果很好。
低通滤波器如下所示:
float RC = 1.0/(CUTOFF*2*3.14);
float dt = 1.0/SAMPLE_RATE;
float alpha = dt/(RC+dt);
float out[numSamples];
out[0] = in[0];
for(i=1; i<numSamples; i++){
out[i] = out[i-1] + (alpha*(in[i] - out[i-1]));
}
高通滤波器看起来像这样:
float RC = 1.0/(CUTOFF*2*3.14);
float dt = 1.0/SAMPLE_RATE;
float alpha = RC/(RC + dt);
float out[numSamples];
out[0] = in[0];
for (i = 1; i<numSamples; i++){
out[i] = alpha * (out[i-1] + in[i] - in[i-1]);
}
我想知道这些算法是否有名称或是谁发明了它们,以便我可以找到有关它们的更多信息。