Unwrap does not work for vector

18 visualizzazioni (ultimi 30 giorni)
Will Hardiman
Will Hardiman il 24 Gen 2022
Risposto: Will Hardiman il 24 Gen 2022
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?

Risposta accettata

Will Hardiman
Will Hardiman il 24 Gen 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?

Più risposte (0)

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by