unwrap
Remove saltos maiores que pi em uma sequência de fase somando múltiplos de 2*pi.
Categoria: Mathematics > Elementary Math
Sintaxe
Q = unwrap(P)
Corrige ângulos de fase em radianos ao longo da primeira dimensão não singleton.
Q = unwrap(P, tol)
Usa tol em vez de pi como limiar de salto.
Q = unwrap(P, [], dim)
Faz o unwrap ao longo da dimensão dim.
Descrição
Funções como angle devolvem a fase no intervalo de -pi a pi, então uma fase que cresce de forma contínua parece saltar de volta no limite. unwrap examina a diferença entre elementos consecutivos. Quando essa diferença excede a tolerância em módulo, soma ou subtrai o múltiplo de 2*pi que traz o passo de volta para dentro da tolerância, e propaga essa correção para todos os elementos seguintes.
O primeiro elemento nunca é alterado. O resultado é útil para plotar a resposta em fase de um filtro ou para acompanhar um sinal que gira.
Argumentos de entrada
P- Vetor ou matriz de ângulos de fase em radianos.
tol- Tamanho do salto acima do qual a correção é aplicada. O padrão é
pi. dim- Dimensão ao longo da qual fazer o unwrap.
Argumentos de saída
Q- Array do mesmo tamanho de
P, com os mesmos valores módulo2*pi, porém contínuo.
Exemplo
Continuando uma rampa de fase
t = 0:0.5:6;
wrapped = angle(exp(1i*t));
unwrapped = unwrap(wrapped);
disp(max(abs(unwrapped - t)) < 1e-12)
unwrap([0 2.5 5 0.5])
1
ans = 1×4
0 2.5000 5.0000 6.7832
O último valor, 0.5, sobe 2*pi porque o passo de 5 para 0.5 é maior que pi em módulo.