[Python] Introducción a Scipy, introducción al módulo de señal

número de serie contenido
1 [Python] Introducción a Pandas, introducción a la estructura de datos Series y DataFrame, procesamiento de archivos CSV, procesamiento de archivos JSON
2 [Python] Operación de limpieza de datos de Pandas, resumen de funciones comunes
3 [Python] Introducción a Scipy, introducción al módulo de señal

1. Introducción a Scipy

SciPy es una biblioteca de algoritmos de Python y un conjunto de herramientas matemáticas de código abierto.

Scipy es una biblioteca de computación científica basada en Numpy, que se utiliza en matemáticas, ciencias, ingeniería y otros campos. Muchos modelos físicos y abstractos de alto orden requieren el uso de Scipy.

SciPy contiene módulos de optimización, álgebra lineal, integración, interpolación, funciones especiales, transformada rápida de Fourier, procesamiento de señales y procesamiento de imágenes, resolución de ecuaciones diferenciales ordinarias y otros cálculos comúnmente utilizados en ciencia e ingeniería.

número de serie Nombre del módulo Función Documentación de referencia
1 scipy.cluster cuantificación vectorial API de clúster
2 scipy.constants constantes matemáticas API de constantes
3 scipy.fft Transformada rápida de Fourier API de FFT
4 scipy.integrate integral integrar API
5 scipy.interpolate interpolación interpolar API
6 scipy.io Entrada y salida de datos yo api
7 scipy.linalg álgebra lineal API de línea
8 scipy.misc Procesamiento de imágenes API miscelánea
9 scipy.ndimage Imagen N-dimensional API de imagen
10 scipy.odr Regresión de distancia ortogonal otra API
11 scipy.optimize mejoramiento optimizar API
12 scipy.signal procesamiento de la señal API de señal
13 scipy.sparse matriz dispersa API escasa
14 scipy.spatial Algoritmos y estructuras de datos espaciales. API espacial
15 scipy.special funciones matemáticas especiales API especial
dieciséis scipy.stats función estadística API de estadísticas.mstats

2. módulo de señal

1.signal.butter()

Diseño de filtro analógico y digital Butterworth.

Diseñe un filtro Butterworth digital o analógico de orden N y devuelva los coeficientes del filtro.


gramática:
scipy.signal.butter(N, Wn, btype='low', analog=False, output='ba', fs=None)

parámetro:

  • N: int
    El orden del filtro. Para los filtros de "paso de banda" y "parada de banda", el orden de la matriz de sección transversal final de segundo orden ('sos') es 2*N, donde N es el número de secciones transversales de segundo orden del sistema deseado. .

  • Wn:array_like
    frecuencia crítica. Para los filtros de paso bajo y de paso alto, Wn es una cantidad escalar; para los filtros de paso de banda y de rechazo de banda, Wn es una secuencia de longitud 2.
    Para un filtro Butterworth, este es el punto donde la ganancia cae a 1/sqrt(2) de la banda de paso (el "punto -3 dB").
    Para los filtros digitales, si no se especifica fs, las unidades Wn se normalizarán de 0 a 1, donde 1 es la frecuencia de Nyquist (por lo que las unidades Wn son medios ciclos/muestra, definidas como 2*frecuencia crítica/fs). Si se especifica fs, Wn tiene las mismas unidades que fs.
    Para filtros analógicos, Wn es la frecuencia de esquina (por ejemplo, rad/s).

  • btype: {'paso bajo', 'paso alto', 'paso de banda', 'parada de banda'},
    tipo de filtro opcional. El valor predeterminado es "paso bajo".

  • analog: bool, opcional
    Cuando es verdadero, devuelve el filtro analógico; de lo contrario, devuelve el filtro digital.

  • output: {'ba', 'zpk', 'sos'}, tipo de salida opcional
    : numerador/denominador ('ba'), polo cero ('zpk') o sección de segundo orden ('sos'). El valor predeterminado es "ba" para compatibilidad con versiones anteriores, pero "sos" debe usarse para filtrado de propósito general.

  • fs:float, opcional
    La frecuencia de muestreo del sistema digital.

valor de retorno:

  • b, a:
    polinomios de numerador (b) y denominador (a) del filtro IIR de ndarray, ndarray. Devuelto sólo cuando output='ba'.

  • z, p, k: ndarray, ndarray, float
    Los ceros, polos y ganancia del sistema de la función de transferencia del filtro IIR. Devuelto sólo cuando output='zpk'.


  • sos: representación de la sección transversal de segundo orden del filtro IIR ndarray . Devuelto sólo cuando output='sos'.


2.signal.filtfilt()

Aplique filtros digitales a las direcciones de avance y retroceso de la señal.

Esta función aplica un filtro digital lineal dos veces, una hacia adelante y otra hacia atrás. La fase del filtro combinado es cero y el orden del filtro es el doble que el del filtro original.

Esta función proporciona opciones para manejar los flancos de la señal.

En la mayoría de las tareas de filtrado, se debe preferir sosfiltfiltla función (y el diseño del filtro utilizando ) a , ya que la parte de segundo orden tiene menos problemas numéricos.output='sos'filtfilt


gramática:
scipy.signal.filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None, method='pad', irlen=None)

