Sobre o uso de vetores próprios para estimar a frequência fundamental de um sinal, via MUSIC

14

Contexto:

(Isenção de responsabilidade: este não é um problema de comunicação).

Estou tentando estimar a frequência fundamental de um sinal real e periódico. Esse sinal foi construído por meio da filtragem por correspondência de um sinal bruto, ao de um pulso. (o filtro correspondente). O sinal resultante possui as seguintes características:

  • É periódico. (Fundamental é 1 / período), e é isso que estou tentando estimar.

  • Não é estacionário no tempo. Especificamente, as amplitudes dos pulsos periódicos podem variar em amplitude. (por exemplo, um pulso pode ser baixo, enquanto outro é alto, e o próximo baixo novamente e um após esse meio, etc.).

  • Eu acredito que é estacionário em frequência (na medida em que você aceita mudanças de amplitudes, mas não mudanças de banda).

  • Possui distorção harmônica. O que quero dizer aqui é que, (e me corrija se eu estiver errado), mas que os pulsos individuais dentro do sinal não são sinusóides, mas são formas "descoladas", como uma gaussiana, triangular, meia-parábola, etc. .

Eu estou tentando estimar a frequência fundamental deste sinal.

É claro que, às vezes, o sinal bruto não passa de ruído, mas ainda segue o caminho e é filtrado de qualquer maneira. (Mais sobre isso mais tarde).

O que eu tentei:

Agora, estou ciente de uma infinidade de estimadores de frequência fundamentais, como

  1. O método de correlação automática
  2. YIN, e todas as suas dependências
  3. Método FFT.

etc

  • YIN: Eu ainda não tentei o YIN.

  • Método FFT: O método FFT fornecerá todos os harmônicos e fundamentais, mas notei que pode ser complicado, especialmente com esse negócio não estacionário, pois o fundamental nem sempre é o pico mais alto. Muito rapidamente, você tenta descobrir qual dos muitos picos é o fundamental e isso se torna um problema difícil.

  • Autocorrelação: O método de autocorrelação parece se sair melhor que o método FFT, mas ainda é sensível às irregularidades de amplitude do sinal no domínio do tempo. O método de correlação automática mede a distância entre o lobo central e o próximo lobo mais alto. Essa distância corresponde ao fundamental. No entanto, em casos não estacionários, esse lobo secundário pode ser muito baixo e você pode perdê-lo em algum esquema de limiar.

Ocorreu-me então que talvez eu possa usar um método de subespaço como MUSIC para estimar o fundamental. Ao testar isso, descobri que ele realmente fornece resultados muito bons - ele atinge seu pico - de forma robusta - e mesmo em casos não estacionários - em frequências correspondentes ao fundamental do seu sinal. (Defina o número de sinais que você procura como 2 e ele recuperará o fundamental - por exemplo, escolha os 2 vetores próprios mais altos (correspondentes aos valores mais altos dos valores próprios) da matriz de covariância dos sinais, descarte-os e construa o sub-espaço de ruído do restante, projete sua hipótese contra sinusóides complexos, tome o recíproco, e voila, um belo pseudo-espectro).

Perguntas e Problemas:

  1. Dito isto, eu ainda gostaria de entender por que isso funciona melhor.
  2. Em MUSIC, descartamos o subespaço de sinal e usamos o subespaço de ruído. Parece-me que os autovetores do subespaço de sinal são, na verdade, algum tipo de 'melhor ajuste' - eles são, de fato, filtros correspondentes ideais. Então: por que simplesmente não usar diretamente os autovetores do subespaço de sinal? (Eu sei que não é mais MÚSICA, mas por que usar o subespaço de ruído melhor então?)
  3. Por fim, o problema final é que, embora esse método pareça funcionar com muito mais robustez para sinais não estacionários (como definido acima), o problema é que agora estou sempre recebendo uma resposta - mesmo quando não há nada além de ruído no sistema! (Mencionei acima que o sinal filtrado pré-combinado bruto pode ser apenas um ruído branco às vezes, quando você não possui um sinal periódico).

Que maneiras podem existir para combater isso? Eu tentei olhar para os autovalores e há mais 'curvatura' em sua decadência nos casos em que há apenas ruído VS casos em que há um sinal, mas temo que não seja suficientemente robusto.

Bônus:

  1. Quando os autovetores de uma matriz de covariância sinusouds VS outra coisa? O que determina se são ou não sinusóides? Por que eles não são ondas quadradas? Ou inserir sinais de outra forma aqui?
