Programmer Guide/SPU Reference/PPM: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(18 intermediate revisions by the same user not shown)
Line 7: Line 7:
|<var>X</var>||input signal||number, vector ||variable  
|<var>X</var>||input signal||number, vector ||variable  
|-
|-
|<var>TYPE</var>||measurement method<BR>(<code>HOLD, EXPONENTIAL, RMS<code>)||number (int.), string||constant ||<code>0</code> (= <code>HOLD</code>)
|<var>TYPE</var>||measurement method<BR>(<code>HOLD, EXPONENTIAL, RMS</code>)||number (int.), string||constant ||<code>0</code> (= <code>HOLD</code>)
|-
|-
|<var>T</var>||measurement time constant in samples||number||constant ||<code>100</code>
|<var>T</var>||measurement time constant in samples||number||constant ||<code>100</code>
Line 28: Line 28:


;Description:
;Description:
The level meter value is computed for each input sample (= value of input <var>X</var>). The last ''v'' of an evaluation cycle is used to update the outputs <var>Y</var> and <var>P</var>.
The level meter value ''v''<sub>t</sub> (t = sample index) is computed for each value ''x''<sub>t</sub> of the input signal <var>X</var>. The last ''v''<sub>t</sub> of an evaluation cycle is used to update the outputs <var>Y</var> and <var>P</var>.
 
:{|class="einrahmen"
<var>TYPE</var>=<code>0</code> or <code>HOLD</code>:
!<var>TYPE</var> !! computation of ''v''<sub>t</sub>
 
|-
 
|<code>0</code> or <code>HOLD</code>  
<var>TYPE</var>=<code>1</code> or <code>EXPONENTIAL</code>:
|<math>v_t = \max(|x_t|, |x_{t-1}|, .., |x_{t-T+1}|)\!</math>
::<math>v_t = max(|x_t|, v_{t-1}.k)\mbox{, with: }k = \frac{1}{\sqrt[T]{x}}</math>
|-
 
|<code>1</code> or <code>EXPONENTIAL</code>
 
|<math>v_t = max(|x_t|, v_{t-1}.k)\mbox{, with: }k = \frac{1}{\sqrt[T]{2}}</math>
 
|-
The computed value ''v'' is converted to the selected <var>UNIT</var> and stored in the output <var>Y</var>.
|<code>2</code> or <code>RMS</code>
|<math>r_t = \frac{(r_{t-1}.(T-1)+x^2)}{T}</math><BR><math>v_t = \sqrt{2.r_t}</math>
|}
The last value ''v''<sub>t</sub> of an evaluation cycle is converted to the selected <var>UNIT</var> and stored in the output <var>Y</var>.
:{|class="einrahmen"
:{|class="einrahmen"
!<var>UNIT</var> !! <var>Y</var>
!<var>UNIT</var> !! <var>Y</var>
|-
|-
|<code>0</code> or <code>VALUE</code> || ''v''
|<code>0</code> or <code>VALUE</code> || <math>v_t\!</math>
|-
|-
|<code>1</code> or <code>SQUARE</code> || ''v''<sup>2</sup>
|<code>1</code> or <code>SQUARE</code> || <math>v_t^2</math>
|-
|-
|<code>2</code> or <code>RATIO</code> || ''v'' / <var>REF</var>
|<code>2</code> or <code>RATIO</code> || <math>\frac{v_t}{REF}</math>
|-
|-
|<code>3</code> or <code>DB</code> || 20 * log<sub>10</sub>(''v'' / <var>REF</var>)
|<code>3</code> or <code>DB</code> ||<math>20.\log_{10}{\frac{v_t}{REF}}</math>
|}
|}


The output <var>P</var> is set to a value in range 0 to <var>SIZE</var> and can be used to display a level bar. For <var>P</var> always the logarithmic value (level in dB) is used. The level interval -140dB to 0dB is mapped to the position interval 0 to <var>SIZE</var> using a non-linear mapping function.


The output <var>M</var> is the maximum of all computed ''v'' values converted to the selected output unit.
The output <var>M</var> is the maximum of all computed ''v''<sub>t</sub> values converted to the selected output unit.
 
 
The output <var>P</var> is set to a value in range 0 to <var>SIZE</var> and can be used to display a level bar.
The levels -140dB to 0dB are mapped to the values 0 to <var>SIZE</var> using a non-linear mapping function.
 
;See also:
;See also:
<[[../#Signal Processing Atoms|SP-atoms]]>
<[[../#Signal Processing Atoms|SP-atoms]]>
<!-- AN, 2.5.2011 -->
<!-- AN, 2.5.2011 -->

Latest revision as of 10:51, 9 May 2011

Level meter (PPM). This atom is used for the level display in the recorder application.

[SPU PPM X TYPE T UNIT REF SIZE OUT Y M P]

input description data type value type default value
X input signal number, vector variable
TYPE measurement method
(HOLD, EXPONENTIAL, RMS)
number (int.), string constant 0 (= HOLD)
T measurement time constant in samples number constant 100
UNIT output value and unit
(VALUE, SQUARE, RATIO, DB)
number (int.), string constant 0 (=VALUE)
REF reference value, used for UNIT values RATIO and DB number constant 0
SIZE length of bar (graph) used for ppm display number constant 100
output description data type value type comment
Y ppm value number variable
M maximum Y number variable
P ppm bar position, always computed for the ppm value in dB (independent of UNIT) number variable


Description

The level meter value vt (t = sample index) is computed for each value xt of the input signal X. The last vt of an evaluation cycle is used to update the outputs Y and P.

TYPE computation of vt
0 or HOLD {\displaystyle v_{t}=\max(|x_{t}|,|x_{t-1}|,..,|x_{t-T+1}|)\!}
1 or EXPONENTIAL {\displaystyle v_{t}=max(|x_{t}|,v_{t-1}.k){\mbox{, with: }}k={\frac {1}{\sqrt[{T}]{2}}}}
2 or RMS {\displaystyle r_{t}={\frac {(r_{t-1}.(T-1)+x^{2})}{T}}}
{\displaystyle v_{t}={\sqrt {2.r_{t}}}}

The last value vt of an evaluation cycle is converted to the selected UNIT and stored in the output Y.

UNIT Y
0 or VALUE {\displaystyle v_{t}\!}
1 or SQUARE {\displaystyle v_{t}^{2}}
2 or RATIO {\displaystyle {\frac {v_{t}}{REF}}}
3 or DB {\displaystyle 20.\log _{10}{\frac {v_{t}}{REF}}}

The output P is set to a value in range 0 to SIZE and can be used to display a level bar. For P always the logarithmic value (level in dB) is used. The level interval -140dB to 0dB is mapped to the position interval 0 to SIZE using a non-linear mapping function.

The output M is the maximum of all computed vt values converted to the selected output unit.

See also

<SP-atoms>

Navigation menu

Personal tools