View Raw SPL
/*****************************************************************************
* *
* UNMERGE.SPL Copyright (C) 2000 DSP Development Corporation *
* All Rights Reserved *
* *
* Author: Randy Race *
* *
* Synopsis: Unmerges (demultiplex) interlaced series *
* *
* Revisions: 18 Feb 2000 RRR Creation *
* *
*****************************************************************************/
#if @HELP_UNMERGE
UNMERGE
Purpose: Unmerges (demultiplexes) an interlaced series
Syntax: UNMERGE(s, n)
s - an interlaced (merged) series or array
n - an integer, number of interlaced series, defaults to 2
Returns: A series or array
Example:
W1: Merge(gsin(100, .01), gnorm(100, .01), gsqr(100, .01, 4))
W2: Unmerge(W1, 3)
W1 contains one column of three interlaced series.
W2 contains three columns where:
Col(w2, 1) == gsin(100, .01)
Col(w2, 2) == gnorm(100, .01)
Col(w2, 3) == gsqr(100, .01, 4)
Remarks:
Unmerge demultiplexes an interlaced series. Each of the
interlaced components must be of the same length.
See Also:
Decimate
Merge
Ravel
Unravel
#endif
/* demultiplex an interlaced series */
unmerge(s, n)
{
local i, outs[];
/* default input args */
if (argc < 2)
{
if (argc < 1)
{
error("unmerge - input series required");
}
n = 2;
}
if (n < 1) error("unmerge - number of series must be positive");
loop (i = 1..n)
{
/* create columns by raveling the decimated component series */
outs = ravel(outs, decimate(s, n, i));
}
return(outs);
}