我正在尝试用Python实现一个Matlab代码。但我在设计过滤器方面遇到了问题
Matlab代码:
d=fdesign.lowpass('N,Fc',10,40,1600);
Hd = design(d);
freqz(Hd)
Python代码:
N=10
Fc=40
Fs=1600
d=firwin(numtaps=N,cutoff=40,nyq=Fs/2)
Hd=lfilter( d, 1.0, demod_1)
w,h=freqz(d)
semilogy(w, np.abs(h), 'b')
grid(True)
ylabel('Amplitude (dB)', color='b')
xlabel('Frequency (rad/sample)')
为什么python中的过滤器没有精确的频率响应
答案 0 :(得分:3)
它是一样的。请注意,Matlab中的x轴包含“pi”,而在Python中则不包含“pi”。并且Python中的y轴以自然单位标记:10 ^ -1对应-20 dB,10 ^ -2到-40等