Есть ли встроенная функция numpy
для проверки, из какого индекса сигнал (массив) не оставляет определенного диапазона ошибок?Из каких значений индексного массива находится определенный диапазон ошибок?
Работа с цифровыми фильтрами, мне нужно, чтобы определить длину импульсной характеристики для использования в scipy.signal.filtfilt
. Довольно легко с Финитный импульсный отклик (FIR) фильтры, но вроде невозможного с Бесконечный импульсный отклик (IIR) фильтры.
Однако было бы сделать расчет точки, из которой импульсная характеристика не покидает определенную группа ошибок:
На данный момент я использую быстрый и грязный обходной путь, проверяя обращенным массив вручную для первого значения вне диапазона ошибки:
def ringing_time(sig, th):
return len(sig) - np.argmax(np.abs(sig[::-1]) > th)
есть ли быстрый встроенный numpy
подход для этого?
Я бы назвал ваше «быстрое и грязное обходное решение» красивым и элегантным решением! – Jaime
'(sig> th) | (sig <-th) 'кажется быстрее, чем вычисление' abs (sig)> th', даже если он зацикливается на сигнал за дополнительное время. Там также 'numpy.isclose', который требует меньше одного цикла, но, кажется, медленнее оригинала. –