Scipy Encontre picos

Scipy Encontre picos

A linguagem de programação Python é uma linguagem de programação de alto nível que oferece uma ampla gama de funções úteis para todos os tipos de cálculos matemáticos, estatísticos e científicos. Podemos executar qualquer função simples e complexa usando as funções e métodos das bibliotecas Python. Este guia lida com a função scipy find_peaks () para análise de processamento de sinal. Mais especificamente, este guia se concentra em como calcular e identificar os picos incorporados em um sinal.

O que é coceiro encontrar picos?

A biblioteca scipy oferece uma função find_peaks () a ser usada para encontrar os máximos, mínimos ou pico de um sinal. A função find_peaks () é usada com os sinais para analisá -los. É usado para encontrar o pico, os mínimos ou os máximos do sinal de uma função matemática. Encontra os picos dentro dos sinais fornecidos com base nas propriedades de pico. Ao comparar os valores dos valores próximos, essa função cipy analisa os dados na forma de uma matriz unidimensional para identificar todos os máximos locais. Vamos entender a sintaxe da função find_peaks () e depois passar para a seção Exemplo para saber como a função find_peaks () funciona em um programa Python.

Sintaxe da função Scipy Find Peaks

Estamos prestes a explorar a função find_peaks () fornecida pela biblioteca scipy e seu pacote de sinal. Como discutimos anteriormente, a função find_peaks () é usada para processar um sinal específico para extrair a intensidade ou a posição dos múltiplos picos de sinal. Veja a sintaxe da seguinte função:


O parâmetro "pico" é usado para definir o sinal com picos. O parâmetro "altura" é usado para definir a altura dos picos. O parâmetro "limiar" é um ndarray ou apenas um número que define o limite de picos. O parâmetro "distância" é usado para definir a distância horizontal mínima entre os picos vizinhos. O parâmetro de "destaque" é usado para definir a proeminência dos picos. O parâmetro de "largura" define a largura dos picos. O parâmetro "wlen" é usado para calcular as proeminências do pico. O parâmetro "rel_height" é usado para calcular a largura dos picos. Por fim, o parâmetro "platau_size" é usado para definir o topo plano dos picos. A função find_peaks () retorna um ndarray que contém todos os índices de pico que satisfazem as condições fornecidas junto com suas propriedades. Agora, vamos explorar alguns exemplos úteis de programação para aprender como implementar a função find_peaks.

Exemplo 1:

Da economia às ciências dos dados e à eletrônica, trabalhar com os picos de sinais tem significado fundamental em todos os campos proeminentes. Como discutido anteriormente, a descoberta de pico não é apenas encontrar o pico de um sinal eletrônico, mas os mínimos ou máximos de qualquer função matemática. Como sabemos a importância de ter uma função confiável e rápida que nos ajuda a encontrar o valor e a posição dos mínimos e máximos, vamos usar a função find_peaks () para computação automática e rápida. Considere o programa de amostra no seguinte snippet de código:

importar numpy como np
importar matplotlib.pyplot como plt
de Scipy.IMPRESSÃO DE IMPRESSÃO DE SINAL
#****** Declaração de dados ********
x = np.Linspace (0, 100, 200)
y = x*np.aleatório.Randn (200) ** 2
#****** Encontrar o pico ******
picos = find_peaks (y, altura = 2, limiar = 2, distância = 2)
h = picos [1] ['pico_heights']
pp = x [picos [0]]
#****** Minima descobrindo ******
y2 = y*-2
mínimos = find_peaks (y2)
min_pos = x [mínimos [0]]
min_height = y2 [mínimos [0]]
#****** plotagem de dados ********
plt.trama (x, y)
plt.dispersão (pp, h, color = 'r', etiqueta = 'maxima')
plt.dispersão (min_pos, min_height*-1, etiqueta = 'mínima')
plt.lenda()
plt.grade()
plt.mostrar()

