gpt4 book ai didi

python - 使用 scipy.signal.firwin 将高通滤波器应用于 WAV 文件

转载 作者:行者123 更新时间:2023-12-01 15:27:16 24 4
gpt4 key购买 nike

我正在尝试使用 scipy.signal.firwin 将高通滤波器(截止频率:1000 Hz)应用于单声道 16 位 44.1 Khz WAV 文件:

from scipy.io import wavfile
from scipy import signal
import numpy as np

sr, x = wavfile.read('test.wav') # 16-bit mono 44.1 khz

b = signal.firwin(5, cutoff=1000, fs=sr, pass_zero=False)

x = signal.lfilter(b, [1.0], x)

wavfile.write('test2.wav', sr, x.astype(np.int16))

结果与输入完全相似(但不完全相等),即没有应用高通。

我应该修改什么才能使这个高通与 firwin工作?

最佳答案

似乎问题仅在于滤波器的系数数量:5 太低了。


b = signal.firwin(101, cutoff=1000, fs=sr, pass_zero=False)

它的效果要好得多。

注意:在前 101 个样本中音频几乎为零,因此我们可能应该在开头和结尾对 WAV 文件进行零填充,然后应用过滤器,然后裁剪文件以删除零填充部分。

关于python - 使用 scipy.signal.firwin 将高通滤波器应用于 WAV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com