Unwrap does not work for vector

18 views (last 30 days)
I have a vector, y, calculated as atan(a/b). Naturally when b is close to 0 the tan function exhibits a phase wrap:
y = atan(a/b);
plot(y)
title('Wrapped function')
I can manually check the jump size:
plot(diff(y))
title('Y(n) - Y(n-1)')
Clearly there are jumps greater than 3. But when I use unwrap:
plot(unwrap(y,3))
title('"Unwrapped" function')
The function clearly is not unwrapped. Note I have used a tolerance of 3, and there are differences larger than 3. Even if I set the tolerance to 0.1, the same behaviour occurs.
I have tested this on R2019a and R2020a and see the same behaviour.
What have I done wrong?

Accepted Answer

Will Hardiman
Will Hardiman on 24 Jan 2022
I just re-read the documentation for unwrap, where it clearly says:
Q = unwrap(P,tol) compares the jump between elements of P to the jump threshold tol instead of the default value π radians. If you specify a jump threshold less than π, unwrap uses the default jump threshold π.
Perhaps unwrap should give a warning when tol < pi, because it's misleading otherwise?

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!