Gürültünün “beyazlığının” belirlenmesi


14

Biraz gürültünün nasıl "beyaz" olduğu nasıl ölçülebilir? Belirli bir örneğin beyaz gürültüye ne kadar yakın olduğunu belirleyebilecek herhangi bir istatistiksel önlem veya başka önlemler (örneğin FFT'ler) var mı?


3
Farklı gürültü kaynaklarının / sinyallerinin nasıl karşılaştırılacağıyla ilgileniyor musunuz veya bir gürültü kaynağındaki "renk" miktarı için geçerli olan bir "endüstri standardı" metriği mi arıyorsunuz? Uygulanan genel bir metriğin farkında değilim, ancak bir FFT veya PSD'deki gürültü gücü dağılımına bakarak renk miktarını karşılaştırabilirsiniz (flatter = beyaz) veya otokorelasyon fucitonslarını (daha dar = düz) karşılaştırabilirsiniz.
user2718

Seni doğru anlıyorsam, 'beyazlık' otomatik kara kutu hesaplayıcısı arıyorsunuz, değil mi?
Spacey

1
Kaynağın Güç Spektral Yoğunluğunu hesaplamak için +1 . Kayıt için, PSD'si -∞ <f <∞'ta düz olduğundan beyaz gürültünün pratikte örneklenemeyeceğini eklemek isterim.
Serge

@Mohammad - Hesaplamak için bir kara kutu olması gerekmez. Sadece beyazlığın matematiksel bir tahmincisi olup olmadığını merak ediyorum.
Kitchi

1
@BruceZenone - Serge'in işaret ettiği gibi gerçek bir veri örneği için PSD asla tamamen düz olmayacak, değil mi? Ama yine de tahmin ediyorum ki ne kadar düz olursa, "gerçek" beyaz gürültü olmaya ne kadar yakınsa.
Ocak'ta Kitchi

Yanıtlar:


12

Potansiyel olarak beyaz dizinin otokorelasyonuna dayanan bir istatistiksel test oluşturabilirsiniz. Dijital Sinyal İşleme El Kitabı aşağıdaki göstermektedir.

resim açıklamasını buraya girin

Bu, scilab'da aşağıdaki gibi uygulanabilir.

Bu işlevi iki gürültü dizisi üzerinde çalıştırmak: beyaz bir gürültü ve hafifçe filtrelenmiş beyaz bir gürültü, ardından aşağıdaki grafik ortaya çıkar. Gürültü dizilerinin her gerçekleştirilmesi için komut dosyası sondadır.

resim açıklamasını buraya girin

Beyaz gürültü istatistiği ortalaması 9.79; filtrelenen gürültü için istatistiğin ortalaması 343.3'tür.

Bir baktığımızda ki-kare masanın serbestlik 10 derece için elde ederiz:

resim açıklamasını buraya girin

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)];

büyük bir istatistikçi değilim ... Ama gaussian olmayan beyaz gürültü süreçleri için yukarıdaki metionlu testin genel geçerliliği ile ilgili bir endişem var: Beyaz gürültüyü anladığım kadarıyla zaman içinde hiçbir korelasyon olmadığı anlamına gelir ve böylece otokorelasyon 0 gecikmede bir dürtü. Beyaz mutlaka genliklerin normal olarak dağıtıldığı anlamına gelmez, bu da testin varsaydığı şeydir ... Bu nedenle testin anladığım kadarıyla beyaz gauss gürültüsü için geçerli olduğu için (kare kare gauss dağılımlarının toplamı Chi kare) genel beyaz gürültü için? Haklı mıyım yoksa wr bir şey var mı?
Fabian

@Fabian: Evet ve hayır. Testin otokorelasyon değerlerinin Gauss olduğunu varsayması doğrudur . Orijinal gürültü hemen hemen herhangi bir dağılımda ise, merkezi limit teoremi otokorelasyon tahminlerinin dağılımının Gauss olacağı anlamına gelir. Otokorelasyon katsayılarının Gauss olmayacağı bazı patolojik durumlar vardır, ancak bunlar genellikle az ve çok arasındadır (ve belki de otokorelasyon analizi bu durumlarda yapılması en iyi şey değildir).
Peter K.

PSD'nin düzlüğünü belirlemek için "daha zor" bir test olamaz mı? Bu şekilde hiçbir varsayım yapılmaz ve gürültü örneklerinin dağılımı önemsizdir.
Envidia

@Envidia: İkisi eşdeğer, değil mi? PSD, otokorelasyon sekansının sadece DFT'sidir.
Peter K.

@PeterK. Örneğinizde evet, bunlar aslında eşdeğerdir. Bununla birlikte, prosedür genel olarak numunelerin herhangi bir şekilde dağıtılabileceği yerlerde varsayılmaktadır. Merkezi Limit teoreminin yürürlüğe girdiğini ve geçerli olduğunu anlıyorum, bu yüzden "daha sert" terimini kullanıyorum. Belki daha iyi bir terim "genel" olabilir.
Envidia

5

Bunu belirlemek için sinyalin otokorelasyon özelliklerini veya PSD'nin düzlüğünü kullanırdım. Teorik beyaz gürültünün otokorelasyonu gecikme 0'da bir dürtüdür. Ayrıca, otokorelasyon fonksiyonunun fourier dönüşümünün PSD'si, teorik beyaz gürültünün PSD'si sabittir.

Bunlardan her ikisi de size gürültünüzün beyazlığı hakkında iyi bir fikir vermelidir.


3

Beyazlık bağımsızlığa eşdeğerdir.

Diehard'a bakabilirsiniz https://en.m.wikipedia.org/wiki/Diehard_tests

Knuth'un Seminumerical Algorithms Cilt 2, rasgele sayı üreteçleri ve test üzerine bir bölüm var.

DFT tabanlı testlerle ilgili sorun, spektral sızıntının biraz olması, tekniğin, dönüşümlerinizi "uzun" yaparsanız genellikle ihmal edilebilecek bazı korelasyonlar getirmesidir.

NIST'de de rastgele bit akışları için testler var


Söylemeyi unuttum, Stan: Bu diehard testleri için +1! Bu listeyi görmemiştim. :-)
Peter K.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.