数字信号处理python代码实现采样,python绘制滤波器冲激响应
终极管理员 知识笔记 41阅读
rong>以减少边界效应的影响。

使用长滤波器使用更长的滤波器可以减少滤波器的有限长度效应但也会增加计算成本。
谨慎选择滤波器类型不同类型的滤波器在边界效应方面有不同的性质因此根据具体应用的需要选择适当的滤波器类型。

考虑后处理在滤波后对信号的边界段进行后处理以减小边界效应的影响。
综上所述边界效应是信号处理中的常见问题可以通过适当的处理方法和滤波器选择来减轻其影响。
为了最终得到完美的滤波器我们可以考虑零相位滤波器简单来说就是这种滤波器进行双向滤波一定程度上减少了边界效应。
直接上代码和结果
# 开发时间2023/10/25 22:22# 开发内容# 运行环境# 备注内容import numpy as npfrom scipy import signalimport matplotlib.pyplot as plt# 生成示例数据包括噪声和带有干扰的信号fs 1000 # 采样频率t np.arange(0, 1, 1/fs)fs 1000t np.arange(0,1,1/fs)noise 0.5 * np.sin(2 * np.pi * 50 * t) # 50 Hz噪声signal_with_noise np.sin(2 * np.pi * 5 * t) noise # 5 Hz信号 50 Hz噪声# 设计陷波滤波器来去除50 Hz干扰f0 50.0 # 噪声的中心频率Q 0.2# 带宽-------------------------------------------修改之处b, a signal.iirnotch(f0, Q, fs)# 使用滤波器来去除噪声--------------------------------------修改之处filtered_signal signal.filtfilt(b, a, signal_with_noise)# 绘制原始信号和去噪后的信号plt.figure(1)plt.subplot(2, 1, 1)plt.plot(t, signal_with_noise, b, label带噪声的信号)plt.legend()plt.subplot(2, 1, 2)plt.plot(t, filtered_signal, g, labelq100)plt.legend()plt.tight_layout()plt.show()fs1000t np.arange(0,1,1/fs)signalwave np.sin(2*np.pi*5*t)plt.figure(2)plt.plot(signalwave,label5Hz-sin)plt.legend()plt.show()
效果已经很好那么我们要是使用截断法可以截断尾部的信号。而且我们这个滤波之后的信号不存在相位移动。。
标签: