Tôi đã tự hỏi mình làm thế nào để tính dBFS (thang đo đầy đủ dB) từ giá trị mẫu trong khoảng từ 1 đến -1?
và nói chung?
Tôi đã tự hỏi mình làm thế nào để tính dBFS (thang đo đầy đủ dB) từ giá trị mẫu trong khoảng từ 1 đến -1?
và nói chung?
Câu trả lời:
Nó thực sự khá đơn giản cho các giá trị từ 1 đến -1:
valueDBFS = 20*log10(abs(value))
Nếu bạn có các giá trị giữa một phạm vi khác, ví dụ 16 bit, thì đó là:
valueDBFS = 20*log10(abs(value)/32768)
(vì 16 bit đã ký có các giá trị trong khoảng từ -32768 đến +32767, ví dụ 2 ^ 15 = 32768)
Và vì vậy, công thức chung là:
valueDBFS = 20*log10(abs(value)/maxValue)
Các ví dụ mã được đưa ra trong mã MATLAB.
Tất cả các tiêu chuẩn xác định dBFS là phép đo RMS , liên quan đến mức RMS của sóng hình sin toàn thang, do đó, phép tính là:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
Đơn vị tương tự dBov được xác định liên quan đến các tỷ số công suất (do đó cũng là phép đo RMS), sao cho sóng DC hoặc sóng vuông quy mô đầy đủ là 0 dBov, do đó phép tính là:
value_dBov = 20*log10(rms(signal))