| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Signal Processing Blockset |
| Contents | Index |
| Learn more about Signal Processing Blockset |
Statistics
dspstat3

The Histogram block computes the frequency distribution of the elements in a vector input, of the elements in each channel of a frame-based matrix input, or of the elements in a sample based N-D array. The Running histogram parameter selects between basic operation and running operation, described below. The Histogram block accepts real and complex fixed-point and floating-point inputs.
The block distributes the elements of the input into the number of discrete bins specified by the Number of bins parameter, n.
y = hist(u,n) % Equivalent MATLAB code
Complex fixed-point inputs are distributed according to their magnitude squared values; complex floating-point inputs are distributed by their normalized values.
The histogram value for a given bin represents the frequency of occurrence of the input values bracketed by that bin. You specify the upper boundary of the highest-valued bin in the Upper limit of histogram parameter, BM, and the lower boundary of the lowest-valued bin in the Lower limit of histogram parameter, Bm. The bins have equal width of
![]()
and centers located at
![]()
Input values that fall on the border between two bins are placed into the lower valued bin; that is, each bin includes its upper boundary. For example, a bin of width 4 centered on the value 5 contains the input value 7, but not the input value 3. Input values greater than the Upper limit of histogram parameter or less than Lower limit of histogram parameter are placed into the highest valued or lowest valued bin, respectively.
The values you enter for the Upper limit of histogram and Lower limit of histogram parameters must be real-valued scalars. NaN and inf are not valid values for the Upper limit of histogram and Lower limit of histogram parameters.
When the Running histogram check box is not selected, the Histogram block computes the frequency distribution of the current input.
For frame-based M-by-N inputs, (including 1-by-N row vectors and M-by-1 column vectors), the Histogram block computes a histogram for each channel of the M-by-N matrix independently. The block outputs an n-by-N matrix, where n is the Number of bins specified in the Histogram block. The jth column of the output matrix contains the histogram for the data in the jth column of the M-by-N input matrix.
For all sample-based N-D input arrays, including length-M 1-D vectors and 1-by-N row vectors, the Histogram block computes the frequency distribution of the input data. The block outputs an n-by-1 vector, where n is the Number of bins specified in the Histogram block.
When you select the Running histogram check box, the Histogram block computes the frequency distribution of both the past and present data for successive inputs. The block resets the histogram (by emptying all of the bins) when it detects a reset event at the optional Rst port. See Resetting the Running Histogram for more information on how to trigger a reset.
For frame-based M-by-N inputs (including 1-by-N row vectors and M-by-1 column vectors), the Histogram block computes a running histogram for each channel of the M-by-N matrix. The block outputs an n-by-N matrix, where n is the Number of bins specified in the Histogram block. The jth column of the output matrix contains the running histogram for the jth column of the M-by-N input matrix.
For all sample-based N-D input arrays, including length-M 1-D vectors, the Histogram block computes a running histogram for the data in the first dimension of the input. The block outputs an n-by-1 vector, where n is the Number of bins specified in the Histogram block.
Note When the histogram block is used in running mode and the input data type is non-floating point, the output of the histogram is stored as a uint32 data type. The largest number that can be represented by this data type is 232-1. If the range of the uint32 data type is exceeded, the output data will wrap back to 0. |
The block resets the running histogram whenever a reset event is detected at the optional Rst port. The reset signal and the input data signal must be the same rate.
You specify the reset event using the Reset port menu:
None — Disables the Rst port
Rising edge — Triggers a reset operation when the Rst input does one of the following:
Rises from a negative value to a positive value or zero
Rises from zero to a positive value, where the rise is not a continuation of a rise from a negative value to zero (see the following figure)

Falling edge — Triggers a reset operation when the Rst input does one of the following:
Falls from a positive value to a negative value or zero
Falls from zero to a negative value, where the fall is not a continuation of a fall from a positive value to zero (see the following figure)

