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ódulo 2*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])
Saída
   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.

Veja também

angle mod rem cumsum diff