用 Scipy firwin 编写 Python fir1 matlab
writing in Python fir1 matlab with Scipy firwin
我需要将信号处理 Matlab 包翻译成 Python。我被困在 fir1 函数中。 Fir1在Matlab中的描述:
b = fir1(n,Wn)
使用 Hamming window 设计具有线性相位的 n 阶低通、带通或多频带 FIR 滤波器。过滤器类型取决于 Wn 的元素数量。
我试过了:
import scipy
b = scipy.signal.firwin(11,.5, window = "hamming", pass_zero = False)
-0.00506032, -0. 0.04194288, -0. -0.28848483, 0.49679547, -0.28848483,
-0. 0.04194288, -0. -0.00506032
在 Matlab 或 Octave 中:
fir1(10,.5)
0.00505978 -0.00016286 -0.04194054 0.00066187 0.28847599 0.49581153 0.28847599
-0.00016286 0.00505978
来自 Matlab 的 fir documentation,
If Wn is a scalar, then fir1 designs a lowpass or highpass filter with cutoff frequency Wn...
因此,似乎提供pass_zero = False
可能与Matlab的结果不对应。相反,尝试 pass_zero='lowpass'
进行适当的比较。
我需要将信号处理 Matlab 包翻译成 Python。我被困在 fir1 函数中。 Fir1在Matlab中的描述:
b = fir1(n,Wn)
使用 Hamming window 设计具有线性相位的 n 阶低通、带通或多频带 FIR 滤波器。过滤器类型取决于 Wn 的元素数量。
我试过了:
import scipy
b = scipy.signal.firwin(11,.5, window = "hamming", pass_zero = False)
-0.00506032, -0. 0.04194288, -0. -0.28848483, 0.49679547, -0.28848483,
-0. 0.04194288, -0. -0.00506032
在 Matlab 或 Octave 中:
fir1(10,.5)
0.00505978 -0.00016286 -0.04194054 0.00066187 0.28847599 0.49581153 0.28847599
-0.00016286 0.00505978
来自 Matlab 的 fir documentation,
If Wn is a scalar, then fir1 designs a lowpass or highpass filter with cutoff frequency Wn...
因此,似乎提供pass_zero = False
可能与Matlab的结果不对应。相反,尝试 pass_zero='lowpass'
进行适当的比较。