É habitual corrigir o ganho de uma janela?

9

Considere como a janela Hanning é definida:

0.5 - 0.5 * cos(n*2*Pi/(N-1))

Por essa definição, ele tem um ganho de 0,5, que é simplesmente o valor médio dos coeficientes. Por outro lado, as janelas Flattop, como definidas, têm ganho de unidade, presumivelmente por design.

Parece apropriado escalar a janela de Hanning por um fator de 2, mas nunca vi isso discutido em nenhum lugar. Parece que todas as janelas devem ser dimensionadas para ganho de unidade.

Na prática, as janelas são normalmente corrigidas para obter ganhos? Se não, por que não?

EDITAR:

Como ninguém deu uma resposta, vou elaborar um pouco.

É muito fácil encontrar documentos que relatam o ganho das janelas mais comuns. Mas em nenhum lugar vi alguém se referir à correção do ganho antes de usá-lo para análise espectral. Talvez eu sempre tenha perdido essa afirmação ou todo mundo assuma que a correção por ganho é um requisito óbvio.

Parece senso comum definir o ganho de uma janela como unidade, para que o nível de energia do sinal seja preservado. Além disso, como se pode comparar as várias janelas para precisão de amplitude se uma tem ganho de 0 dB, como um flattop, e a outra possui quase 10 dB de perda, como o Gauss.

O Windows também é amplamente utilizado para o design do filtro FIR. Nesta aplicação, deve ficar claro que o sinal a ser visualizado, um pulso sinc, possui a maior parte de sua energia no centro da janela. Consequentemente, a janela faz pouco para reduzir a energia total do pulso sinc. Portanto, quando usado para o projeto de filtros, não queremos ganho de unidade, mas sim amplitude de pico de unidade, como a maioria das janelas, exceto as de mesa. Algo diferente da amplitude do pico da unidade afetaria o ganho do filtro FIR resultante.

user5108_Dan
fonte
11
Depende da aplicação e de como a janela deve ser aplicada (por exemplo, por multiplicação ou convolução). Alguns tipos comuns de normalização estão escalando para ganho de unidade de CD ou para unidade de energia.
Jason R
Eu estava me referindo à aplicação via multiplicação.
user5108_Dan
2
Devido à vieira, o ganho da janela não é constante em todas as frequências, dependendo da janela. Portanto, qualquer escala depende do tipo de análise que você está fazendo.
precisa saber é o seguinte
Como você chama o ganho de uma janela?
Yves Daoust
2
O ganho de uma janela, como eu a entendo, é o valor médio dos coeficientes (ou seja, Soma / N). Aqui estão dois documentos que usam essa definição, Fred Harris (consulte a tabela 1 para uma comparação dos ganhos de janela) e Max Planck Inst (consulte sua definição e uso de S1). Essa definição parece clara o suficiente se você simplesmente observar o efeito de aplicar uma janela a uma onda senoidal pura.
user5108_Dan

Respostas:

3

Sim, é habitual corrigir o ganho de uma janela, exceto em alguns casos aos quais me refiro posteriormente. (Se você está interessado apenas na amplitude relativa, é claro que não precisa corrigir o ganho.)

Como a janela reduz o ganho do sinal original (domínio do tempo), a amplitude obtida através da FFT precisa ser corrigida. Por exemplo, se você usar a janela Hanning, precisará multiplicar todas as amplitudes por 2 (o recíproco de 0,5). Pelo que entendi, a maioria dos pacotes de software para FFT corrige automaticamente a janela usada.

No entanto, essa correção é boa apenas quando todas as frequências de interesse se distribuem pela janela do domínio do tempo. Por exemplo, suponha que você possua 1024 dados com todos os níveis de sinal de zero, exceto o ponto # 512, que possui um valor de 1 (sinal de impulso). Obviamente, qualquer janela não faz nada com os dados. Portanto, se você corrigir as amplitudes para o ganho da janela (multiplicar por 2), terá uma superestimação da amplitude. Se seus dados 1024 forem zero, exceto o primeiro ponto com o valor 1, todo ponto terá o valor zero após a janela, e você perderá o sinal.