Either edge — Triggers a reset operation when the Rst input is a Rising edge or Falling edge (as described earlier)
Non-zero sample — Triggers a reset operation at each sample time that the Rst input is not zero
The bin boundaries created by the Histogram block are determined by the data type of the input:
Bin boundaries for real, double-precision input are cast into the data type double.
Bin boundaries for real, fixed-point input are cast into the int8 data type.
The following example shows the differences in the output of the Histogram block based on the data type of the input.
To create this model you need the following blocks.
| Block | Library | Quantity |
|---|---|---|
Constant | Simulink / Sources library | 2 |
Display | Signal Processing Sinks | 2 |
Histogram | Statistics | 2 |
The parameter settings for the Double Precision Input Constant block are:
Constant value = double([1 2 3 4 5]')
Interpret vector parameters as 1-D = Clear this check box.
Sampling mode = Sample based
Sample time = inf
The parameter settings for the Fixed-Point Input Constant block are:
Constant value = int8([1 2 3 4 5]')
Interpret vector parameters as 1-D = Clear this check box.
Sampling mode = Sample based
Sample time = inf
The parameter settings for both Histogram blocks are:
Lower limit of histogram = 1
Upper limit of histogram = 3
Number of bins = 5
Normalized = Clear this check box.
Running histogram = Clear this check box.
Connect the blocks as shown in the following figure, and run your model.

Running this model generates the following warning:
Warning: The bin width resulting from the specified parameters is less than the precision of the input data type. This might cause unexpected results. Since bin width is calculated by ((upper limit - lower limit)/number of bins), you could increase upper limit or decrease lower limit or number of bins.
This warning alerts you that it is not a good use case to have a histogram where 2 or more bin boundaries are the same. As the warning suggests, increasing the range of the limits of the histogram, or decreasing the number of bins, can correct this problem.
The following figures illustrate the different bins that are created by the Histogram block. The top figure shows the histogram for double-precision input, and the bottom figure shows the histogram for fixed-point input. The output of the histogram block differs based on the data type of the input, and the bin boundaries are duplicated in the histogram for the fixed-point input.


The bin boundaries created by the Histogram block are determined by the data type of the input.
Bin boundaries for complex, double-precision input are cast into the data type double. All complex, double-precision input values are placed in bins according to their normalized values.
Bin boundaries for complex, fixed-point input are cast into the data type double and squared. All complex, fixed-point input values are placed in bins according to their magnitude-squared value.
The following example shows the differences in the bins created by the Histogram block based on the data type of the complex input.
Using the same model you created for the example with real input data, modify the following parameters:
In the Double Precision Input Constant block, set the Constant value parameter to double([1+1i 2+2i 3+3i 4+4i 5+5i]')
In the Fixed-Point Input Constant block, set the Constant value parameter to int8([1+1i 2+2i 3+3i 4+4i 5+5i]')
Run your model. It should look similar to the following figure:

In this case, the Histogram block outputs the same result. The figures below illustrate how the Histogram block compares the input values to the bins it creates. The double-precision inputs are normalized for comparison, whereas the fixed-point inputs are placed using their magnitude squared value. The top figure shows the histogram for the double-precision input, and the bottom figure shows the histogram for the fixed-point input.


The Main pane of the Histogram block dialog appears as follows.

Enter a real-valued scalar for the lower boundary, Bm, of the lowest-valued bin. NaN and inf are not valid values for Bm. Tunable.
Enter a real-valued scalar for the upper boundary, BM, of the highest-valued bin. NaN and inf are not valid values for BM. Tunable.
The number of bins, n, in the histogram.
When selected, the output vector, v, is normalized such that sum(v) = 1.
Use of this parameter is not supported for fixed-point signals.
Set to enable the running histogram operation, and clear to enable basic histogram operation. For more information, see Basic Operation and Running Operation.
The type of event that resets the running histogram. For more information, see Resetting the Running Histogram. The reset signal and the input data signal must be the same rate. This parameter is enabled only when you select the Running histogram check box. For more information, see Running Operation.
The Data Types pane of the Histogram block dialog appears as follows.

Note The fixed-point parameters listed are only used for fixed-point complex inputs, which are distributed by squared magnitude. |
Select the rounding mode for fixed-point operations.
Select the overflow mode for fixed-point operations.
Specify the product output data type. See Multiplication Data Types for illustrations depicting the use of the product output data type. You can set it to:
A rule that inherits a data type, for example, Inherit: Inherit via internal rule
An expression that evaluates to a valid data type, for example, fixdt([],16,0)
Click the Show data type assistant button
to display the Data
Type Assistant, which helps you set the Product
output data type parameter.
See Using the Data Type Assistant for more information.
Specify the accumulator data type. You can set this parameter to:
A rule that inherits a data type, for example, Inherit: Inherit via internal rule
An expression that evaluates to a valid data type, for example, fixdt([],16,0)
Click the Show data type assistant button
to display the Data
Type Assistant, which helps you set the Accumulator
data type parameter.
See Using the Data Type Assistant for more information.
Select this parameter to prevent the fixed-point tools from overriding the data types you specify on the block mask.
| Port | Supported Data Types |
|---|---|
In |
|
Output |
|
Rst |
|
| Sort | Signal Processing Blockset |
| hist | MATLAB |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2010- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |