Como determinar a "variabilidade" em uma faixa de frequência?


8

Esta é uma continuação de uma pergunta anterior .

Estou tentando analisar os sons da respiração e do ronco e, embora eu possa detectar muito bem o ronco agora, a respiração é um desafio maior.

Aprendi que se eu quebrar a faixa de frequência analisada (cerca de 4KHz, amostrada em cerca de 8KHz, com um tamanho de quadro de 1024) em cerca de 5 subfaixas, muitas vezes uma das subfaixas exibe uma boa sensibilidade (usando diferença espectral) enterrada no ruído na faixa geral. O truque é determinar em qual subrange "confiar" quando.

Presumivelmente, o subintervalo "confiável" exibirá variabilidade a uma taxa entre cerca de 2Hz e 0,05Hz, enquanto os subfaixas "ruins" se comportariam de maneira mais aleatória, com a maior parte de sua variação em intervalos mais curtos.

Eu poderia criar algum tipo de algoritmo para suavizar os valores em uma resolução de segundo e depois calcular a variabilidade em intervalos mais longos, mas me pergunto se não existe um algoritmo "fixo" para esse tipo de coisa - algo com talvez um pouco de teoria por trás disso?

Alguma sugestão?

[Nota: Eu sei que, em teoria, é possível usar um FFT para extrair essas informações, mas isso parece usar um taco de beisebol para matar uma pulga. Talvez algo um pouco mais leve?]

Adicionado:

De certa forma (para usar uma analogia), estou tentando detectar um sinal de "banda base" em uma transmissão de RF (apenas o "RF" é frequências de áudio e a "banda de base" está abaixo de 8Hz). E, de certa forma, o "RF" é "espectro de espalhamento" - os sons que eu quero detectar tendem a gerar muitos harmônicos e / ou têm vários componentes de frequência separados; portanto, se uma banda do espectro é muito barulhenta, posso provavelmente faça uso de outro. O objetivo é determinar basicamente algumas métricas semelhantes ao SNR para as várias bandas de frequência, supondo que a maioria dos "ruídos" seja> 2Hz e meu sinal seja menor que 2Hz.

Tenho como entrada neste algoritmo as amplitudes brutas (soma das amplitudes de FFT em todas as frequências incluídas) para cada banda, medidas em intervalos de 8Hz.

(Deve-se observar que, embora eu não tenha feito nenhuma medição formal do SNR, o SNR geral em todo o espectro processado parece estar freqüentemente próximo ou abaixo de 1,0 - se você observar visualmente o envelope sonoro em uma ferramenta como o Audacity, nenhuma modulação do o envelope é perceptível (mesmo que o ouvido possa discernir claramente os sons da respiração), e é por isso que é necessário analisar as faixas para encontrar pessoas com SNR decente.)


Por variabilidade, você quer dizer no tempo ou nas frequências?
Phonon

Variabilidade ao longo do tempo. A uma taxa entre aproximadamente 0,05Hz e 2Hz, ignorando a variabilidade em intervalos maiores ou menores.
Daniel R Hicks

11
@DanielRHicks O que estamos tentando detectar exatamente aqui? Quero ter certeza de que entendi as perguntas. Estou tentando quantificar os recursos que você deseja medir primeiro.
Spacey

Veja os detalhes adicionados.
Daniel R Hicks

Respostas:


4

Daniel,

Ao reler sua pergunta, parece que o que aprendi a ser conhecido como 'Largura de banda de Gabor "pode ​​ser útil nesse caso, para você tentar medir a' variabilidade espectral '. (Dilip forneceu uma boa resposta para minha pergunta sobre momentos espectrais aqui).

Quando eu a estudei mais, a largura de banda de Gabor parece realmente ser apenas uma medida de quão 'espalhado' o espectro é a partir de sua média. (Daí a manipulação dos momentos).

Dê uma olhada e veja o que você acha.



1

O que você precisa parece muito maior que uma pulga. Portanto, talvez você precise ir na direção oposta e fazer mais do que apenas uma FFT. Talvez análise de cepstro de baixa frequência ou cepstral para encontrar sua frequência "exiter".


Sim, parece que vale a pena investigar (ou devo dizer otni?).
Daniel R Hicks #

Acho que não estou vendo uma maneira óbvia de aplicar "cepstrum" aos meus dados para analisar intervalos de tempo maiores que o intervalo de quadros.
Daniel R Hicks

1

X(m,n)

Aqui está o que eu sugiro:

Para cada n:

  • rn(l)X(:,n)
  • rn(l)

Escolha a sub-banda com o maior pico de autocorrelação (= o mais "achatado").

Medidas de pico para observar:

  • maxlLrn(l)rn(0)
  • curtose
  • razão da média geométrica para a aritmética

Esse tipo de métrica é usado, por exemplo, para distinguir fala sonora / sonora.


Você pode, por favor, elaborar qual valor a média geométrica sobre a média aritmática atribui? Além disso, quando você menciona o máximo da autocorrelação normalizada sobre a autocorrelação em tau = 0, por que isso é uma figura de mérito?
Spacey
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.