Programmer Guide/Command Reference/EVAL/cvphase: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:
Convert phase spectrum.
Convert phase spectrum.


;Usage:<code>cvphase(<var>p</var>, <var>ifmt</var>,  <var>ipos</var>, <var>ibin</var>, <var>ofmt</var>, <var>opos</var>, <var>obin</var>, <var>nbin</var>,  <var>orev</var>, <var>sr</var>, <var>len</var>,  <var>hop</var>)</code>
;Usage:<code>cvphase(<var>p</var>, <var>ifmt</var>,  <var>ipos</var>, <var>ibin</var>, <var>ofmt</var>, <var>opos</var>, <var>obin</var>, <var>nbin</var>,  <var>rev</var>, <var>sr</var>, <var>len</var>,  <var>hop</var>)</code>
:;<var>p</var>: original phase spectrum at frame ''ipos'' and in the format ''ifmt''; ''p'' is a vector with ''n'' values
:;<var>p</var>: original phase spectrum at frame ''ipos'' and in the format ''ifmt''; ''p'' is a vector with ''n'' values
:;<var>ifmt, ofmt</var>: input and output phase format ('''0''' = differences, '''1''' = locked phase, '''2''' = phase (not locked))
:;<var>ifmt, ofmt</var>: input and output phase format ('''1''' = locked phase, '''2''' = normal phase (not locked))
:;<var>ipos, opos</var>: input and output frame index
:;<var>ipos, opos</var>: input and output frame index
:;<var>ibin, obin</var>: input and output spectral bin
:;<var>ibin, obin</var>: input and output spectral bin
:;<var>nbin</var>: number of spectral bins to convert
:;<var>nbin</var>: number of spectral bins to convert
:;<var>rev</var>:reverse output phase (0=no, 1=yes)
:;<var>rev</var>:reverse output phase (0=no, 1=yes)
:;<var>sr</var>:signal sampling rate
:;<var>sr</var>:signal sampling rate in Hz; this argument is currently not used but must be supplied!
:;<var>len, hop</var>:transformation length and hopsize (in samples) used for analysis and resynthesis
:;<var>len, hop</var>:transformation length and hopsize (in samples) used for analysis and resynthesis
;Description:
;Description: This function replaces the following macro code
;Result:A vector ''r'' with ''nbin'' values, containing the converted phase values.
<pre>
 
    [macro cvphase arg: #p #ifmt #ipos #ibin #ofmt #opos #obin #nbin #rev #sr #len #hop]
    #dp  := eval 2 * pi * $#hop / $#len
    #idt := eval $#ifmt == 2 ? 0 : $#dp * $#ipos
    #odt := eval $#ofmt == 2 ? 0 : $#dp * $#opos
    #r := eval init($#nbin,1)
    for #i := 0 to $#i < $#nbin step #i := int $#i+1
        #z := eval ($#p[$#i] + pi + ($#i+$#ibin)*$#idt) % (2*pi)
        if $#rev == 1 #z := eval -$#z
        $#r[$#i] := eval ($#z - ($#i+$#obin)*$#odt) % (2*pi) - pi
    end
    exit 1 set $#r
</pre>
;Result:A vector ''r'' with ''nbin'' values, containing the converted phase values.  
:Note: The input and output phase values are in the range <code>-pi..pi</code>.
;See also: [[../hcomb|hcomb]], [[../optmm|optmm]], [[Programmer_Guide/BScript#MulAc|script application '''MulAc''']]
;See also: [[../hcomb|hcomb]], [[../optmm|optmm]], [[Programmer_Guide/BScript#MulAc|script application '''MulAc''']]


[[../#Functions|<function list>]]
[[../#Functions|<function list>]]

Revision as of 14:06, 20 April 2011

Convert phase spectrum.

Usage
cvphase(p, ifmt, ipos, ibin, ofmt, opos, obin, nbin, rev, sr, len, hop)
p
original phase spectrum at frame ipos and in the format ifmt; p is a vector with n values
ifmt, ofmt
input and output phase format (1 = locked phase, 2 = normal phase (not locked))
ipos, opos
input and output frame index
ibin, obin
input and output spectral bin
nbin
number of spectral bins to convert
rev
reverse output phase (0=no, 1=yes)
sr
signal sampling rate in Hz; this argument is currently not used but must be supplied!
len, hop
transformation length and hopsize (in samples) used for analysis and resynthesis
Description
This function replaces the following macro code
    [macro cvphase arg: #p #ifmt #ipos #ibin #ofmt #opos #obin #nbin #rev #sr #len #hop]
    #dp  := eval 2 * pi * $#hop / $#len
    #idt := eval $#ifmt == 2 ? 0 : $#dp * $#ipos
    #odt := eval $#ofmt == 2 ? 0 : $#dp * $#opos
    #r := eval init($#nbin,1)
    for #i := 0 to $#i < $#nbin step #i := int $#i+1
        #z := eval ($#p[$#i] + pi + ($#i+$#ibin)*$#idt) % (2*pi)
        if $#rev == 1 #z := eval -$#z
        $#r[$#i] := eval ($#z - ($#i+$#obin)*$#odt) % (2*pi) - pi
    end
    exit 1 set $#r
Result
A vector r with nbin values, containing the converted phase values.
Note: The input and output phase values are in the range -pi..pi.
See also
hcomb, optmm, script application MulAc

<function list>

Navigation menu

Personal tools