Newsgroup: it.hobby.elettronica.digitale
Titolo: Riconoscere breve pattern audio con microcontrollore

Ciao
 
Diciamo che devo riconoscere una specie di ...battito cardiaco in mezzo a  
un pò di rumore
e che posso campionarlo in una situazione di silenzio che però in futuro  
non ci sarà sempre
 
Si tratta di 200 campioni a 1 KHz,per un suono che è praticamente tutto  
sotto i 100 Hz
 
Se lo sento a orecchio,io che sono ..intelligente..si insomma...il  
militare me l'hanno fatto fare..
lo distinguo senza dubbi,che sia un pò più forte,un pò più coperto ecc...
Ma con un microcontrollere ARM Cortex a 96 MHz,con FPU (STM32F410)ce la  
faccio in meno di 1 ms?
 
quali sono le funzioni ,le branche dell'informatica ,che mi permettono di  
dire...si..è lui perchè somiglia al 90% al pattern di riferimento?
 
Mi parlano di convoluzione...correlazione..FFT ecc...ma non ho ancora  
capito come usarle in questo caso
 
grazie
 
---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
 
 

 al 90% al pattern di riferimento?
 
Si chiama "signal detection theory", ma a quanto ricordo è
veramente un campo molto difficile di cui non so quasi
nulla, solo una volta mi è capitato un problema in qualche
modo simile; comunque, dato che hai risorse limitate di
calcolo un approccio generale non si può tentare. Bisogna
esaminare i campioni che per fortuna hai se ho letto bene,
e farne gli spettri ed eventualmente spettrogrammi. Dal
rumore (se è gaussiano è facile trovare la soglia)
emergerà, si spera qualche "pattern" e si tratta di capire
come riconoscere quello. Se lo spettro ha dei picchi di
qualche genere abbastanza distanti è abbastanza facile
riconoscerli e implementare la cosa. Se sono vicini o
peggio lo spettro somiglia più a un saliscendi la cosa
diventa un po' più complicata. Chiaramente se sta appena
sopra il rumore è un'impresa suppongo quasi disperata per
un micro. Altra possibilità è che ci siano picchi a
grappoli e la materia che potrebbe venirti utile è la
"cluster analysis" che si occupa proprio di questo, ma
spero non si renda necessaria perché sono algoritmi che
non so se si possono far entrare in un microcontrollore.
 
Credo che la cosa migliore sia fare tutti gli spettri che
puoi dai campioni che hai ed esaminarli, sperando di
trovare una procedura ad hoc per quel tipo di segnale che
sia contemporaneamente compatibile con la velocità che ti
occorre. OK, le banalità delle 1.00 di mattina ma altro
non mi viene in mente, e non ci posso dormire sopra perché
sono insonne :D
 
-- 
"Pompieri? Presto, venite, la mia casa sta bruciando"
"OK, quando ha avuto origine il fuoco?"
"Nel paleolitico, però sbrigatevi"
 


farò sapere...intanto grazie
 
 

 capito come usarle in questo caso
 
Vedi qua:
http://www.pmoroni.it/ita/bioingegneria/appunti-di-ingegneria-biomedica-elaborazione-di-segnali-biomedici/
 
 
Ciao
 
Flavio
 
 
-- 
Indirizzo email non valido, no risposte private grazie.


davvero molto utile ,grazie
 
-- 
Creato con il client email di Opera: 
http://www.opera.com/mail/
 



https://github.com/spotify/echoprint-server
 
 
il più interessante, che fa riferimento a più sourcecode è 
https://musicbrainz.org/doc/Fingerprinting
 
ma non ho guardato se sono già in C o altri linguaggi.
 
https://acoustid.org/
 
 
https://github.com/motiejus/SoundPatty
 
 
in 1 ms non credo, comunque. la FPU inoltre non credo ti serva, meglio forse lavorare direttamente sui 32 bit unsigned, per un confronto. sennò perde altro tempo.
 
quanto è "una specie di battito cardiaco"? è proprio un battito? qualche cosa per riconoscere il complesso PQRST c'è a giro.
 
io proverei ad usare parte di un codice sorgente di un oscilloscopio. qualcuno implementa riconoscimenti di pattern.

 ha  
scritto:

grazie

 pattern.
 
Mi sa che molto poco di tutto questo può entrare in un
micro con le richieste di velocità che ha. Credo che
l'unico modo sia come dicevo, quello di vedere se è
possibile caratterizzare il pattern specifico e
costruirgli l'algoritmo intorno. Ovvero, sfruttare qualche
caratteristica specifica del segnale o nel dominio del
tempo o con lo spettro.