parámetro:

  • b(N,)
    Vector de coeficiente numerador del filtro tipo matriz.

  • a(N,)
    Vector de coeficiente denominador del filtro tipo matriz. Si a[0]no es igual a 1, tanto a como b están a[0]normalizados.

  • x:array_like
    La matriz de datos que se va a filtrar.

  • axis:int,
    eje x opcional al que aplicar el filtro. El valor predeterminado es -1.

  • padtyp: estr o Ninguno, opcional
    debe ser "impar", "par", "constante" o "ninguno". Esto determina el tipo de expansión utilizada para llenar la señal a la que se aplica el filtro. Si padtype es Ninguno, no se utiliza ningún relleno. El valor predeterminado es "impar".

  • padlen: int o Ninguno, opcional
    El número de elementos por los cuales x se expande en ambos extremos del eje antes de aplicar el filtro. El valor debe ser menor que x.shape[axis] - 1. padlen=0 significa sin relleno. El valor predeterminado es 3 * max(len(a),len(b)).

  • method: str, opcional
    determina el método de procesamiento de los bordes de la señal, ya sea "pad" o "ráfaga". Cuando el método es "pad", la señal se rellenará; el tipo de relleno está determinado por padtype y padlen, irlen se ignorará. Cuando el método es "ráfaga", se utiliza el método Gustafsson y se ignoran padtype y padlen.

  • irlen
    : int o Ninguno, cuando el método opcional es "Gust", irlen especifica la longitud de la respuesta al impulso del filtro. Si irlen está vacío, no se ignora ninguna parte de la respuesta al impulso. Para señales largas, especificar irlen puede mejorar significativamente el rendimiento del filtro.

valor de retorno:

  • y
    : Salida filtrada con la misma forma que ndarray y x.

3.signal.find_peaks()

Encuentre picos dentro de una señal según los atributos de los picos.

Esta función utiliza una matriz 1-D para encontrar todos los máximos locales mediante una simple comparación de valores adyacentes. Además, puede seleccionar un subconjunto de estos picos especificando condiciones en las propiedades de los picos.


gramática:
scipy.signal.find_peaks(x, height=None, threshold=None, distance=None, prominence=None, width=None, wlen=None, rel_height=0.5, plateau_size=None)

parámetro:

  • b:(N,) tipo matriz

  • x:
    Una señal con un valor pico en la secuencia.

  • height:número o ndarray o secuencia,
    altura de pico requerida opcional. Puede ser un número, Ninguno, una matriz que coincida con x o una secuencia de 2 elementos del primero. El primer elemento siempre se interpreta como la altura mínima y el segundo elemento (si se proporciona) se interpreta como la altura máxima.

  • threshold: número o ndarray o secuencia, opcional
    El umbral de pico deseado, la distancia vertical a sus muestras adyacentes. Puede ser un número, Ninguno, una matriz que coincida con x o una secuencia de 2 elementos del primero. El primer elemento siempre se interpreta como el umbral mínimo y el segundo elemento (si se proporciona) se interpreta como el umbral máximo.

  • distance: número, opcional
    La distancia horizontal mínima requerida entre picos adyacentes (>= 1). Los picos más pequeños se eliminan primero hasta que todos los picos restantes cumplan los criterios.

  • prominence:número o ndarray o secuencia,
    prominencia de pico requerida opcional. Puede ser un número, Ninguno, una matriz que coincida con x o una secuencia de 2 elementos del primero. El primer elemento siempre se interpreta como la protuberancia mínima y el segundo elemento (si se proporciona) se interpreta como la protuberancia máxima.

  • width:número o ndarray o secuencia,
    ancho de pico de muestra requerido opcional. Puede ser un número, Ninguno, una matriz que coincida con x o una secuencia de 2 elementos del primero. El primer elemento siempre se interpreta como el ancho mínimo y el segundo elemento (si se proporciona) se interpreta como el ancho máximo.

  • wlen:int, opcional
    Se usa para calcular la prominencia máxima, por lo que solo se usará si se proporcionan parámetros de prominencia o ancho. Consulte el parámetro wlen en peak_prominences para obtener una descripción detallada de su función.

  • rel_height:float, opcional
    se usa para calcular el ancho del pico, por lo que solo se usará cuando se proporcione el ancho. Para conocer la función del parámetro rel_height, consulte el parámetro rel_height en peak_widths.

  • plateau_size:número o ndarray o secuencia, opcional
    El tamaño superior plano del pico de muestra requerido. Puede ser un número, Ninguno, una matriz que coincida con x o una secuencia de 2 elementos del primero. El primer elemento siempre se interpreta como el valor mínimo y el segundo elemento (si se proporciona) se interpreta como el tamaño máximo requerido de superficie plana.

valor de retorno:

  • peaks:Indicador de picos en ndarray
    x que satisfacen todas las condiciones dadas.

  • properties:dict
    contiene un diccionario que devuelve atributos máximos que se calculan como resultados intermedios al evaluar las condiciones especificadas.


Árbitro.

  1. Tutorial Scipy - Tutorial para principiantes
  2. Procesamiento de señales (scipy.signal)
  3. mantequilla.scipy.signal
  4. scipy.signal.filtfilt
  5. scipy.signal.find_peaks

Supongo que te gusta

Origin blog.csdn.net/weixin_36815313/article/details/132138482
Recomendado
Clasificación