Как узнать, работают ли функции фильтра с отсечкой половинной амплитуды или половинной мощности - PullRequest
0 голосов
/ 28 мая 2018

Я использовал scipy.signal.firwin для фильтрации моего сигнала.Теперь я хочу сообщить об используемой частоте среза, однако документация по этим пунктам не ясна:

  • Как указана частота среза?Как половина мощности (-3 дБ) или половина амплитуды (-6 дБ)?...

  • Где "расположена" частота среза?В середине переходной полосы?На границе между полосой пропускания и полосой перехода?...

В моем случае знание о специфике scipy.signal.firwin было бы уже полезно.Но бонусным ответом было бы показать, как я могу в вычислительном отношении узнать об этом (или, возможно, с помощью черчения?)

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

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()
0 голосов
/ 28 мая 2018

Оконный метод - это эвристический метод для аппроксимации частотной характеристики идеального (кирпичного) фильтра (с бесконечными отводами).Следовательно, частота «отсечки» соответствует частоте отсечки идеального фильтра, который вы пытаетесь аппроксимировать (понятие «половинная мощность / амплитуда отсечки» не имеет смысла в идеальной настройке).Конечно, поскольку полученный дизайн является лишь приближением к идеалу, вам придется изучить его частотную характеристику и посмотреть, достаточен ли он для ваших нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...