firwin2#
- scipy.signal.firwin2(numtaps, freq, усиление, *, nfreqs=None, window='hamming', антисимметричный=False, fs=None)[источник]#
Проектирование КИХ-фильтров с использованием оконного метода.
Из заданных частот freq и соответствующие усиления усиление, эта функция строит КИХ-фильтр с линейной фазой и (приблизительно) заданной частотной характеристикой.
- Параметры:
- numtapsint
Количество отводов в КИХ-фильтре. numtaps должно быть меньше nfreqs.
- freqarray_like, 1-D
Точки частотной дискретизации. Обычно от 0.0 до 1.0, где 1.0 соответствует частоте Найквиста. Частота Найквиста равна половине fs. Значения в freq должен быть неубывающим. Значение может повторяться один раз для реализации разрыва. Первое значение в freq должно быть 0, а последнее значение должно быть
fs/2. Значения 0 иfs/2не должны повторяться.- усилениеarray_like
Коэффициенты усиления фильтра на частотах дискретизации. Применяются определенные ограничения к значениям усиления в зависимости от типа фильтра, см. примечания для подробностей.
- nfreqsint, необязательный
Размер интерполяционной сетки, используемой для построения фильтра. Для наиболее эффективной работы это должно быть степень двойки плюс 1 (например, 129, 257 и т.д.). По умолчанию используется значение на единицу больше, чем наименьшая степень двойки, не меньшая numtaps. nfreqs должно быть больше, чем numtaps.
- windowстрока или (строка, float) или float, или None, опционально
Оконная функция для использования. По умолчанию 'hamming'. См.
scipy.signal.get_windowдля полного списка возможных значений. Если None, оконная функция не применяется.- антисимметричныйbool, необязательно
Является ли результирующая импульсная характеристика симметричной/антисимметричной. См. примечания для подробностей.
- fsfloat, опционально
Частота дискретизации сигнала. Каждая частота в порог должно быть между 0 и
fs/2. По умолчанию 2.
- Возвращает:
- tapsndarray
Коэффициенты фильтра КИХ-фильтра, как одномерный массив длины numtaps.
Смотрите также
Примечания
Из заданного набора частот и коэффициентов усиления строится желаемая характеристика в частотной области. Обратное преобразование Фурье применяется к желаемой характеристике для создания соответствующего ядра свертки, и первый numtaps коэффициенты этого ядра, масштабированные на window, возвращаются.
КИХ-фильтр будет иметь линейную фазу. Тип фильтра определяется значением 'numtaps` и антисимметричный флаг. Возможны четыре комбинации:
нечётный numtaps, антисимметричный если False, создается фильтр типа I
даже numtaps, антисимметричный если False, создается фильтр типа II
нечётный numtaps, антисимметричный если True, создается фильтр типа III
даже numtaps, антисимметричный если True, создаётся фильтр типа IV
Амплитудная характеристика всех фильтров, кроме типа I, подчиняется следующим ограничениям:
тип II – ноль на частоте Найквиста
тип III – ноль на нулевой и частоте Найквиста
тип IV – ноль на нулевой частоте
Добавлено в версии 0.9.0.
Ссылки
[1]Оппенгейм, А. В. и Шафер, Р. В., «Обработка дискретных сигналов», Prentice-Hall, Энглвуд Клиффс, Нью-Джерси (1989). (См., например, раздел 7.4.)
[2]Smith, Steven W., "The Scientist and Engineer’s Guide to Digital Signal Processing", Гл. 17. http://www.dspguide.com/ch17/1.htm
Примеры
ФНЧ-фильтр с КИХ, чья характеристика равна 1 на [0.0, 0.5] и линейно уменьшается на [0.5, 1.0] от 1 до 0:
>>> from scipy import signal >>> taps = signal.firwin2(150, [0.0, 0.5, 1.0], [1.0, 1.0, 0.0]) >>> print(taps[72:78]) [-0.02286961 -0.06362756 0.57310236 0.57310236 -0.06362756 -0.02286961]