Memperbaiki Digitalisasi dengan Menambahkan White Noise Sebelum Oversampling


8

Saya sedang membaca buku fisika dan mengatakan bahwa ketika mendigitalkan sinyal white noise ditambahkan untuk meningkatkan proses. Saya tidak mengerti bagaimana ini bekerja. Karena itu pertanyaan saya adalah:

Saat mendigitalkan sinyal analog, bagaimana menambahkan noise dapat bermanfaat bila dikombinasikan dengan oversampling dalam waktu?


Apakah Anda berbicara tentang dithering? Lihat en.wikipedia.org/wiki/Dither untuk lebih lanjut.

@ DavidZ Jika ini di luar topik mengapa sudah ada begitu banyak jawaban? Beberapa orang mengatakan dalam meta bahwa mereka suka menyimpan pertanyaan matematika selama mereka relevan dengan fisika. Mengapa proses pemikiran itu berbeda untuk topik lain?
DanielSank

@DanielSank karena pertanyaan yang berada di luar topik tidak menghentikan orang untuk menjawabnya. Jika menurut Anda pertanyaan pemrosesan sinyal harus sesuai dengan topik, dan menurut Anda komunitas setuju dengan Anda, bawa ke meta dan buat pos yang mengusulkan perubahan pada cakupan situs.
David Z

Eksperimentalis harus berurusan sampai batas tertentu dengan keanehan pengambilan sampel digital. Saya tidak sepenuhnya setuju dengan memindahkan pertanyaan dari situs yang lulus (fisika stackexchange) ke situs beta (situs ini), tetapi apa yang dilakukan sudah selesai. Semoga migrasi ini akan mendapat perhatian dari orang-orang dengan pengetahuan yang lebih besar. Pengetahuan saya tentang sinyal bersih adalah pra-milenial. Terakhir kali saya harus bekerja dengan sinyal dunia nyata, saya tidak hanya memiliki masalah signal-to-noise yang rendah. Saya memiliki masalah noise-to-signal over-unity. Berurusan dengan itu cukup menyenangkan (dalam arti masokis).
David Hammen

Jawaban:


4

Menambahkan noise tidak berkorelasi (yaitu putih) ke sinyal analog sebelum digitalisasi disebut dithering . Untuk memahami mengapa kita melakukan ini, kita perlu memahami ide kebisingan kuantisasi . Pertimbangkan sebuah sistem analog yang memiliki sinyal dengan kisaran amplitudo dari 0 hingga 100. Misalkan kita mendigitalkan sinyal ini dengan digitizer yang level digitalnya diberi spasi oleh 1. Dengan kata lain, level digital yang memungkinkan adalah

{100,99,9899,100}.

Sekarang anggaplah sinyal analog adalah sinyal DC bernilai 0.8, dengan kata lains(t)

s(t)=0.8.

Jika kita memasukkan ini ke dalam digitizer, digitizer akan membulatkannya menjadi 1 dan sampel digital akan menjadisn

sn=1.

Ini tidak baik karena sekarang sinyal digital kami mengakumulasi kesalahan karena kami memperoleh lebih banyak sinyal. Level digital selalu terlalu tinggi sehingga semakin lama rata-rata sinyal, semakin besar perkiraan level analognya.

Menambahkan white noise membantu memperbaiki masalah ini karena mendorong tingkat analog sekitar sehingga melintasi tingkat digitalisasi yang berdekatan. Oleh karena itu, ketika Anda rata-rata lebih dari satu set nilai digital Anda benar-benar mendapatkan sesuatu yang dekat dengan level analog yang sebenarnya. Mari kita lihat ini melalui contoh.

Misalkan noise yang kita tambahkan adalah Gaussian didistribusikan dengan . Maka distribusi sinyal analog adalahσ=2

p(x)exp[(xs(t))22σ2]=exp[(x0.8)28].

Kita sekarang menghitung rata-rata digital nilai oleh rata-rata di atas bilangan bulat. Konstanta normalisasi untuk distribusi adalah sehingga kita memiliki Dengan demikian Anda dapat melihat bahwa menambahkan white noise menyebabkan rata-rata sinyal digital lebih cocok dengan nilai analog yang sebenarnya.snp(x)

N=m=100100exp[(m0.8)28]
sn=1Nm=100100mexp[(m0.8)28]=0.79999