Portanto, se você estiver lidando com sinais aleatórios, com todos os componentes de frequência que se espera que fiquem quase uniformemente ao longo do comprimento do sinal, você precisará (ou deve) corrigir o ganho da janela usada.

J-Matthew
fonte
Obrigado. Foi o que pensei que deveria ser o caso, mas nunca o vi declarado em lugar algum.
user5108_Dan
1

uma maneira de "corrigir o ganho de uma janela" é fazer isso na definição da janela. o que isso significa? corrigindo o ganho onde ? a que frequência? na DC? se você estiver corrigindo o ganho, em CD, de uma janela, significa que todos os coeficientes são adicionados a 1.

n=+w[n]=1

ou

+w(t) dt=1
Robert Bristow-Johnson
fonte
Você está dizendo que o ganho de uma janela é função da frequência? Calculo o ganho de uma janela como a soma do coeficiente dividido por N, a média. Quero que seja 1, não a soma, como você mostrou. Portanto, o fator de correção de ganho para um Hanning é 2. Quando uso janelas com ganho corrigido com um fft, obtenho valores de amplitude corretos. O que quer dizer; todas as janelas que testei apresentam as mesmas amplitudes para cada componente espectral e todas concordam com um fft sem janela. Se eu usar janelas com ganho não corrigido, todas elas apresentarão resultados diferentes e apenas a superfície plana fornecerá os valores de amplitude corretos.
user5108_Dan
"Você está dizendo que o ganho de uma janela é função da frequência?" bem, somente se não é constante com ou se não é constante em . mas se algum deles mudar quando a frequência mudar, então, por definição, o ganho da janela será uma função da frequência. a correção de ganho para a janela Hann pode ser porque, sem ela, o ganho em DC é . F W ( de e j ω ) = Σ n = - w [ n ] e - j ω n ω 2 1
W(f)=w(t)ej2πftdt
f
W(ejω)=n=w[n]ejωn
ω212
precisa saber é o seguinte
Do meu ponto de vista, o ganho da janela Hann é de 1/2 em todas as frequências, não apenas em DC. Em outras palavras, todo componente espectral no fft é 6 dB mais baixo do que deveria ser. Quando uso uma janela plana com ganho de unidade, todos os componentes espectrais estão no nível correto. Eu devo estar fazendo algo completamente errado.
user5108_Dan
não sei como você vê dessa maneira. como você está usando sua janela Hann? Em quais locais do seu sinal original você está aplicando a janela e o que você faz com os dados da janela?
Robert Bristow-Johnson
Eu crio um sinal multi-tom e, em seguida, mostro-o da seguinte forma: N = 1024 sig (n) = 1 + sen (50 * n * 2 * Pi / N) + sin (75 * n * 2 * Pi / N) (n) = 0,5 - 0,5 * cos (n * 2 * Pi / (N-1)) windowed_sig (n) = sig (n) * win (n) Então eu tomo o fft de windowed_sig. Os resultados parecem corretos. É só que os sinais de janela aparecem errados. O erro é 6 dB para uma janela Hann, cerca de 10 dB para um Gauss e 0 dB para um flattop.
user5108_Dan
0

O meio fator normaliza para a amplitude da unidade.

Yves Daoust
fonte
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
jojek
@jojek: não há necessidade de uma explicação mais longa, esta é uma pergunta elementar.
Yves Daoust
Concordo com Yves aqui: a questão parece elementar. E essa resposta certamente indica a falácia da afirmação do questionador By this definition, it has a gain of 0.5.
Peter K.
@ PeterK .: obrigado pelo apoio. Afinal, errei ao responder uma pergunta sem sentido: o "ganho" de uma janela não está definido.
Yves Daoust
11
@PeterK .: obrigado, eu mesmo o faço, dependendo do que o OP responder ao meu pedido de esclarecimento.
Yves Daoust