gpt4 book ai didi

python - 如何确定滤波器功能是否适用于半幅度或半功率截止

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

我用了scipy.signal.firwin过滤我拥有的信号。现在我想报告所使用的截止频率,但是文档在这些方面并不清楚:

  • 截止频率是如何指定的?作为半功率(-3dB)或半幅度(-6dB)? ...

  • 截止频率“位于”哪里?在过渡带的中间?在通带和过渡带之间的边缘? ...

就我而言,了解 scipy.signal.firwin 的具体情况已经很有帮助了。但一个额外的答案是展示我如何通过计算找出这一点(或者也许通过绘图?)

最佳答案

fc所需半幅频率。在firwin设计的实际滤波器中,fc处的增益约为0.5,随着抽头数量的增加,近似值会提高。

下面的图显示了使用 firwin 和几个不同窗口设计的几个低通滤波器的频率响应。生成绘图的脚本如下。

plot

import numpy as np
from scipy.signal import firwin, freqz
import matplotlib.pyplot as plt


# Desired half-amplitude cutoff
fc = 0.2

# Length of the FIR filter
numtaps = 51

windows = ['boxcar', 'hann', 'hamming', 'blackman']

for window in windows:
taps = firwin(numtaps, fc, window=window, scale=False)
w, h = freqz(taps, worN=8000)

plt.plot(w/np.pi, np.abs(h), label=window)

plt.legend(title='Window Function', loc='best', framealpha=1, shadow=True)
plt.axhline(0.5, alpha=0.3, color='k', linestyle='--', linewidth=1)
plt.grid(True)
plt.xlim(0, 2*fc)
plt.xlabel('Normalized frequency (1 = Nyquist)')
plt.ylabel('Gain')

plt.show()

关于python - 如何确定滤波器功能是否适用于半幅度或半功率截止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50566226/

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