Document toolboxDocument toolbox

(8.D.2.5) DitherFract32

Overview

Adds dither to a fract32 signal

Discussion

This module generates uniformly distributed noise in fract32 format and then adds it to an input signal. This type of random noise is often added prior to quantization to change the characteristics of the quantization noise. The module can be configured to generate noise with a uniform distribution (ditherType=1), or a triangular distribution (ditherType=2). For a rectangular distribution, a single random value is used; for the triangular distribution, two uniformly distributed random numbers are added. Setting ditherType=0 causes the input to be passed unchanged to the output.

The shiftBits variable controls how many bits to the right each random value should be shifted prior to being added to the input. Keep in mind that the random values are generated to be full scale (+/-1) and should almost always be shifted to the right. If no shifting occurs with the triangular distribution then the values will often saturate.

Type Definition

typedef struct _ModuleDitherFract32 { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 ditherType; // Controls the type of dither used by the module. 0 = no dither. 1 = rectangular distribution. 2 = triangular distribution INT32 shiftBits; // Number of bits to shift random noise UINT32 seed; // Initial seed value for the random number generator } ModuleDitherFract32Class;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

ditherType

int

parameter

0

1

0:2

 

shiftBits

int

parameter

0

16

0:32

 

seed

uint

parameter

1

random value

Unrestricted

 

Pins

Input Pins

Name: in

Description: audio input

Data type: fract32

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: out

Description: audio output

Data type: fract32

MATLAB Usage

File Name: dither_fract32_module.m

M=dither_fract32_module(NAME) Creates a modules which adds dither to a fract32 audio stream. The module can be configured for rectangular or triangular distribution. Arguments: NAME - name of the module.

Â