ฉันถามตัวเองว่าจะคำนวณ dBFS (dB full scale) จากค่าตัวอย่างระหว่าง 1 ถึง -1 ได้อย่างไร
และโดยทั่วไป?
ฉันถามตัวเองว่าจะคำนวณ dBFS (dB full scale) จากค่าตัวอย่างระหว่าง 1 ถึง -1 ได้อย่างไร
และโดยทั่วไป?
คำตอบ:
มันค่อนข้างง่ายสำหรับค่าระหว่าง 1 ถึง -1:
valueDBFS = 20*log10(abs(value))
หากคุณมีค่าระหว่างช่วงอื่นเช่น 16 บิตนั่นคือ:
valueDBFS = 20*log10(abs(value)/32768)
(เพราะ 16 บิตที่เซ็นชื่อมีค่าระหว่าง -32768 ถึง +32767 เช่น 2 ^ 15 = 32768)
ดังนั้นสูตรทั่วไปคือ:
valueDBFS = 20*log10(abs(value)/maxValue)
ตัวอย่างรหัสจะได้รับในรหัส MATLAB
มาตรฐานทั้งหมดกำหนด dBFS เป็นการวัด RMSเทียบกับระดับ RMS ของคลื่นไซน์เต็มรูปแบบดังนั้นการคำนวณคือ:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
หน่วย dBov ที่คล้ายกันนั้นถูกกำหนดในส่วนที่เกี่ยวข้องกับอัตราส่วนกำลังไฟฟ้า (ดังนั้นจึงเป็นการวัดแบบ RMS) เช่น DC เต็มรูปแบบหรือคลื่นสี่เหลี่ยมเป็น 0 dBov ดังนั้นการคำนวณคือ:
value_dBov = 20*log10(rms(signal))