scipy.signal.firwinのsimple example

import numpy as np
from scipy.io import wavfile
from scipy.signal import lfilter, firwin
import matplotlib.pyplot as plt

sample_rate, x = wavfile.read('combined_sine.wav')
sample_interval = 1.0 / sample_rate
N = x.shape[0]

nyquist = sample_rate / 2
cutFreq = 1500 / nyquist # ナイキスト周波数で正規化
b = firwin(100, cutFreq)

filtered = lfilter(b, 1, x)
F = np.fft.fft(filtered)
Amp = np.abs(F)

freq = np.linspace(0, sample_rate, N)
plt.plot(freq[:int(N/2)], Amp[:int(N/2)])
plt.show()