Tentu saja, menambahkan noise membuat rasio sinyal Anda terhadap noise lebih buruk. Itu berarti untuk benar-benar memiliki probabilitas tinggi untuk mengukur baru saja kita hitung, Anda harus mengambil lebih banyak sampel daripada yang Anda bayangkan dalam kasus tanpa suara. Inilah mengapa Anda mendengar tentang pengambilan sampel berlebihan dan ragu-ragu pada saat yang sama. Karena noise dithering benar-benar tidak berkorelasi, mengambil lebih banyak sampel selalu membantu meningkatkan rasio sinyal ke noise, bahkan jika Anda mengambil sampel jauh di atas bandwidth sinyal analog yang masuk.sn


2

Dithering (sengaja menambahkan noise) sinyal input yang dikombinasikan dengan oversampling dapat (tidak ada jaminan!) Meningkatkan jumlah bit efektif dalam sinyal dan meningkatkan rasio sinyal ke noise.

Dengan asumsi proses yang mendasarinya adalah proses white noise, sinyal digital akan tetap terlihat seperti white noise jika tingkat kuantisasi baik ke dalam noise. Secara umum ini adalah hal yang baik. White noise memiliki sifat matematika yang agak bagus. Berurusan dengan kebisingan kuantisasi non-linear, sinyal-tergantung sulit. Kebisingan kuantisasi secara umum dapat diabaikan jika level kuantisasi baik ke dalam noise.

Bagaimana jika tingkat kuantisasi tidak masuk dalam derau? Sekarang Anda memiliki kebisingan kuantisasi yang berantakan untuk dihadapi. Salah satu cara untuk mengatasinya adalah dengan menggunakan ADC resolusi yang lebih tinggi dan membuat kuantisasi menjadi noise. Alternatifnya adalah dengan sengaja menambahkan white noise ke sinyal input sehingga membuat noise kuantisasi dari ADC murah Anda lebih kecil dibandingkan dengan noise sinyal (ragu-ragu).

Ide dasarnya adalah untuk menggoyang-goyangkan sinyal input sehingga suara dalam sinyal ragu-ragu mendominasi kebisingan kuantisasi (tapi jelas tidak terlalu banyak). Sinyal ragu-ragu sengaja oversampled dan kemudian downsampled dengan rata-rata dua atau lebih pengukuran berturut-turut. Rata-rata ini hanya membeli sesuatu jika sinyal input berisik dibandingkan dengan kebisingan kuantisasi. Kebisingan kuantisasi rata-rata terlihat seperti kebisingan kuantisasi. Rata-rata white noise memungkinkan sinyal keluar dari noise.

Untuk lebih lanjut, baca tutorial Walt Kester Aspek Baik, Buruk, dan Jelek dari Input Noise ADC — Apakah Noise Noise Good Noise? .


@ DarelSank Jika dia secara khusus bertanya tentang white noise, maka memberikan jawaban tentang noise kuantisasi tidak akan menjawab pertanyaan yang diajukan.
The Photon

@ThePhoton: Ack! Itu salah ketik. Dia meminta kepadatan spektral noise kuantisasi . Ugh, dan sekarang saya tidak bisa mengedit komentar.
DanielSank

1
Mengomentari ulang komentar dengan fix: Fakta bahwa noise kuantisasi bukanlah aditif membuat saya kesulitan dalam wawancara pekerjaan. Pria itu bertanya "apa kepadatan spektral suara kuantisasi"? Saya menjelaskan bahwa itu tidak benar-benar memiliki kepadatan spektral dan mencoba menunjukkan kepadanya mengapa, tetapi dia tidak mengerti. Saya pikir dia hanya ingin jawaban kalengan untuk kasus di mana Anda menganggap tingkat digital sudah menjadi kebisingan analog (seperti yang disebutkan dalam jawaban Anda) dalam hal ini gangguan digitalisasi berwarna putih, seperti yang Anda katakan.
DanielSank

2

Ya, menambahkan noise yang tidak berkorelasi ke sinyal, kemudian rata-rata beberapa sampel, adalah salah satu cara untuk menangani noise kuantisasi.

Untuk membuat ini jelas, pikirkan kasus pembatasnya. Anda ingin mengukur nilai sinyal antara 0 dan 1, tetapi yang Anda miliki adalah 1-bit A / D. Output A / D adalah 0 ketika sinyal dari 0 hingga .5, dan 1 ketika sinyal .5 ke 1.

