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

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
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>rev</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
Line 17: Line 16:
     #idt := eval $#ifmt == 2 ? 0 : $#dp * $#ipos
     #idt := eval $#ifmt == 2 ? 0 : $#dp * $#ipos
     #odt := eval $#ofmt == 2 ? 0 : $#dp * $#opos
     #odt := eval $#ofmt == 2 ? 0 : $#dp * $#opos
     #r := eval init($#nbin,1)
     #r := eval init($#nbin,1,0)
     for #i := 0 to $#i < $#nbin step #i := int $#i+1
     for #i := 0 to $#i < $#nbin step #i := int $#i+1
         #z := eval ($#p[$#i] + pi + ($#i+$#ibin)*$#idt) % (2*pi)
         #z := eval ($#p[$#i] + pi + ($#i+$#ibin)*$#idt) % (2*pi)

Latest revision as of 11:30, 21 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,0)
    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