理想带阻滤波器

     

     理想带阻滤波器是频域滤波的一种,主要是抑制距离频域中心D0、一个圆环区域的频域成分,因此可以使用理想带阻滤波器来消除频率分布在圆环上的周期噪声。

公式如下


                  


产生的3D理想带阻滤波器的图形如下


                        

 

 

现在看一下对一个图像加点白噪声,然后滤波一下,下面是原图和滤波后的图


                        

以下是一个简单的理想带阻滤波器的Python代码示例: ```python import numpy as np import matplotlib.pyplot as plt # 定义理想带阻滤波器函数 def ideal_bandstop_filter(signal, fs, f_cutoff_low, f_cutoff_high): # 计算归一化频率 w_cutoff_low = f_cutoff_low / (fs / 2) w_cutoff_high = f_cutoff_high / (fs / 2) # 计算滤波器的频率响应 frequency_response = np.ones(len(signal)) for i in range(len(signal)): if w_cutoff_low < i / len(signal) < w_cutoff_high: frequency_response[i] = 0 # 应用频率响应到信号中 filtered_signal = np.fft.ifft(np.fft.fft(signal) * frequency_response) return filtered_signal.real # 生成测试信号 fs = 1000 t = np.linspace(0, 1, fs, endpoint=False) signal = np.sin(2 * np.pi * 50 * t) + np.sin(2 * np.pi * 150 * t) + np.sin(2 * np.pi * 300 * t) # 应用理想带阻滤波器 filtered_signal = ideal_bandstop_filter(signal, fs, 100, 200) # 绘制结果 plt.figure(figsize=(10, 6)) plt.subplot(2, 1, 1) plt.plot(t, signal) plt.title('Original Signal') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.subplot(2, 1, 2) plt.plot(t, filtered_signal) plt.title('Filtered Signal') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.tight_layout() plt.show() ``` 在这个示例中,我们定义了一个名为 `ideal_bandstop_filter` 的函数,该函数接受一个信号、采样率和两个截止频率作为输入,并返回一个经过理想带阻滤波器处理后的信号。该函数的实现基于理想带阻滤波器的频率响应,即在截止频率之间的所有频率上,将频率响应设置为零,以削减这些频率分量。 我们还生成了一个测试信号,该信号包含三个不同频率的正弦波。然后,我们将该信号传递给 `ideal_bandstop_filter` 函数,并使用 `matplotlib` 库显示原始信号和经过滤波器处理后的信号的图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值