Db20Fract32
Overview
Converts from linear units to decibels using a polynomial approximation
Discussion
Converts from linear units to decibels (db20) using a polynomial approximation. The input format is Q9.23 (values in the range +/- 128) and the output format is Q9.23 also (values in the range +/- 128). The function computes the absolute value of the input before computing the log. The output will always be in the range [48.16 -198.4738]. The results are accurate to within 8e-3 (in Q9.23).
For negative inputs the function takes the absolute value. An input of 0 returns -256.
Module Pack
Standard
ClassID
classID = 141
Type Definition
typedef struct _ModuleDb20Fract32
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
} ModuleDb20Fract32Class;
Pins
Input Pins
| Name | in |
| Description | Input signal |
| Data type | fract32 |
| Channel range | Unrestricted |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Real |
Output Pins
| Name | out |
| Description | Output signal |
| Data Type | fract32 |
Matlab Usage
File Name: db20_fract32_module.m
M=db20_fract32_module(NAME)
Creates an Audio Weaver module that computes the function 20*log10(abs(x))
using a polynomial approximation. The input and the output are Q9.23.
Arguments:
NAME - name of the module.
Copyright (c) 2026 DSP Concepts, Inc.