Como extrair e plotar apenas picos mínimos e máximos de uma matriz, - análise gráfica - Com Matlab ou excel
Estou fazendo análise de vídeo.
A matriz de resultados finais que recebo é algo como:
signal =
Columns 1 through 7
73960 73960 73960 73960 68102 68102 68102
Columns 8 through 14
68102 19187 19187 19187 19187 14664 14664
Columns 15 through 21
14664 14664 13715 13715 13715 13715 30832
Columns 22 through 28
30832 30832 30832 53031 53031 53031 53031
Columns 29 through 35
56897 56897 56897 16104 16104 16104 16104
Columns 36 through 42
15188 15188 15188 15188 13973 13973 13973
Nota: a matriz real que recebo é geralmente 600 +
Então, quando plogo isso, fico com um gráfico muito ruim, então quero filtrar esse array e manter apenas os ** picos máximos e mínimos ** máximos e mínimos locais para que o gráfico tenha ondas mais agradáveis
Existe uma maneira de fazer isso com o MATLA
se não, então posso fazê-lo com o excel? como eu costumo salvar essa matriz em uma folha de excel Como esta
0.1 68102
0.15 19187
0.2 14664
0.25 13715
0.3 30832
0.35 53031
0.4 56897
0.45 16104
0.5 15188
0.55 13973
0.6 21437
0.65 66950
0.7 65356
0.75 22562
0.8 14154
0.85 13938
0.9 20692
0.95 72823
1 69975
1.05 15328
1.1 14494
1.15 13681
1.2 14205
1.25 65278
1.3 63055
1.35 16999
1.4 14050
1.45 14245
Na qual a 1ª coluna é o tempo (eixo y) e a 2ª coluna é a amplitude (eixo x)
Use essa fórmula para contar os máximos locais (graças a brettdj de stackoverflow.com)
=SUMPRODUCT(--(B2:B149>B1:B148),--(B2:B149>B3:B150))
E esta fórmula para contar os mínimos locais
=SUMPRODUCT(--(B2:B149<B1:B148),--(B2:B149<B3:B150))
Mas o que eu preciso é filtrar a matriz para manter somente os máximos locais e os mínimos locais, para que eu possa obter uma curva bem desenhada sem ruíd