Open xiongyihui opened 5 years ago
滤波器设计
https://wenku.baidu.com/view/a75c0e9cc281e53a5802ff8a.html https://www.cnblogs.com/xinyuyuanm/archive/2013/05/24/3098176.html https://zhuanlan.zhihu.com/p/24318554
窗函数的主瓣宽度和旁瓣抑制是要权衡的点,主瓣越小,旁瓣衰减越弱。 主瓣小,则滤波器过渡带越小。 矩形窗的主瓣小,但旁瓣衰减太弱,而且信号泄漏严重。
kaiser窗有一个调整参数调整主瓣大小和旁瓣衰减,在matlab、octave或scipy中,可以通过kaiserord()函数设计。 比如matlab代码:
fs = 48000; fcuts = [8000*0.96 8000]; mags = [1 0]; devs = [0.01 0.001]; [n,Wn,beta,ftype] = kaiserord(fcuts, mags, devs, fs) hh = fir1(n, Wn, ftype, kaiser(n+1, beta), 'noscale'); freqz(hh)
python代码:
import numpy as np from scipy import signal import matplotlib.pyplot as plt fs = 48000 cutoff = 8000 - 0.04 * 8000 width = 0.04 * 8000 ripple = 65 numtaps, beta = signal.kaiserord(ripple, width/(0.5*fs)) taps = signal.firwin(numtaps, cutoff=cutoff, window=('kaiser', beta), scale=False, fs=fs) w, h = signal.freqz(taps, worN=8000) w *= 0.5*fs/np.pi # Convert w to Hz. plt.plot(w, 20*np.log10(np.abs(h))) plt.show()
https://zhuanlan.zhihu.com/p/45138629
滤波器设计
窗函数法设计FIR滤波器
https://wenku.baidu.com/view/a75c0e9cc281e53a5802ff8a.html https://www.cnblogs.com/xinyuyuanm/archive/2013/05/24/3098176.html https://zhuanlan.zhihu.com/p/24318554
窗函数的主瓣宽度和旁瓣抑制是要权衡的点,主瓣越小,旁瓣衰减越弱。 主瓣小,则滤波器过渡带越小。 矩形窗的主瓣小,但旁瓣衰减太弱,而且信号泄漏严重。
kaiser窗有一个调整参数调整主瓣大小和旁瓣衰减,在matlab、octave或scipy中,可以通过kaiserord()函数设计。 比如matlab代码:
python代码:
通过零、极点设计滤波器
https://zhuanlan.zhihu.com/p/45138629