python 写一个fft滤波器
时间: 2023-10-11 16:05:54 浏览: 54
下面是一个简单的 Python FFT 滤波器的代码示例,它可以读取一个 WAV 文件并应用一个低通滤波器:
```python
import numpy as np
import scipy.io.wavfile as wav
# Read the WAV file
rate, data = wav.read('input.wav')
# Compute the FFT
fft = np.fft.fft(data)
# Compute the frequency domain (in Hz)
freq = np.fft.fftfreq(len(data), 1/rate)
# Define a low-pass filter
cutoff_freq = 5000 # Hz
filter = np.ones(len(data))
filter[freq > cutoff_freq] = 0
# Apply the filter in the frequency domain
filtered_fft = fft * filter
# Compute the inverse FFT
filtered_data = np.real(np.fft.ifft(filtered_fft))
# Save the filtered WAV file
wav.write('output.wav', rate, np.int16(filtered_data))
```
这个示例代码演示了如何使用 Numpy 和 Scipy 库来读取 WAV 文件、计算 FFT、定义一个滤波器、在频域中应用滤波器并计算逆 FFT。在本例中,我们使用了一个简单的低通滤波器,它将频率大于 5000 Hz 的信号过滤掉。你可以根据自己的需求修改滤波器的参数。