我需要从信号中过滤一些噪声,一个简单的RC一阶滤波器似乎不够我一直在四处寻找,但还没有找到其他滤波器的算法(尽管有很多关于如何使用模拟电路的例子)。有人能指出我在哪里能找到这样的算法吗或者至少在这里写一个?
为了澄清:我从示波器获取信号,我只有一个周期。这个周期看起来有点像:
125 * (x > 3 ? exp(-(x - 3) / 2) : exp(5*(x - 3)))
现在,信号并不总是这样的形状,我需要计算信号的导数,这很容易,如果不是,因为当一个放大信号足够(每个点是160纳米秒装置),你可以看到很多噪音所以,在计算导数之前,我需要对信号进行平滑处理。
最佳答案
如果你想知道如何设计一个比简单的一阶滤波器更高阶的滤波器,那么从这里选择一个滤波器如何:wiki on Filter_(signal_processing)
假设一下你的问题,这里有几个设计要点。
1)你可能不想在你的通带中有波纹(变化的增益),因为那样会扭曲你的信号。
2)你可能不在乎你的阻带有波纹,因为信号应该接近0。
3)滤波器阶数越高,越像理想的方形滤波器。
4)越高的滚动越好,您希望尽快减少您的通带外的噪音。
5)您可能关心也可能不关心“群延迟”,这是一种测量不同频率通过滤波器所需时间的失真的方法。对于音频,您可能需要不太高的组延迟,因为您可以想象,不同的频率分量经历不同的时间(因此相位)偏移将导致一些失真。
一旦基于这些(可能还有其他)考虑因素选择了所需的过滤器,那么只需使用一些拓扑结构(如前面提到的here