Três bibliotecas são importadas para o programa - Numpy, Scipy e Matplotlib. A biblioteca Numpy é usada para declarar as matrizes Numpy. A biblioteca scipy é usada para chamar a função find_peaks (). E a biblioteca Matplotlib é usada para plotar o gráfico.

Como você pode ver, agrupamos as linhas de código de acordo com a função que eles estão desempenhando. Primeiro, temos a seção "Declaração de dados", onde definimos os dados da função find_peaks (). A segunda seção é "achado de pico", onde usamos a função find_peaks (), passando os dados declarados recentemente.

A terceira seção do programa é "Minimaning Acoce", onde calculamos os mínimos e os máximos dos dados fornecidos. A última seção é "plotagem de dados", onde plotamos os dados usando o PLT.plot () e PLT.Show () Funções. Para ver o gráfico gerado pelo programa fornecido, consulte a seguinte saída gerada:

Exemplo 2:

Trabalhar com sinais não é apenas importante para o campo de ciência de dados ou eletrônicos, mas também pode ser usado no campo médico. O processamento eletrônico de sinal é mais comumente usado e tem maior importância no campo médico do que em qualquer outro campo. Neste exemplo, exploraremos a função de eletrocardiograma para interpretar um sinal eletrônico. Consulte o código de amostra no seguinte snippet de código:

importar matplotlib.pyplot como plt
de Scipy.IMPRESSÃO DE IMPRESSÃO DE SINAL
de Scipy.Misc importar eletrocardiograma
#****** Encontrar o pico ******
x = eletrocardiograma () [1000: 3000]
picos, _ = find_peaks (x, altura = 1)
#****** plotagem de dados ********
plt.Lote (x)
plt.plotagem (picos, x [picos], "x")
plt.Lote (NP.zeros_like (x), "-", color = "cinza")
plt.mostrar()


A biblioteca Matplotlib está incluída no programa para plotar o gráfico. A biblioteca scipy é usada para chamar o sinal e o pacote misc, para que as funções find_peaks e eletrocardiograma possam ser chamadas do respectivo pacote. Agora, assim como no exemplo anterior, segmentamos o programa em seções. A primeira seção é a seção "Pico de localização", onde usamos as funções find_peaks () e eletrocardiograma () para encontrar os picos do eletrocardiograma gerado. A última seção é a seção "plotagem de dados", onde plotamos o gráfico. Agora, vamos ver o gráfico plotado na seguinte saída:

Exemplo 3:

Vamos passar por outro exemplo para que você possa ver claramente como a função findpeaks () funciona. Considere o código de amostra seguido:

importar numpy como np
do sinal de importação ccepy
importar matplotlib.pyplot como plt
#****** Declaração de dados ********
dados = np.linspace (0, 4 * np.pi, 100)
sig = np.pecado (dados) + 0.4 * np.pecado (1.8 * dados)
#****** Encontrar o pico ******
sp, _ = sinal.find_peaks (sig)
propósitos = sinal.Peak_prominências (SIG, SP) [0]
h = sig [sp] - propósitos
#****** plotagem de dados ********
plt.Lote (SIG)
plt.Lote (SP, Sig [sp], "*")
plt.vlines (x = sp, ymin = h, ymax = sig [sp])
plt.mostrar()


Novamente, o programa é segmentado em seções diferentes, uma vez que cada seção executa uma função diferente. Os dados são declarados na seção "Declaração de dados". A função de achado de pico é executada na seção "Pico de descoberta". Por fim, o gráfico é plotado na seção "plotagem de dados". Agora, vamos verificar o gráfico plotado na seguinte saída:

Conclusão

Este guia lida com o processamento e análise dos sinais usando a função find_peaks (). O find_peaks () é uma função de processamento de sinal definida na biblioteca scipy de python. É usado para encontrar os picos do sinal, máximos e mínimos de qualquer função matemática. Exploramos alguns exemplos simples e complexos para entender como a função find_peaks () pode ser implementada em um programa Python. Focamos especificamente em calcular e encontrar os picos contidos nos dados fornecidos e não em encontrar os máximos ou mínimos dos dados fornecidos.