Skip to content

Histogram

Overview

Histogram of data

Discussion

The histogram module builds a histogram of the incoming data. A histogram is a graphical representation showing a visual impression of the distribution of data values. A histogram is essentially a table in which each entry represents the number of times that the input sample values fell in a particular range.

numBins specifies the total number of bins in the histogram. lowerBinCenter specifies the center of the first bin and binSpacing is the width of the bin. The center of the kth bin is:

lowerBinCenter + k*binSpacing.

The range of first bin is

[lowerBinCenter - binSpacing/2 lowerBinCenter + binSpacing/2)

If lower and upper represents the edges of a bin, then a value is counted as being in the bin if

lower <= value < upper.

Values which are less than the lower edge of the first bin are not placed into the histogram. numUnderSamples indicates how many sample values are less than the lower edge of first bin. Value which are equal or more than the upper edge of the last bin are also not placed into the histogram. numOverSamples indicates how many sample values are equal or more than the upper edge of last bin. The module has the parameter "reset" to reset the histogram. Set this to 1 to reset the histogram and set all counts to zero. The histogram is stored in the internal array hist. If OUTPUTVALUE is 1, then the array hist is output on a pin.

Module Pack

Advanced

ClassID

classID = 1286

Type Definition

typedef struct _ModuleHistogram
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
INT32 numBins;                                // Number of bins in the histogram
FLOAT32 lowerBinCenter;                       // Specifies the center of the first (lowest) bin in the histogram
FLOAT32 binSpacing;                           // Specifies the spacing between bins
INT32 reset;                                  // Boolean parameter to reset the histogram.
INT32 numHistSamples;                         // Number of input samples processed.
INT32 numUnderSamples;                        // Total number of input samples that were outside of the histogram range on the low end.
INT32 numOverSamples;                         // Total number of input samples that were outside of the histogram range on the high end.
INT32* hist;                                  // Histogram array.
} ModuleHistogramClass;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
numBins int const 0 32 Unrestricted
lowerBinCenter float parameter 0 -1 -100:100
binSpacing float parameter 0 0.05 0.01:100
reset int parameter 0 0 0:1
numHistSamples int state 0 0 Unrestricted
numUnderSamples int state 0 0 Unrestricted
numOverSamples int state 0 0 Unrestricted
hist int* state 0 [32 x 1] Unrestricted

Pins

Input Pins

Name in
Description Audio input
Data type float
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Output Pins

Name out
Description histogram value output
Data Type int

Matlab Usage

File Name: histogram_module.m 
 M=histogram_module(NAME, NUMBINS, OUTPUTVALUE) 
 Builds a histogram of incoming data on a sample-by-sample basis. 
 The histogram is stored in an internal array and can also be 
 optionally output on a pin.  Arguments: 
   NAME - name of the module 
   NUMBINS - number of bins in the histogram (default = 32) 
   OUTPUTVALUE - Boolean value which specifies whether the module has 
        an output pin. If OUTPUTVALUE=0 (the default), then 
        the module has no output pin. If OUTPUTVALUE=1, then 
        the module ouputs the histogram array. 

Copyright (c) 2026 DSP Concepts, Inc.