我想知道matlab黄油功能背后的理论。有没有一本书能够清楚地说明它是如何运作的。将来我想手动计算系数。
答案 0 :(得分:4)
我假设您已查看Matlab help page。
这是“巴特沃斯滤波器”的实现。有关Wikipedia的一些非常深入的信息。您还可以查看实际electronics circuit的构成方式。
基本思路是你想要允许的某些频率(或等效波长),以及你想要阻止的一些频率。引用维基百科:
“理想的电气滤波器不仅应完全抑制不需要的频率,还应对所需频率具有均匀的灵敏度”
因此,您希望所有需要的频率(通带)以相同的传输通过滤波器,并且所有非期望的频率都具有零传输。 (此处传输意味着有多少信号通过滤波器。)
Butterworth过滤器可以很好地管理前者 - 它最大程度上是扁平的,它不会更平坦。然而,通带的下降可能非常慢,因此它允许一些其他频率通过(尽管受到阻尼)。
我链接的维基百科页面有一个很好的图表,说明它与其他过滤器相比:
您可以使用更高阶的过滤器来改善下线(请参阅Wiki的Transfer Function部分)。这是函数的第一个参数。基本上,顺序越高,从截止频率到零传输的下降越明显。
再次,来自维基百科:
截止频率是您希望过滤器停止允许数据通过的点。在低通滤波器的情况下,这意味着将更高频率的所有内容设置为零(或接近它,具体取决于滤波器顺序)。
你可以在成像意义上想到这一点。您有一个灰度图像,其值介于0和255之间。低通滤波器设置为128,可使所有图像值保持在和输入图像相同的128下。其他所有内容都将设置为零(或您选择的某个值)。
G_0 - DC增益
这是通过过滤器的频率增益量。通带内的那些(即在低通滤波器情况下低于截止频率)将具有这样的增益。
w_c - 截止频率
基本上是您停止通过信号的频率。这是一个轻微的过度简化,事实上it's the frequency的增益低于-3db。