Sekarang perhatikan sinyal yang .3. Dengan clean .3 in yang bagus, A / D akan selalu menghasilkan 0. Anda tidak dapat membedakan antara sinyal input 0,1, 0,25, 0,3, dll, misalnya.

Sekarang tambahkan noise acak ± 0,5. Sinyal yang dilihat oleh A / D sekarang akan berada di suatu tempat dari -2 hingga .8. Output 0 memiliki probabilitas 0,7, dan output 1, 3. Setiap pembacaan tidak akan memberi tahu Anda banyak (tidak seperti sebelumnya ketika memberi tahu Anda bahwa sinyal itu dari 0 hingga 0,5), tetapi setelah banyak pembacaan Anda mendapatkan ide yang masuk akal dari sinyal. Misalnya, jika Anda mengambil 100 bacaan, sekitar 30 di antaranya akan menjadi 1 dan 70 akan menjadi 0. Tidak ada jaminan akan hal ini, tetapi semakin banyak bacaan yang Anda ratakan, semakin tinggi keyakinan bahwa hasil rata-rata mewakili sinyal.

Jadi dithering adalah sarana untuk menukar kepastian dan bandwidth untuk mendapatkan resolusi. Perhatikan bahwa tidak peduli berapa banyak bacaan yang Anda ambil, Anda tidak tahu sinyal berada dalam batas tertentu, hanya saja probabilitasnya dalam batas tertentu adalah tinggi. Perhatikan juga bahwa Anda kehilangan bandwidth karena banyak sampel diperlukan untuk mendapatkan satu nilai sinyal. Meskipun demikian, dalam banyak kasus ini adalah pertukaran yang bermanfaat.


2

Jawaban di atas, ragu-ragu, benar tetapi saya ingin secara eksplisit menunjukkan bahwa Anda secara eksplisit memperdagangkan resolusi untuk waktu. Pengorbanan waktu vs. akurasi. Kasus yang paling dramatis adalah konverter delta-sigma. Mereka memiliki (mungkin ada pengecualian) akurasi 1 bit tetapi dengan overclocking konversi mereka dapat mengekstraksi 24 bit, atau lebih, dari resolusi. Dalam hal ini mereka menyiasati tradeoff dengan overclocking (banyak).

Tentu saja banyak teknik lain yang digunakan dalam konverter nyata; tetapi prinsipnya berlaku.


0

Dulu (akhir 80-an), kami membutuhkan kemampuan untuk membuat spektrum energi radiasi yang masuk sebagai bagian dari kamera gamma yang digunakan dalam Kedokteran Nuklir. Ini membutuhkan ADC cepat dengan linearitas diferensial yang sangat baik (pada dasarnya, setiap "nampan" dari ADC harus persis sama lebar atau sinyal analog, yang didistribusikan secara kontinu, akan memberi Anda "benjolan" dalam nampan yang sedikit agak terlalu lebar - dan ini mungkin terlihat seperti puncak spektral).

Solusinya adalah varian yang menarik pada dithering: kami memiliki DAC kecil dan penghitung, dan menggunakan ini untuk menambah jumlah sinyal yang diketahui ke input. Sinyal penjumlahan kemudian didigitalkan menggunakan ADC cepat dengan (relatif) linearitas diferensial yang buruk, dan nilai DAC dikurangi lagi setelah konversi; setelah ini, penghitung (input ke DAC) bertambah 1 (dengan overflow mengatur ulang kembali ke nol). Hasil dari ini adalah bahwa tegangan dengan nilai yang sama akan dikonversi di salah satu dari banyak nampan - akibatnya mengurangi perbedaan nonlinier dari ADC dengan ukuran penghitung DAC.

Anda dapat melakukan hal yang sama dengan derau acak - tetapi jika Anda tidak tahu derau apa yang Anda tambahkan, tentu saja Anda menurunkan sinyal Anda. Ketika noise kira-kira seukuran bin tunggal di ADC, dan Anda dapat melakukan beberapa pengukuran, ini akan membantu Anda memperkirakan sinyal lebih baik daripada resolusi ADC - dengan asumsi bahwa Anda dapat mempercayai linearitas diferensial. Tetapi menambahkan sinyal "acak" yang diketahui (meskipun kami menggunakan penghitung, itu "acak dalam waktu" nilai apa yang akan terjadi untuk konversi tertentu) dan dengan mempertimbangkan nilainya memungkinkan Anda presisi yang lebih besar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.