Determinando a “brancura” do ruído

14

Como se quantifica quão "branco" é algum ruído? Existem medidas estatísticas ou quaisquer outras medidas (FFTs, por exemplo) que possam quantificar a proximidade do ruído branco de uma amostra específica?

Kitchi
fonte
3
Você está interessado em sugestões sobre como comparar diferentes fontes / sinais de ruído ou está procurando uma métrica "padrão do setor" que se aplique à quantidade de "cores" em uma fonte de ruído? Não conheço uma métrica geral que se aplique, mas é possível comparar a quantidade de coloração observando a distribuição de potência do ruído em uma FFT ou PSD (mais plana = mais branca) ou você pode comparar os fucitons de autocorrelação (mais estreitos = mais lisos).
usar o seguinte comando
Se bem entendi, você está procurando uma calculadora de caixa preta automática de 'brancura', correto?
Spacey
1
+1 para calcular a densidade espectral de potência da fonte. Para o registro, eu gostaria de acrescentar que o ruído branco não pode ser amostrado na prática, pois seu PSD é plano em -∞ <f <∞.
Serge
@ Mohammad - Não é necessariamente uma caixa preta para calcular. Só estou curioso para saber se existe um estimador matemático de brancura.
Kitchi
1
@BruceZenone - Para uma amostra real de dados, como apontou Serge, o PSD nunca será completamente plano, não é? Mas ainda estou supondo que quanto mais plano, mais se aproxima de ser "verdadeiro" ruído branco.
Kitchi

Respostas:

12

Você pode formar um teste estatístico, com base na autocorrelação da sequência potencialmente branca. O Manual de processamento de sinal digital sugere o seguinte.

insira a descrição da imagem aqui

Isso pode ser implementado no scilab como abaixo.

Executando esta função em duas seqüências de ruído: uma de ruído branco e uma de ruído branco levemente filtrada, o resultado da plotagem a seguir. O script para geração de cada realização das seqüências de ruído está no final.

insira a descrição da imagem aqui

A média da estatística para o ruído branco é 9,79; a média da estatística para o ruído filtrado é 343,3.

Olhando para uma mesa qui-quadrado para 10 graus de liberdade, obtemos:

insira a descrição da imagem aqui

p=0,01


function R = whiteness_test(x,m)
    N = length(x);
    XC = xcorr(x);
    len = length(XC);
    lags = len/2+1 + [1:m];
    R = N*sum(XC(lags).^2)/XC(len/2+1).^2;
 endfunction

X = rand(1,1000,'normal');
Y = filter(1,[1 -0.5],X)
R = [R; whiteness_test(X,10)];
R2 = [R2; whiteness_test(Y,10)];
Peter K.
fonte
não sou um grande estatístico ... Mas tenho uma preocupação com a validade geral do teste mencionado acima para processos de ruído branco não gaussiano: Até onde eu entendo, o ruído branco significa apenas que não há correlação no tempo e, portanto, a autocorrelação é um impulso com 0 atraso. White não significa necessariamente que as amplitudes são normalmente distribuídas, o que o teste assume ... Portanto, até onde eu entendi, o teste é válido para ruído gaussiano branco (porque a soma das distribuições gaussianas ao quadrado é qui-quadrado) e não para ruído branco geral? Estou certo ou há wr nada
Fabian
@ Fabian: Sim e não. Você está correto, pois o teste assume que os valores de autocorrelação são gaussianos. Se o ruído original é praticamente qualquer distribuição, o teorema do limite central significa que a distribuição das estimativas de autocorrelação será gaussiana. Existem alguns casos patológicos em que os coeficientes de autocorrelação não serão gaussianos, mas geralmente são poucos e distantes entre si (e talvez a análise de autocorrelação não seja a melhor coisa a se fazer nesses casos).
Peter K.
@ PeterK.Não seria um teste "mais difícil" para determinar a planicidade do PSD? Dessa forma, nenhuma suposição é feita e a distribuição das amostras de ruído é irrelevante.
Envidia 12/06
@Envidia: Os dois são equivalentes, não são? O PSD é apenas o DFT da sequência de autocorrelação.
Peter K.
@PeterK. No seu exemplo, sim, eles são essencialmente equivalentes. No entanto, o procedimento assume iid onde, geralmente, as amostras podem ser distribuídas de qualquer maneira. Eu entendo que o teorema do limite central entra em cena e é válido, por isso eu uso o termo "mais difícil". Talvez um termo melhor seja "geral".
Envidia 12/06
5

Eu usaria as propriedades de autocorrelação do sinal ou o nivelamento do PSD para determinar isso. A autocorrelação do ruído branco teórico é um impulso no atraso 0. Além disso, o PSD da transformação fourier da função de autocorrelação, o PSD do ruído branco teórico é constante.

Qualquer um destes deve lhe dar uma boa idéia da brancura do seu ruído.

Etéreo
fonte
3

Brancura é equivalente a independência.

Você pode olhar para o obstinado https://en.m.wikipedia.org/wiki/Diehard_tests

O Volume 2 dos Algoritmos Seminuméricos de Knuth possui uma seção sobre genentadores e testes de números aleatórios.

O problema com os testes baseados em DFT é que, com um pouco de vazamento espectral, a técnica introduz alguma correlação que, se você tornar suas transformações "longas", pode ser negligenciada.

Existem testes para fluxos de bits aleatórios também no NIST


fonte
Esqueci de dizer, Stan: +1 para aqueles testes obstinados! Eu não tinha visto essa lista. :-)
Peter K.