Programmer Guide/SPU Reference/PPM: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 29: Line 29:
;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 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>.
<var>TYPE</var>=<code>0</code> or <code>HOLD</code>:
<var>TYPE</var>=<code>1</code> or <code>HOLD</code>:
::<math>v_t = max(|x_t|, v_{t-1}.k)</math>


The computed value ''v'' is converted to the selected <var>UNIT</var> and stored in the output <var>Y</var>.
The computed value ''v'' is converted to the selected <var>UNIT</var> and stored in the output <var>Y</var>.
Line 53: Line 62:
<[[../#Signal Processing Atoms|SP-atoms]]>
<[[../#Signal Processing Atoms|SP-atoms]]>
<!-- AN, 2.5.2011 -->
<!-- AN, 2.5.2011 -->
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
====PPM - signal peak measurement====
=====Usage:=====
<code>PPM <var>X</var> <var>TYPE</var> <var>T</var> <var>UNIT</var> <var>REF</var></code>
=====Inputs:=====
{|
|-
|X
|signal (sample or frame)
|-
|TYPE
|type of measurement
|-
|T
|measurement interval, integration time (in samples)
|-
|UNIT
|output unit/mode
|-
|REF
|reference value for relative output units/modes
|}
=====Outputs:=====
{|
|-
|<var>Y</var>
|current peak value
|-
|M
|maximum peak value
|}
=====Function:=====
This function implements a set of magnitude measurement methods. If input X is a number, a peak value for each sample is computed. If input <var>X</var> is a vector, only one peak value for the vector is computed.
The computed peak value is converted to the selected unit/mode before it is written to the output. For the relative output modes (<var>UNIT</var> equal 2 or 3) the value of input <var>REF</var> (>0) is used as the reference value.
The output <var>M</var> is set to the maximum of all computed <var>Y</var> values (<var>M</var>(t) = max(<var>Y</var>(0), <var>Y</var>(1), .., <var>Y</var>(t)).
Table: Peak magnitude measurement methods selected by input <var>TYPE</var>{|
|-
|value of TYPE
|method (P = peak value)
|-
|<code>0</code> or <code>HOLD</code>
|The absolute peak magnitude is measured using a sample/hold circuit:if <nowiki>|</nowiki><var>X</var>(t)| > P(t-1) or holdtime > T:P(t) = |<var>X</var>(t)|; holdtime is set to zerootherwise:P(t) = P(t-1); holdtime is incremented
|-
|<code>1</code> or <code>EXPONENTIAL</code>
|Use an exponential decay for peak measurement:P(t) = max(k . P(t<nowiki>-</nowiki>1), |<var>X</var>(t)|)The factor k is set to k=0.51/<var>T</var> . This means the ppm value falls to 50% after <var>T</var> samples, if input values are lower than the ppm output.
|-
|<code>2</code> or <code>RMS</code>
|Pseudo ppm measurement based on running rms magnitude (just for test purposes):(1) r(t) = ((T-1).r(t-1) + <var>X</var>2(t)) / <var>T</var>(2) P(t) = (2.r(t))1/2
|}
Table: Peak magnitude output formats selected by input <var>UNIT</var>{|
|-
|value of UNIT
|conversion
|-
|<code>0</code> or <code>VALUE</code>
|Y(t) = P(t)
|-
|<code>1</code> or <code>SQUARE</code>
|Y(t) = P(t)2
|-
|<code>2</code> or <code>RATIO</code>
|Y(t) = P(t) / <var>REF</var>
|-
|<code>3</code> or <code>DB</code>
|Y(t) = 20.log10(P(t) / <var>REF</var>)
|}

Revision as of 09:19, 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 is computed for each input sample (= value of input X). The last v of an evaluation cycle is used to update the outputs Y and P.

TYPE=0 or HOLD:


TYPE=1 or HOLD:

{\displaystyle v_{t}=max(|x_{t}|,v_{t-1}.k)}



The computed value v is converted to the selected UNIT and stored in the output Y.

UNIT Y
0 or VALUE v
1 or SQUARE v2
2 or RATIO v / REF
3 or DB 20 * log10(v / REF)


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


The output P is set to a value in range 0 to SIZE and can be used to display a level bar. The levels -140dB to 0dB are mapped to the values 0 to SIZE using a non-linear mapping function.

See also

<SP-atoms>

Navigation menu

Personal tools