Menentukan "putihnya" kebisingan

14

Bagaimana seseorang mengukur seberapa "putih" suatu noise? Apakah ada tindakan statistik, atau tindakan lain (misalnya FFT) yang dapat mengukur seberapa dekat dengan white noise sampel tertentu?

Kitchi
sumber
3
Apakah Anda tertarik pada saran tentang cara membandingkan berbagai sumber / sinyal noise atau apakah Anda mencari metrik "standar industri" yang berlaku untuk jumlah "warna" di sumber kebisingan? Saya tidak mengetahui metrik umum yang berlaku, tetapi Anda dapat membandingkan jumlah warna dengan melihat distribusi daya derau dalam FFT atau PSD (flatter = whiter) atau Anda dapat membandingkan fuciton autocorrelation (narrower = flatter).
user2718
Jika saya mengerti Anda dengan benar, Anda mencari kalkulator kotak hitam otomatis 'putih', benar?
Spacey
1
+1 untuk menghitung Power Spectral Density dari sumber. Sebagai catatan, saya ingin menambahkan bahwa white noise tidak dapat dicicipi dalam praktik, karena PSD-nya datar di -∞ <f <∞.
Serge
@Mohammad - Tidak perlu kotak hitam untuk menghitung. Saya hanya ingin tahu apakah ada penduga matematis putih.
Kitchi
1
@BruceZenone - Untuk sampel data nyata, seperti yang ditunjukkan Serge, PSD tidak akan pernah benar-benar datar, bukan? Tapi saya masih menebak bahwa semakin datar itu, semakin dekat menjadi white noise "benar".
Kitchi

Jawaban:

12

Anda dapat membentuk tes statistik, berdasarkan autokorelasi dari urutan yang berpotensi putih. The Digital Signal Processing Handbook menunjukkan berikut ini.

masukkan deskripsi gambar di sini

Ini dapat diimplementasikan dalam scilab seperti di bawah ini.

Menjalankan fungsi ini melalui dua sekuens derau: satu derau putih, dan derau putih yang disaring sedikit, kemudian hasil plot berikut. Skrip untuk generasi dari setiap realisasi dari derau deretan pada akhirnya.

masukkan deskripsi gambar di sini

Rata-rata statistik untuk white noise adalah 9,79; rata-rata statistik untuk noise yang disaring adalah 343.3.

Melihat tabel chi-squared untuk 10 derajat kebebasan, kita mendapatkan:

masukkan deskripsi gambar di sini

hal=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.
sumber
im bukan statistika besar ... Tetapi saya memiliki kekhawatiran mengenai validitas umum dari tes metioned di atas untuk proses white noise non gaussian: Sejauh yang saya mengerti white noise hanya berarti bahwa tidak ada korelasi dalam waktu dan dengan demikian autokorelasi adalah impuls pada 0 lag. Putih tidak selalu berarti bahwa amplitudo terdistribusi secara normal, yang merupakan asumsi tes ... Jadi sejauh yang saya mengerti tes ini valid untuk white gaussian white (karena jumlah distribusi gaussian kuadrat adalah Chi-kuadrat) dan tidak untuk white noise umum? Apakah saya benar atau ada sesuatu wr
Fabian
@Fabian: Ya dan tidak. Anda benar karena tes mengasumsikan bahwa nilai autokorelasi adalah Gaussian. Jika noise asli hampir semua distribusi, maka teorema limit pusat berarti bahwa distribusi estimasi autokorelasi akan menjadi Gaussian. Ada beberapa kasus patologis di mana koefisien autokorelasi tidak akan menjadi Gaussian, tetapi ini umumnya sedikit dan jauh di antara (dan mungkin analisis autokorelasi bukan hal terbaik untuk dilakukan dalam kasus-kasus tersebut).
Peter K.
@ PeterK. Bukankah tes "sulit" akan menentukan kerataan PSD? Dengan cara ini, tidak ada asumsi yang dibuat dan distribusi sampel kebisingan tidak relevan.
Envidia
@ Envidia: Keduanya setara, bukan? PSD hanyalah DFT dari urutan autokorelasi.
Peter K.
@PeterK. Dalam contoh Anda ya, mereka pada dasarnya setara. Namun prosedur tersebut mengasumsikan iid dimana secara umum, sampel dapat didistribusikan dengan cara apa pun. Saya mengerti bahwa teorema Limit Pusat memang ikut berperan dan valid, karenanya saya menggunakan istilah "lebih keras". Mungkin istilah yang lebih baik adalah "umum".
Envidia
5

Saya akan menggunakan properti autokorelasi sinyal atau kerataan PSD untuk menentukan ini. Autokorelasi white noise teoretis adalah dorongan pada lag 0. Selanjutnya, PSD dari transformasi fourier dari fungsi autokorelasi, PSD white noise teoritis konstan.

Salah satu dari ini seharusnya memberi Anda ide bagus tentang putihnya kebisingan Anda.

Sangat halus
sumber
3

Keputihan setara dengan independensi.

Anda dapat melihat diehard https://en.m.wikipedia.org/wiki/Diehard_tests

Volume 2 dari Algoritma Seminariical Knuth memiliki bagian tentang genentator dan pengujian bilangan acak.

Masalah dengan tes berbasis DFT adalah bahwa ada sedikit kebocoran spektral teknik memperkenalkan beberapa korelasi, yang jika Anda membuat transformasi Anda "panjang" biasanya dapat diabaikan.

Ada tes untuk stream bit acak juga di NIST


sumber
Lupa mengatakan, Stan: +1 untuk tes diehard itu! Saya belum melihat daftar itu. :-)
Peter K.