Unexpectred results using Mod and Unwrap
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I was playing with the Unwrap function when I noticed some unexpected results when working with a phase angle in degrees instead of radians.
The unwarp function unwarps a signal by adding or subtracting a multiple of 2*x. So, in theory unwarp(signal,x) and mod(signal, 2*x) should cancel eachother. This is true for x=pi, but does not seem to hold for any other number. See the example below:
x = pi; % x=pi : ok, x=4 : trouble
% Make some random numbers
signal = 2*x*rand(1,1000);
% Mod(signal,2*x) should be equal to Mod(unwrap(signal,x),2*x)
plot(mod(signal,2*x), mod(unwrap(signal,x),2*x));
Can anybody tell me what I'm missing?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 23 Okt. 2012
This caught me off guard a few years ago. The answer is that although you can adjust the jump tolerance, you cannot adjust the amount of the jump.
See http://www.mathworks.com/help/matlab/ref/unwrap.html and think about the implications of the note highlighted there about the effect of specifying a tolerance less than Pi (i.e., that the lower tolerance doesn't change the jump value in that note.)
0 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!