1

海。我已经在 matlab 中为音频信号实现了这个带通滤波器,它按预期工作。现在,我尝试在 Python 中实现相同的东西,但它没有产生预期的结果......(它只是有点丢弃了整个信号)。这是 Matlab 代码:

[f,fs] = audioread('abc.wav');
n=6; %order
beginFreq = (300/(fs/2));
endFreq = (2300/(fs/2));
[b,a] = butter(n,[beginFreq,endFreq],'bandpass');    
%filter the signal 
filtered = filter(b,a,signal);

这是 Python 代码(使用 scipy.signal)

[originalSignal, sampleRate] = sf.read('abc.wav')
lower = (300/(sampleRate/2))
higher = (2300/(sampleRate/2))
n=6 #order
[b, a] = signal.butter(n, [lower, higher], 'bandpass')
filtered = signal.lfilter(b, a, originalSignal)
plt.plot(originalSignal, 'b', filtered,'r')

任何形式的帮助将不胜感激。谢谢。过滤结果

4

0 回答 0