Programmer Guide/SPU Reference/AVR: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 3: Line 3:
==<code>[SPU AVR <var>X TYP T RS</var> OUT <var>Y</var>]</code>==
==<code>[SPU AVR <var>X TYP T RS</var> OUT <var>Y</var>]</code>==
{|class="einrahmen"
{|class="einrahmen"
!input !!description !!datatype !!value type!!default
!input !!description !!data type !!value type!!default value
|-
|-
|<var>X</var>||data to be averaged ||number, vector, matrix ||variable  
|<var>X</var>||data to be averaged ||number, vector, matrix ||variable  
Line 9: Line 9:
|<var>TYP</var>||averaging method ||number (int.), string||constant
|<var>TYP</var>||averaging method ||number (int.), string||constant
|-
|-
|<var>T</var>||averaging parameter, depends on method ||number or n.c.||<var>TYP</var>=2&rarr;variable<BR><var>TYP</var>&ne;2&rarr;constant
|<var>T</var>||averaging parameter, depends on method ||number or n.c.||<var>TYP</var>=1&rarr;variable<BR><var>TYP</var>&ne;2&rarr;constant
|-
|-
|<var>RS</var>||reset flag||number or n.c. ||variable   
|<var>RS</var>||reset flag||number or n.c. ||variable   
|-
|-
!output !!description !!type !!comment
!output !!description !!data type !!value type!!comment
|-
|-
|<var>Y</var>||averaged input <var>X</var>; same type as <var>X</var> ||variable  
|<var>Y</var>||averaged input data ||same type as <var>X</var> ||variable  
|}
|}


;Description:
;Description:
Line 67: Line 68:
\end{cases}
\end{cases}
</math>
</math>
Since {{STx}} version 4.5.0 the following two new average modes are available, which were used to implement the spectral averaging mode <code>power</code> of the applications [[User Guide/Spectrogram and Parameter Viewer|Viewer2]]  (sectioner) and [[User Guide/Spectrum Viewer|Viewer3]].
:;power:
::<var>TYP</var>=<code>4</code> or <code>power</code>
::<var>T</var> is not used
::* each input element X<sub>i,j</sub> is squared
::* same averaging as for TYP</var>=<code>0</code> is performed
::* square root of each output element Y<sub>i,j</sub> is taken
:;db-power:
::<var>TYP</var>=<code>5</code> or <code>dbpower</code>
::<var>T</var> is not used
::* each input element X<sub>i,j</sub> is converted from dB to squared magnitude (power)
::* same averaging as for TYP</var>=<code>0</code> is performed
::* each output element Y<sub>i,j</sub> is converted to dB
;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 12:00, 16 October 2018

Average input X over evaluation cycles.

[SPU AVR X TYP T RS OUT Y]

input description data type value type default value
X data to be averaged number, vector, matrix variable
TYP averaging method number (int.), string constant
T averaging parameter, depends on method number or n.c. TYP=1→variable
TYP≠2→constant
RS reset flag number or n.c. variable
output description data type value type comment
Y averaged input data same type as X variable


Description

The averaging algorithm is defined by the inputs TYP and T. The atom averages the elements X[i,j]t over evaluation cycles t (i=row index, j=column index, t=cycle counter) and stores the averaged value in the element Y[i,j]t.

The cycle counter t is initialized with 0 and incremented by 1 after each evaluation cycle. The cycle counter is reset, if the input RS is set to a value greater than 0. The input RS is checked each time the SPU is started.

infinite average
TYP=0 or linear
T=0
{\displaystyle Y[i,j]_{t}={\begin{cases}X[i,j]_{t}&{\mbox{if }}t=0\\{\frac {1}{t+1}}(t.Y[i,j]_{t-1}+X[i,j]_{t})&{\mbox{if }}t>0\end{cases}}}
running average
TYP=0 or linear
T>0; T is the (integer) number of averaging cycles
{\displaystyle Y[i,j]_{t}={\begin{cases}{\frac {1}{t+1}}\sum _{z=0}^{t}X[i,j]_{z}&{\mbox{if }}0\leqslant t<T\\{\frac {1}{T}}\sum _{z=0}^{T-1}X[i,j]_{t-z}&{\mbox{if }}t\geqslant T\end{cases}}}
exponential average
TYP=1 or exponential
0<T<1; T is the averaging factor
{\displaystyle Y[i,j]_{t}={\begin{cases}X[i,j]_{t}&{\mbox{if }}t=0{\mbox{ (or }}T{\mbox{ out of range)}}\\{\sqrt {T}}.Y[i,j]_{t-1}+(1-{\sqrt {T}}).X[i,j]_{t}&{\mbox{if }}t>0\end{cases}}}
minimum
TYP=2 or minimum
T is not used
{\displaystyle Y[i,j]_{t}={\begin{cases}X[i,j]_{t}&{\mbox{if }}t=0\\min(Y[i,j]_{t-1},X[i,j]_{t})&{\mbox{if }}t>0\end{cases}}}
maximum
TYP=3 or maximum
T is not used
{\displaystyle Y[i,j]_{t}={\begin{cases}X[i,j]_{t}&{\mbox{if }}t=0\\max(Y[i,j]_{t-1},X[i,j]_{t})&{\mbox{if }}t>0\end{cases}}}

Since STx version 4.5.0 the following two new average modes are available, which were used to implement the spectral averaging mode power of the applications Viewer2 (sectioner) and Viewer3.

power
TYP=4 or power
T is not used
  • each input element Xi,j is squared
  • same averaging as for TYP=0 is performed
  • square root of each output element Yi,j is taken
db-power
TYP=5 or dbpower
T is not used
  • each input element Xi,j is converted from dB to squared magnitude (power)
  • same averaging as for TYP=0 is performed
  • each output element Yi,j is converted to dB
See also

<SP-atoms>

Navigation menu

Personal tools