Mengapa sistem 16 bit memiliki dBFS minimum -96?

8

Saya sedang mengerjakan contoh di halaman ini: http://chimera.labs.oreilly.com/books/1234000001552/ch03.html

Saya benar-benar mengerti mengapa level maksimum sistem audio adalah 0 karena log 1 adalah 0.

Namun, saya bingung tentang minimum. Definisi dBFS adalah

dBFS = 20 * log( [sample level] / [max level] )

Dalam sistem 16 bit ada 2 ^ 16 = 65536 nilai. Jadi ini berarti nilai dari -32768 hingga +32767. Tidak termasuk 0, katakanlah nilai minimum adalah 1. Jadi, memasukkan ini ke dalam rumus memberi:

dBFS = 20 * log( 1 / 32767 ) = -90.3

Tetapi buku itu mengatakan harus -96dBFS. Di mana saya salah?

Aptary
sumber

Jawaban:

8

Anda sudah menggunakan 132767dan ini adalah level sinyal puncak . Tingkat sinyal puncak ke puncak adalah 2 LSBp-p. Tetapi Anda dapat memiliki sinyal yang lebih kecil: -

Sinyal terkecil adalah setengah dari ini (yaitu 1 LSBp-p) maka 6dB yang lain membawa Anda ke -96dBFS

Andy alias
sumber
1
Aha! Saya pikir saya sudah mengerti. Jadi gelombang maksimum memiliki pp -32768 hingga 32767 yaitu (65536), dan minimum memiliki puncak ke puncak, katakan 0 ke 1, (yaitu 1) yang memberi saya -96dB. (Awalnya saya berpikir sinyal minimum beralih dari -1 ke 1.) Apakah Anda pikir alasan (dasar) saya di sini ok?
Aptary
@Aptary terdengar seperti Anda sudah mendapatkannya - simetri membodohi Anda!
Andy alias
Brill, terima kasih, akan def memberi Anda upvote ketika saya mendapatkan perwakilan yang cukup!
Aptary
3

Anda membuat skala untuk sinyal simetris, tetapi gagasan itu sepenuhnya arbitrer. Setiap bit menambahkan 6 dB SNR (lebih khusus sinyal-to-kuantisasi noise), karena menggandakan skala, dan faktor 2 adalah 6 dB. Jadi 16 bit adalah 16 x 6 dB = 96 dB.
Angka yang lebih tepat: 20 log (2) = 6.02, oleh karena itu 16 x 6.02 dB = 96.33 dB.

radagast
sumber
3

Anda hampir menemukannya sendiri! Pikirkan dalam hal nilai yang tidak ditandatangani alih-alih ditandatangani, dan Anda sempurna. Dalam formula

dBFS = 20 * log( [sample level] / [max level] )

Mempertimbangkan

[sample level]=1dan [max level]=65536yang akan mengarahkan Anda ke:

dBFS = 20 * log(1/65536)

dBFS = 20 * -4.816

dBFS = -96.3

RawBean
sumber
1

Saat menghitung SNR, Anda membandingkan kekuatan sinyal skala penuh (biasanya gelombang sinus) dengan kekuatan noise kuantisasi. Daya dihitung berdasarkan nilai RMS dari bentuk gelombang.

Kebisingan kuantisasi dimodelkan sebagai gelombang gigi gergaji, yang memiliki nilai RMS (IIRC) 1/12nilai puncak. Jika dibandingkan dengan gelombang sinus dengan amplitudo puncak yang sama, inilah yang memberi Anda tambahan 6 dB.

Dave Tweed
sumber