不同阶数的巴特沃斯低通滤波器的空间域表示——数字图像处理

原理

巴特沃斯低通滤波器(Butterworth Low-Pass Filter)在频率域中的定义是明确的,但它在空间域中的表示不是直观的。这是因为巴特沃斯滤波器的形式是基于频率的,并且其空间域表示涉及到一个复杂的逆傅里叶变换,该变换没有一个封闭形式的解析表达。然而,我们可以通过理解其频率域的特性来间接理解其在空间域的行为。

在频率域,巴特沃斯低通滤波器的函数形式如下:

不同阶数 n 的巴特沃斯低通滤波器在空间域中的主要影响如下:

阶数 n 对平滑度的影响:

较低阶数(如 n=1)的巴特沃斯滤波器在空间域中提供较为平缓的平滑效果,边缘过渡较为柔和。

较高阶数(如 n>1)的滤波器则提供更加强烈的平滑效果,但过渡可能更为尖锐,接近理想低通滤波器的特性。

频率响应与空间响应的关系:

在频率域中,滤波器的截止频率越低,其在空间域中的作用范围越大,导致图像更加模糊。

在空间域中,滤波器的效果取决于其对图像不同频率成分的衰减方式。
空间域的表示:

理论上,可以通过逆傅里叶变换将巴特沃斯滤波器从频率域转换到空间域,但这通常不会产生一个简单的封闭形式的函数。

在实际应用中,巴特沃斯滤波器通常直接在频率域内操作,并在应用逆傅里叶变换回空间域后观察其效果。

由于巴特沃斯滤波器在空间域中没有简洁的表达式,因此在图像处理中通常在频率域内进行设计和应用,然后将处理后的结果转换回空间域以观察和利用其效果。

python实现下图

提示

不同阶数巴特沃斯低通滤波器的空间域表示。参数如下设置:阶数分别为1,2,5,20,滤波器大小均为1000×1000,截止频率均为5。仍然和上一个实验一样,生成频域的巴特沃斯低通滤波器。之后直接做傅里叶反变换得到空间域的图像表示。为了便于显示,还需要进行对数变换等,具体代码可为HSpatial =

代码实现

python 复制代码
import numpy as np
import pandas as pd
from sklearn.model_selection import KFold
import scipy as sp
import matplotlib.pyplot as plt

img_list=[]
img_name_list=[]

H=np.ones((1000,1000))

for n in [1,2,5,20]:
    for i in range(1000):
        for j in range(1000):
            Duv=np.sqrt(np.power((i-1000/2),2)+np.power((j-1000/2),2))
            H[i,j]=1/(1+np.power((i-1000/2),2)+np.power((j-1000/2),2))
    HSpatital=np.log(0.00005+np.abs(np.fft.fftshift(np.fft.ifft2(H))))
    img_list.append(HSpatital)
    img_name_list.append("n="+str(n))

_,axs=plt.subplots(1,4)

for i in range(4):
    axs[i].imshow(img_list[i],cmap="gray")
    axs[i].set_title(img_name_list[i])
    axs[i].axis('off')

plt.show()

结果展示

总结

阶数高的时候高频衰减快。高于截止频率以后,n阶butterworth衰减速度是20n分贝/10倍频。但是做数字滤波的时候你会发现阶数越高系统响应越慢,如果采样间隔是t,通过一个n阶的butterworth,结果和原信号相比基本会有n t的延迟,随着阶数增大,振铃现象逐渐明显,频域的butterworth滤波器也更加接近理想滤波器。

Butterworth低通滤波器可以通过改变次数n,对过度特性进行调整。过大的n会造成振铃现象

相关推荐
QY_Research_1 小时前
2026房地产NFT平台创业机遇与落地指南分析报告
大数据·人工智能·物联网·机器人·制造
机器人零零壹2 小时前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平
人工智能·算法
电子元件小说家3 小时前
2026年四季度电感市场观察:AI算力与汽车电子驱动下的选型与验证建议智能硬件
人工智能·汽车
网易CodeWave-小码哥3 小时前
支持多模块 Java 微服务导入|CodeWave SDD V4.5.10 上线
人工智能
AI你一生一世3 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
belldeep3 小时前
python:genesis-world, Genesis-Embodied-AI
人工智能·python·ai·genesis
怕浪猫4 小时前
小程序成长计划上新:10 亿 Token 现在能调 DeepSeek-v4.1-flash了
人工智能·aigc·ai编程
ss2734 小时前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
benchmark_cc4 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
七牛云行业应用5 小时前
DeepSeek Super-agent 与 Grok Bot:开源 Agent 架构和聊天助手有何区别
人工智能·ai·架构·ai编程