Programmer Guide/Command Reference/EVAL/cvphase: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
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 10: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