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 |
||
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> | ;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 ( | :;<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