首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二阶低通滤波算法

二阶低通滤波算法
EN

Stack Overflow用户
提问于 2011-03-07 23:45:59
回答 3查看 6K关注 0票数 0

我需要从信号中过滤一些噪声,一个简单的RC一阶滤波器似乎是不够的。我一直在寻找,但我还没有找到其他滤波器的算法(尽管有很多使用模拟电路的例子)。有人能指出我在哪里可以找到这样的算法吗?或者至少在这里写一个?

需要说明的是:我从示波器获取信号,而我只有一个周期。这个循环看起来有点像:

代码语言:javascript
复制
125 * (x > 3 ? exp(-(x - 3) / 2) : exp(5*(x - 3)))

现在,信号并不总是具有那样的形状,我需要计算信号的导数,这很容易,因为当一个人将信号放大到足够大的时候(每个点都是160毫微秒),你可以看到很多噪声。因此,在计算导数之前,我需要平坦化信号。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-08 00:01:52

如果你正在询问如何设计一个比简单的一阶滤波器更高阶的滤波器,那么从这里选择一个滤波器怎么样:wiki on Filter_(signal_processing)

只是对你的问题的假设,所以这里有几个设计要点。

1)你可能不想在你的通带中有波纹(可变增益),因为那会使你的信号失真。

2)你可能并不关心你的阻挡带中是否有波纹,因为那里的信号无论如何都应该接近于0。

3)滤波器阶数越高,越接近理想的方形滤波器。

4)滚降越高越好,您希望尽可能快地降低通带外的噪声。

5)您可能关心也可能不关心“群时延”,群时延是指不同频率通过滤波器的时间不同而导致的失真程度。对于音频,你可能不想要一个太高的群延迟,因为你可以想象不同的频率分量经历不同的时间(因此相位)移动将导致一些失真。

一旦您根据这些(可能还有其他)考虑因素选择了所需的过滤器,然后只需使用某种拓扑实现它,就像前面提到的here

票数 1
EN

Stack Overflow用户

发布于 2011-03-08 00:21:14

由于对您的需求只有一个模糊的描述,很难给出任何具体的建议。

您需要指定滤波器的参数:采样率、截止频率、过渡带宽度、通带纹波、最小阻带抑制、相位和群延迟等。一旦确定了这些参数中的至少一些,您就可以开始选择适当滤波器设计的过程,即基本滤波器类型、级数等。

知道你想要过滤哪种类型的信号也会很有帮助--是音频还是其他什么?每个样本有多少位?

票数 0
EN

Stack Overflow用户

发布于 2011-03-08 00:44:54

您需要对您的信号进行良好的定义,对噪声进行良好的分析,并清楚地了解两者之间的差异,以便确定哪些算法可能适合消除其中一个而不是消除另一个中的信息。然后,您需要定义计算环境(整数或浮点ALU,加法和乘法周期?),并设置计算预算。二阶IIR和千兆点FFT之间有很大的区别。

RBJ's biquad cookbook中描述了一些非常常用的二阶数字滤波器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5221697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档