RunningStatisticsN
Overview
Computes long term statistics per channel
Discussion
This module is a multichannel version of the RunningStatisics module. The module keeps track of the statistics of the input data. The state variable value holds the statistic result seen thus far since the module start processing. A separate statistic is computed for each input channel.
The statisticsType variable configures which type of computation the block does: 0=Maximum, 1=Minimum, 2=Maximum Absolute Value, Sum=3, Mean=4, RMS=5, StdDev=6, Var=7, AvgEnergy=8.
An optional constructor argument OUTPUTVALUE specifies whether the computed statistic should be output on an output pin. By default, OUTPUTVALUE=0 and the statistic is only stored internally in instantaneousValue. The .reset variable is used to clear history and restart the calculation. The variable .reset is set to 1 when the module is first constructed.
By default, the sample rate of the output pin equals SRin / blocksize. There are some times when this computes the wrong sample rate and you can overwrite the output sample rate using the SAMPLERATE argument.
Module Pack
Advanced
ClassID
classID = 1391
Type Definition
typedef struct _ModuleRunningStatisticsN
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 statisticsType; // Type of statistics needed.
INT32 numBlocksProcessed; // Counter for the number of blocks processed.
INT32 reset; // Used to identify the first block which is processed.
FLOAT32* value; // Instantaneous output value.
FLOAT32* mean; // State variable for mean.
FLOAT32* avgEnergy; // State variable for average energy.
} ModuleRunningStatisticsNClass;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| statisticsType | int | parameter | 0 | 0 | 0:8 | |
| numBlocksProcessed | int | state | 0 | 0 | Unrestricted | |
| reset | int | state | 0 | 1 | Unrestricted | |
| value | float* | state | 0 | [1 x 1] | Unrestricted | |
| mean | float* | state | 0 | [1 x 1] | Unrestricted | |
| avgEnergy | float* | state | 0 | [1 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 | Audio input |
| Data Type | float |
Scratch Pins
| Channel Count | 1 |
| Block size | 32 |
| Sample rate | 48000 |
Matlab Usage
File Name: running_statisticsn_module.m
M = running_statisticsn_module(NAME, OUTPUTVALUE, SAMPLERATE)
This is a multichannel version of the running_statistics_module.m.
It computes a per channel statistic of the wire data and the
statistic is tracked from system startup. The module stores the
compute statistic in an N element internal array. The module can
also output on an N channel control wire.
Arguments:
NAME - name of the module.
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 has a multichannel control pin (block size = 1).
SAMPLERATE - optional argument which specifies the output sample rate
of the module. By default, this is empty and the output sample
rate is computed as inputSampleRate / blockSize. In some cases,
this sample rate is wrong and you can override it with this
argument.
Copyright (c) 2026 DSP Concepts, Inc.