Como detectar o pico no MATLAB

MATLAB é um pacote de software técnico que pode ser usado para processamento e análise de sinais. Um procedimento comum na análise de sinal é a detecção de pico, ou localização de máximos locais - valores maiores do que pontos de dados adjacentes - em um sinal ruidoso. Normalmente é necessário limitar a detecção de pico a máximos locais de uma certa largura - duração quando o sinal está no domínio do tempo - bem como uma certa altura ou magnitude.

Passo 1

Defina uma fonte de dados importando dados para o MATLAB. Por exemplo, crie uma onda senoidal com ruído aleatório:

meu_sinal = sin (0: 0,1: 10) + rand (1.101);

Passo 2

Encontre picos em seu sinal usando o método de interpolação quadrática de "findpeaks ()":

[pico_valor, pico_local] = encontrarpicos (meu_sinal);

etapa 3

Pesquise picos de altura mínima usando o parâmetro "minpeakheight". A altura é um escalar com valor real que se refere ao valor mínimo de dados dos picos permitidos:

[peak_value, peak_location] = findpeaks (my_signal, 'minpeakheight', 2,5);

Passo 4

Pesquise picos separados por uma distância mínima usando o parâmetro "minpeakdistance". O valor é o número mínimo de índices entre os picos no vetor "meu_sinal" e deve ser um número inteiro:

[pico_valor, pico_localização] = encontrarpicos (meu_sinal, 'minpeakdistance', 5);

Etapa 5

Pesquise apenas picos acima de um certo limite usando o parâmetro "limite". Este é um escalar com valor real que se refere à diferença mínima permitida entre o pico e os pontos de dados adjacentes:

[pico_valor, pico_localização] = findpeaks (meu_sinal, 'limiar', 0,5);

Etapa 6

Encontre apenas um determinado número de picos usando o parâmetro "npeaks". O valor deve ser um número inteiro:

[peak_value, peak_location] = findpeaks (my_signal, 'npeaks', 5);

Classifique a lista de picos retornada usando o parâmetro "sortstr". Os valores permitidos são "ascend", "descend" e "none":

[peak_value, peak_location] = findpeaks (my_signal, 'sortstr', 'ascend');