Spacey
fonte
Mohammad- Você pode fazer algumas edições / esclarecimentos? Posso ser um defensor da terminologia, mas é importante para futuros visitantes. Além de 'agradável e limpo', pode-se dizer distorção harmônica. Em vez de repetitivo, você pode dizer periódico. Estacionário pode se referir a estatísticas variáveis ​​no tempo ou espectro variável no tempo. Você pode esclarecer? O método de autocorrelação é um alias para o método Yule-Walker. Quando você diz "número de sinais", isso é sinusóide real ou exponencial complexo? Você pode usar o valor próprio de maior valor? Rank tem outros significados na álgebra linear. Mesmo com 'maior variância' ...
Bryan
1
... (cont) Uma coisa importante (e observarei isso na minha resposta quando você esclarecer) é que o método MUSIC é um método de subespaço de ruído. Portanto, idealmente, os autovetores do subespaço de sinal, aqueles com o maior valor de autovalores, não são utilizados. Além disso, seu sinal é uma soma de sinusóides, se for periódico. Se for periódico, pode ser definido por uma série de Fourier, que é uma soma de sinusóides discretos.
27712 Bryan
@Bryan Desculpe pela demora em voltar (fim de semana prolongado), vou reformular toda a questão em breve e informar você - obrigado!
Spacey
@Bryan Finalmente reformulei o post inteiro, adicionei suas sugestões e também esclareci muito do contexto / problema. Por favor, veja. Por todos os meios, deixe-me saber se posso esclarecer mais alguma coisa.
Spacey
@ Mohammed Você pode discernir se um sinal está presente ou não pela "força" dos autovetores - ou seja, dos autovalores?
Jim Clay

Respostas:

8

A matriz de autocorrelação é diagonalizada por sinusóides quando o processo é estacionário, isso decorre do fato de que o operador de covariância é uma convolução para um processo estacionário. Uma prova mais rigorosa é que que em particular significa que que também é uma função seimidefinida positiva de , portanto, pelo Teorema de Bochner , temos que comprova a reivindicação.

f(t,s)=Cov(X(t),X(s))=Cov(X(t-você),X(s-você))=f(t-você,s-você)
t - s C o v ( X ( s ) , X ( t ) ) = - e i ( s - t ) x d μ ( x )f(t,s)=f(t-s,0 0)t-s
Cov(X(s),X(t))=-eEu(s-t)xdμ(x)

A intuição é que uma matriz de autocorrelação estimada para algum conjunto finito de observações em um sinal se comporta assintoticamente gosta de uma matriz circulante porque a correlação depende apenas das diferenças de tempo, não das posições absolutas e das matrizes circulantes possuem sinusóides discretos como seus autovetores (uma vez que são convolução operadores). Existem muitas provas disso e essa é uma intuição superficial.

O conjunto de funções de autocorrelação diagonalizadas por sinusóides são exatamente aquelas que correspondem a processos estacionários, mas muitas outras funções de autocorrelação serão aproximadamente diagonalizadas por sinusóides durante algum intervalo. Esses processos correspondem àqueles que podem ser aproximados por processos estacionários ao longo de um intervalo. Mais detalhes estão aqui .

Os processos não estacionários gerais podem ter funções de autocorrelação que não precisam ser diagonalizadas por sinusóides.

Os processos estacionários localmente terão um espectro que muda lentamente e / ou um pequeno número de mudanças abruptas e bem espaçadas no espectro. Fala, ruídos de animais, música e muitos outros sons naturais se encaixam nessa descrição. A razão pela qual os algoritmos de identificação do subespaço funcionam, como eu o entendo, é que algumas formas de estacionariedade local (não rigorosa) geralmente se aplicam aos tipos de sinais que analisamos.

Mark S
fonte
μ
@ MarkS Muito obrigado. Tenho alguns acompanhamentos: 1) Com base nisso, podemos dizer que um processo é estacionário na medida em que os vetores próprios de sua matriz de covariância são sinusoidais? Isso pode ser uma espécie de medida de estacionariedade? 2) Você menciona "... e as matrizes circulantes têm sinusóides discretos como seus vetores próprios (uma vez que são operadores de convolução) ..." Não sei ao certo o que isso significa - quais operadores? Você pode esclarecer por favor. 3) Quando você diz "O conjunto de funções de autocorrelação", está falando sobre as linhas da matriz de covariância? Obrigado novamente.
Spacey
@ Mohammad Cheers: 1) Sim, isso pode ser pensado livremente como uma medida de estacionariedade. 2) Uma matriz circulante é formada a partir de todas as permutações cíclicas de um vetor, portanto, multiplicar uma matriz circulante por outro vetor é uma convolução entre esses dois vetores. 3) Uma função de autocorrelação Corr (s, t) é a autocorrelação entre X (s) e X (t) para algum processo aleatório X. Eu chamo de função porque estou querendo lidar simultaneamente com o caso contínuo e discreto. A matriz de autocorrelação de amostra pode ser vista como uma aproximação discreta dessa função.
Mark S
@Emre obrigado por apontar o Wiener – Khinchin_theorem, eu aprendi minha análise de Fourier primeiro em grupos e nunca fui formalmente apresentada a ela em uma classe de processamento de sinais.
Mark S