[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unwrap a function
From: |
ldoolitt |
Subject: |
Re: Unwrap a function |
Date: |
Fri, 16 Oct 1998 08:59:45 -0400 (EDT) |
Jim et al. -
> Bill Lash writes:
> > I don't have access to Matlab, so I don't know if it uses the same
> > calling conventions or not. It should be pretty easy to modify.
>
> Excellent! I didn't know about filter().
>
> I have only one suggestion: If the actual range of the data falls in
> the interval, say, (5.8, 2pi], then the amount to be added for a jump
> should be exactly 2pi. Similar special arrangements might be made for
> wraps of pi or 1.
I just looked up Matlab's unwrap(). I have never used it, but
have used and programmed the same concept before. The Matlab
function _only_ adds and subtracts multiples of 2*pi. If someone
wanted to _supply_ some other "modulus", perhaps as an optional
third argument, that's fine. I don't see any value to having the
program _guess_ a value for the modulus.
The Matlab routine's (optional) second argument is a cutoff, default
of pi. Only jumps larger than cutoff trigger a change in the
2*pi multiplier.
The first (required) argument is, of course, the input data array.
If given a matrix, the Matlab manual says it will operate on each
columns independently.
I have set up something similar that is intended to operate on
experimental data, and it is only useful if the data points are
"close enough" that the unwrap works accurately. I had the routine
spit out a warning message if jumps were detected between pi/2 and
3*pi/2. Jumps between 3*pi/2 and 2*pi are corrected silently.
Normally, the input data range is 0 to 2*pi (or -pi to pi), so
jumps never exceed 2*pi.
- Larry Doolittle <address@hidden>