Questa è una continuazione di una domanda precedente .
Sto cercando di analizzare i suoni della respirazione e del russare, e mentre ora riesco a rilevare abbastanza bene il russare, la respirazione è una sfida più grande.
Ho imparato che se interrompo la gamma di frequenza analizzata (circa 4KHz, campionata a circa 8KHz, con una dimensione dei fotogrammi di 1024) in circa 5 subrange, molto spesso uno dei subrange mostra una buona sensibilità (usando la differenza spettrale) che è sepolta nel rumore nella gamma complessiva. Il trucco è determinare quale sottofondo di "fidarsi" quando.
Presumibilmente il subrange "affidabile" mostrerebbe una variabilità a una velocità compresa tra circa 2Hz e 0,05Hz, mentre i subrange "cattivi" si comporterebbero in modo più casuale, con la maggior parte delle loro variazioni a intervalli più brevi.
Potrei mettere insieme una sorta di algoritmo per appianare i valori con una risoluzione inferiore al secondo e quindi calcolare la variabilità su intervalli più lunghi, ma mi chiedo se non ci sia un algoritmo "fisso" per questo tipo di cose - qualcosa con forse un briciolo di teoria dietro di esso?
Eventuali suggerimenti?
[Nota: mi rendo conto che si potrebbe, in teoria, usare una FFT per estrarre queste informazioni, ma sembra come usare una mazza da baseball per uccidere una pulce. Forse qualcosa di un po 'più leggero?]
Inserito il:
In un certo senso (per usare un'analogia) sto cercando di rilevare un segnale "baseband" in una trasmissione RF (solo la "RF" è frequenze audio e la "baseband" è inferiore a 8Hz). E, in un certo senso, la "RF" è "spettro diffuso" - i suoni che voglio rilevare tendono a generare molte armoniche e / o hanno diversi componenti di frequenza separati, quindi se una banda dello spettro è troppo rumorosa posso probabilmente ne farò uso un altro. L'obiettivo è fondamentalmente determinare alcune metriche simili a SNR per le varie bande di frequenza, supponendo che la maggior parte del "rumore" sia> 2Hz e il mio segnale sia inferiore a 2Hz.
Ho come input per questo algoritmo le ampiezze grezze (somma delle ampiezze FFT a tutte le frequenze incluse) per ciascuna banda, misurate a intervalli di 8Hz.
(Va notato che, sebbene non abbia eseguito alcuna misurazione SNR formale, l'SNR complessivo attraverso lo spettro elaborato sembra essere frequentemente vicino o inferiore a 1,0 - se si osserva visivamente l'inviluppo del suono in uno strumento come Audacity nessuna modulazione del l'inviluppo è evidente (anche se l'orecchio può discernere chiaramente i suoni della respirazione). Ecco perché è necessario analizzare le bande per trovare quelli con SNR decente.)