Estou desenvolvendo um software que calcula a resposta de um sistema comparando a FFT dos sinais de entrada e saída. Os sinais de entrada e saída são divididos em janelas e, para cada janela, os sinais são subtraídos à mediana e multiplicados por uma função Hann. A resposta do instrumento para essa janela é então a proporção das FFTs dos dados processados.
Eu acredito que o procedimento acima é padrão, embora eu possa estar descrevendo mal. Meu problema vem em como combinar as respostas das várias janelas.
Tanto quanto posso ver, a abordagem correta é calcular a média dos valores complexos em todas as janelas. A amplitude e a resposta de fase são, então, a amplitude e a fase do valor médio complexo em cada frequência:
av_response = sum_windows(response) / n
av_amplitude = sqrt(real(av_response)**2 + imag(av_response)**2)
av_phase = atan2(imag(av_response), real(av_response))
com loops implícitos nos compartimentos de frequência.
Mas me pediram para alterar isso para calcular a amplitude e a fase em cada janela primeiro e depois calcular a média das amplitudes e fases em todas as janelas:
amplitude = sqrt(real(response)**2 + imag(response)**2)
av_amplitude = sum_windows(amplitude) / n
phase = atan2(imag(response), real(response))
av_phase = sum_windows(phase) / n
Argumentei que isso está incorreto porque os ângulos médios estão "simplesmente errados" - a média de 0 e 360 graus é 180, por exemplo, mas as pessoas com quem estou trabalhando responderam dizendo "OK, apenas exibiremos amplitude".
Então, minhas perguntas são:
- Estou correto ao pensar que a segunda abordagem também é geralmente incorreta para amplitudes?
- Em caso afirmativo, existem exceções que possam ser relevantes e que possam explicar por que as pessoas com quem estou trabalhando preferem o segundo método? Por exemplo, parece que as duas abordagens concordam quando o ruído se torna pequeno; talvez essa seja uma aproximação aceita para o baixo ruído?
- Se a segunda abordagem estiver incorreta, existem referências autorizadas e convincentes que eu possa usar para mostrar isso?
- Se a segunda abordagem estiver incorreta, existem exemplos bons e fáceis de entender que mostrem isso para amplitude (como a média de 0 e 360 graus faz para a fase)?
- Alternativamente, se eu estou errada, o que seria um bom livro para me educar-me melhor?
Tentei argumentar que a média de -1 1 1 -1 1 -1 -1 deve ser zero em vez de 1, mas isso não convence. E embora eu ache que poderia, com o tempo, construir um argumento baseado na estimativa da máxima probabilidade, dado um modelo de ruído específico, não é o tipo de raciocínio que as pessoas com quem estou trabalhando ouçam. Portanto, se não estou errado, preciso de um argumento poderoso da autoridade ou de uma demonstração "óbvia".
[Tentei adicionar mais tags, mas não consigo encontrar as relevantes e não consigo definir novas como um novo usuário - desculpe]
fonte
Respostas:
A estimativa da função de transferência geralmente é implementada de maneira ligeiramente diferente do método que você descreve.
Seu método calcula
Uma implementação mais típica calculará a densidade espectral cruzada de x e y dividida pela densidade espectral de potência de x:
Estimação incoerente
Seu empregador sugeriu que você estimasse a função de transferência usando
Isso funcionará , mas tem duas grandes desvantagens:
Seu método e o método que descrevi contornam esses problemas usando uma média coerente .
Referências
A idéia geral de usar segmentos médios sobrepostos para calcular densidades espectrais de potência é conhecida como método de Welch . Acredito que a extensão de usar isso para estimar as funções de transferência também seja conhecida como método de Welch, embora não tenha certeza se isso é mencionado no artigo de Welch. Consultar o artigo de Welch pode ser um recurso valioso. Uma monografia útil sobre o assunto é o livro de Bendat e Piersol, Random Data: Analysis and Measurement Procedures .
Validação
Para validar seu software, sugiro aplicar vários casos de teste, nos quais você gera ruído branco gaussiano e o alimenta através de um filtro digital com uma função de transferência conhecida. Alimente as entradas e saídas em sua rotina de estimativa da função de transferência e verifique se a estimativa converge para o valor conhecido da função de transferência.
fonte
Bem-vindo ao processamento de sinais!
Você está absolutamente correto. Você não pode simplesmente média de magnitudes e fases da DFT separadamente, especialmente fases. Aqui está uma demonstração simples:
Nesse caso,
Além disso,
Agora, para fazer o que você está tentando fazer, sugiro o seguinte. Teoricamente, você pode encontrar uma resposta de impulso de um sistema dividindo o DFT da saída pelo DFT da entrada. No entanto, na presença de ruído, você obterá resultados muito estranhos. Uma maneira um pouco melhor de fazer isso seria usar a estimativa de resposta de impulso FFT de canal duplo, que é a seguinte (derivação não fornecida aqui, mas você pode encontrá-la online).
fonte
Essa é uma diferença entre a média coerente e incoerente dos espectros de FFT. A média coerente tem mais probabilidade de rejeitar ruídos aleatórios na análise. Incoerente tem mais probabilidade de acentuar magnitudes de ruído aleatórias. Qual destes é mais importante para o seu relatório de resultados?
fonte