理想低通滤波器python代码
时间: 2024-11-19 13:15:41 浏览: 14
理想低通滤波器是一种数字信号处理技术,用于保留信号中的低频成分而去除高频噪声。在Python中,我们可以使用scipy库中的`signal`模块来实现理想低通滤波。下面是一个简单的例子,展示如何使用巴特沃斯滤波器设计一个理想低通滤波器:
```python
from scipy.signal import butter, lfilter
# 设定参数
def low_pass_filter(input_signal, cutoff_freq, sample_rate, order=5):
nyquist_freq = 0.5 * sample_rate
normal_cutoff = cutoff_freq / nyquist_freq
# 滤波器设计(这里选择巴特沃斯滤波器)
b, a = butter(order, normal_cutoff, btype='low', analog=False)
# 应用滤波器
filtered_signal = lfilter(b, a, input_signal)
return filtered_signal
# 示例:假设输入信号、截止频率和采样率已知
input_data = ... # 替换为你的输入数据
cutoff_freq = ... # 例如,如果你想滤除高于40 Hz的频率
sample_rate = ... # 例如,如果你的数据每秒采样100次
filtered_output = low_pass_filter(input_data, cutoff_freq, sample_rate)
```
在这个示例中,你需要提供输入信号(`input_data`),想要滤除的最高频率(`cutoff_freq`),以及样本率(`sample_rate`)。`order`参数影响滤波器的阶数,一般越大,滤波效果越平滑但计算复杂度也越高。
阅读全文