Resultados estranhos da transformação fourier de sinal desconhecido, o que estou fazendo de errado?

7

Faz muito tempo desde que estudei engenharia, por favor, perdoe meus erros.

Coletei dados de um acelerômetro digital. É amostrada a 20 hz e depois colapsada em épocas de 1 segundo. Os dados são então filtrados para remover o ruído. O sistema produz 0 em repouso, muito mais durante a atividade.

Estou olhando para a transformada de Fourier do sinal, 1024 amostras, amostradas uma vez por segundo. Eu estou vendo isso:insira a descrição da imagem aqui

Aqui está um gráfico real-imaginário dos resultados reais-imaginários da transformação de Fourier. insira a descrição da imagem aqui

O sinal parece ser uma hélice no domínio da frequência. O sistema parece oscilar em torno de algum ciclo limite no domínio da frequência.

Isso é possível? A transformação de Fourier está completamente errada para o sinal digital? Deve usar apenas o DFT para esse tipo de análise? O tamanho da minha janela está errado? Estou vendo o alias devido ao tamanho incorreto da janela ?

Faz alguns anos desde a minha última aula de engenharia, e eu realmente aprecio qualquer ajuda sobre o assunto. Eu tenho três livros sobre engenharia, análise de sinais e transformações, mas leva tempo para esse tipo de conhecimento voltar para mim.

Alex Stone
fonte
Não olhei para isso de perto, mas minha reação imediata ao ver as parcelas é que você tem um aliasing em andamento.
Não, a transformação de Fourier não está errada para sinais digitais. Sim, você só pode usar o DFT com sinais discretos.
endolith 25/10
Esse gráfico de aceleração ao longo do tempo se parece com o que você espera?
endolith 25/10
O gráfico do acelerômetro parece bom. Eu verifiquei duas vezes e o que estou plotando é a taxa de mudança de aceleração acima de uma certa média móvel. Funciona como esperado. A aceleração está presente por um breve momento quando o sensor é tocado e depois desaparece.
Alex Stone

Respostas:

7

Meu palpite: nada para ver aqui. Siga em frente.

Você menciona que "o sinal parece ser uma hélice no [domínio] da frequência". Afirmo que o que realmente é essa hélice é um exponencial complexo. E não há nada de errado nisso, porque exponenciais complexas são o que você obtém quando você atrasa um sinal: . O padrão de hélice reflete simplesmente que a maior parte da potência do sinal que você está adquirindo não está localizada em . (E não deveria estar lá de qualquer maneira!)f(xa)f^(ξ)e2πiaξT=0

Observando os olhos, o período de oscilação no gráfico de frequência parece ser ~ 28 amostras. A uma taxa de amostragem de 20hz, se o que estou dizendo for verdade, a maior parte da energia no seu sinal no domínio do tempo deve ser centrada aproximadamente em torno de segundos. Eu estava perto?t2820=1.4

O verdadeiro problema aqui provavelmente será seus enredos. Parece que você está plotando saídas DFT reais / imag brutas. Não faça isso. Em vez disso, calcule magnitude / fase a partir de valores reais / imag e plote isso.

rtollert
fonte
11
Obrigado ! Limpei a hélice e ela oscila 25 vezes por segundo . Se eu começar a amostrar o sinal em 25 hz, obteria a maior parte do meu sinal em 1 segundo de época?
Alex Stone
Ouvi dizer que as parcelas parecem estranhas. Quando faço FT simples com uma onda senoidal ou uma soma de ondas senoidais, obtenho picos na frequência fundamental, como esperado. Quando tento fazer o mesmo com os dados que obtive, estou obtendo resultados estranhos como este. Vou dar uma olhada na magnitude das caixas.
Alex Stone
11
Esse gráfico de FFT é bastante normal. Quando você tem dados no domínio do tempo que tem um grande pico em um instante e é próximo de zero em outro lugar, faça a FFT nesses dados, então você deve obter esse padrão de hélice (exponencial complexo) no gráfico de frequência.
David Cary
3

Possíveis iniciantes de pensamento:

Certifique-se de que a entrada do ADC seja filtrada com passa-baixa até bem abaixo da metade da taxa de amostragem para evitar aliases. Na amostra de 20 Hz, você precisa de um filtro passa-baixo de corte infinito "porta do celeiro" a 10 Hz ou de algo real um pouco mais baixo. A Folha 21 tem uma sensação de componentes alternativos, mas talvez não.

Amostras de 1 segundo com uma frequência de corte abaixo de 10 Hz fornecem apenas algumas amostras. Eu posso estar totalmente perdendo o que você está realmente fazendo.

Pode ser necessário fazer janelas para lidar com outros ciclos de formas de onda completos incluídos na janela de amostra. Para poucas amostras e componentes de frequência que possuem partes arbitrárias de um ciclo incluídas em uma passagem FFT, você pode gerar componentes fortes e inexistentes.

A FFT deve lidar com o ruído na banda de passagem. Sua "filtragem de ruído" também pode ser uma filtragem de dados. Você precisa de um filtro de taxa Nyquist como acima, mas qualquer coisa na banda passante restante é um sinal potencialmente legítimo.

Russell McMahon
fonte
2
Ele disse "acelerômetro digital", que implica um acelerômetro com ADC embutido e amostragem com relógio automático (por exemplo, ADXL345). Esse acelerômetro provavelmente possui filtros anti-aliasing embutidos.
markrages
Sim, espero que o acelerômetro tenha filtros anti-aliasing, mas o OP precisa filtrar novamente, antes de fazer o "colapso em épocas de 1 segundo", para obter um sinal que faça sentido.
David Cary
2

O que você está vendo é o fato de que sua janela de "época" de 1 segundo não está sincronizada com seus dados. A fase dos resultados da FFT é relativa à borda da janela e, portanto, girará à medida que a borda da janela se move para diferentes relações de fase com o seu sinal.

Se você realmente se importa com a fase ou fase relativa, bloqueie o deslocamento da janela para o período do seu sinal. Se você não se importa com a fase, calcule a magnitude do resultado complexo e use-o.

hotpaw2
fonte
Isso faz sentido. a janela atual desliza com os dados. Você tem alguma sugestão sobre se devo aumentar ou diminuir minha janela?
Alex Stone