滤波器相关知识

滤波器相关

理想滤波器幅频特性中通带和阻带的增益均为0

实际滤波器通带与阻带之间存在过渡带(迁移带)

数字滤波器进行滤波:需要对模拟信号通过ADC进行A/D转换称数字信号后在进行数字滤波,滤波后在进行D/A转换回模拟信号

但ADC之前要通过抗混叠滤波器,一般采用模拟滤波器

频率响应:幅频响应+相频响应

单位冲激响应--傅里叶变换-->频率响应

当输出信号幅值降低至最大值的1/sqrt(2)=0.707倍时,对应的频率称截止频率

当输出下降速度趋于稳定时,频率每增大10倍,幅值对应降低10倍,即减小20dB

伯德图就是坐标轴取了对数的幅频特性曲线

其优点在于横轴频率范围大,纵轴频率范围大,将频率响应不规则曲线转变成规则曲线

n阶巴特沃斯低通滤波器幅频响应图:

$ |H(w)|=frac{1}{sqrt{1+(frac{w}{w_c})^{2n}}}$

w_c是滤波器截止频率,n是滤波器阶数

# 连载481: 1、2、3阶巴特沃斯低通滤波器波特图
omega = np.arange(1,500000)
A = 1/np.sqrt(1+(omega/5000)**2)
plt.loglog(omega,A,label='First-order Butterworth Filter')
A = 1/np.sqrt(1+(omega/5000)**4)
plt.loglog(omega,A,label='Second-order Butterworth Filter')
A = 1/np.sqrt(1+(omega/5000)**6)
plt.loglog(omega,A,label='Third-order Butterworth Filter')
plt.legend(loc="best",fontsize=10)
plt.xlabel('rad/s')
plt.ylabel('dB')
plt.show()

n阶巴特沃斯高通滤波器幅频响应图:

$ |H(w)|=frac{1}{sqrt{1+(frac{w_c}{w})^{2n}}}$

w_c是滤波器截止频率,n是滤波器阶数

# high-pass filter
omega = np.arange(1,500000)
H = 1/(1+1j*5000/omega)
A = abs(H)
plt.loglog(omega,A)

n阶巴特沃斯带通滤波器幅频响应图:

$ |H(w)|=frac{1}{sqrt{1+(frac{w2-w_0}{Bw}){2n}}}$

w_0是滤波器中心频率,B是滤波器带宽,n是滤波器阶数

截止频率(omega_c = frac{sqrt{B^2+4w_0^2}pm B}{2})

# band-pass filter
omega = np.arange(0.1,100000)
H = 1/(1+1j*(omega**2-100**2)/(200*omega))
A = abs(H)
plt.loglog(omega,A)
plt.xlabel('$omega$(rad/s)')
plt.ylabel('|H(w)| (dB)')

连载483: 通过传递函数绘制波特图

由自动控制原理可知二阶巴特沃斯低通滤波器系统传递函数(用jw替代s)是

(H(s)=frac{1}{frac{1}{w_c^2}s^2+frac{sqrt{2}}{w_c}s+1})

# 连载496 设计滤波器
fp = 5000 #通带截止频率
fs = 12000 #阻带截止频率
Rp = 2 #通带最大衰减系数
Rs = 30 #阻带最大衰减系数
[N, wn] = scipy.signal.buttord(wp=fp, ws=fs, gpass=Rp, gstop=Rs, analog=True)
# 连载499 已知截止频率和阶数, b,a 是系统传递函数的分子和分母
n = 2
Wn = 5000
b, a = scipy.signal.butter(n,Wn,'low',analog=True)
w, h = scipy.signal.freqs(b, a)
plt.semilogx(w, 20 * np.log10(abs(h)))
plt.title('Butterworth filter frequency response')
plt.xlabel('Frequency [radians / second]')
plt.ylabel('Amplitude [dB]')
plt.margins(0, 0.1)
plt.grid(which='both', axis='both')
plt.axvline(5000, color='green') # cutoff frequency
plt.show()

此外还有第一类、第二类切比雪夫滤波器cheb1ord以及椭圆滤波器ellipord

不知为何新浪图床出现问题,故附上github网址

本博客由博主原创,链接:https://www.cnblogs.com/WindyZ/
原文地址:https://www.cnblogs.com/WindyZ/p/Filter.html