Skip to content

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.