Desenvuelve los ángulos de fase para generar curvas de fase más suaves.
Sintaxis
PhaseUnwrap(Phase, [ Jump ] [ , Tolerance ])
La sintaxis de la función PhaseUnwrap consta de los siguientes elementos:
Parte |
Descripción |
|---|---|
Phase |
La curva del ángulo de fase que debe corregirse. Las estructuras de datos permitidas son Serie de datos, Matriz de datos, Señal, Serie de señales y Serie de señales con componente X bidimensional. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo. Si el argumento es una lista, la función se ejecuta para cada elemento de la lista y el resultado también es una lista. |
Jump |
La altura de salto para desenvolver la curva del ángulo de fase. La curva (discontinua) del ángulo de fase se corrige sumando o restando múltiplos de Jump. Si no se especifica el argumento, se establece en el valor 360 si Phase tiene la unidad °, en caso contrario, se establece en el valor TWO_PI. Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo. Se ignora la unidad del argumento. El valor debe ser mayor que 0. Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso. |
Tolerance |
El valor mínimo de tolerancia necesario para desplegar la curva del ángulo de fase. Un valor de ángulo de fase solo se corregirá si la diferencia absoluta entre dos valores de ángulo de fase consecutivos es mayor que Tolerance. Si no se especifica el argumento, se establece a la mitad del valor del argumento Jump. Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo. Se ignora la unidad del argumento. El valor debe ser mayor que 0. Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso. |
Notas
El tipo de datos del resultado es siempre En coma flotante de 64 bits.
La estructura del resultado corresponde a la del argumento Phase.
En el caso de las estructuras de datos compuestas, solo se calcula el componente Y. Los componentes X y Z, si existen, se transfieren sin cambios al resultado.
Para matrices de datos y series de señales, el cálculo se realiza columna por columna. Los valores se convierten en números en coma flotante de 64 bits antes del cálculo.
Utilizando el comando PhaseUnwrap(Phase), por ejemplo, la curva de fase de un filtro puede desenvolverse de la siguiente manera:

La curva de fase mostrada en este diagrama corresponde a la curva de fase de un filtro Butterworth pasa banda IIR de 5.º orden (con frecuencias de corte 0,15 y 0,35). El código FPScript correspondiente es el siguiente:
Nota Si Tolerance tuviera un valor inferior a la mitad de Jump, una corrección de fase sumando o restando múltiplos de Jump solo aumentaría la discontinuidad. Así, si para el argumento Tolerance se indica un valor inferior a la mitad de Jump, entonces el algoritmo corrige automáticamente Tolerance a la mitad del valor de Jump.
Disponibilidad
FlexPro Basic, Professional, Developer Suite
Ejemplos
PhaseUnwrap({38, 44, 50, 416, 422}, 360) |
Da como resultado la serie de datos {38, 44, 50, 56, 62}. Tolerance se establece en el valor 360/2 = 180, ya que no se especificó el argumento. |
PhaseUnwrap({38, 44, 50, 416, 422}, 360, 140) |
Da como resultado la serie de datos {38, 44, 50, 56, 62}. Tolerance se corrige al valor 180, ya que 140 es menor que 360/2 = 180. |
PhaseUnwrap({38, 44, 50, 416, 422} * 1 °) |
Da como resultado la serie de datos {38 °, 44 °, 50 °, 56 °, 62 °}. El argumento Jump se ajustó automáticamente al valor 360, ya que el argumento Phase tiene la unidad °. |
PhaseUnwrap(Phase(AnalyticSignal(realSig))) |
Desenvuelve la fase de una señal analítica calculada a partir de una señal real. El argumento Jump se ajustó automáticamente al valor TWO_PI, ya que la función Phase no pasa ninguna unidad o pasa la unidad rad a su resultado. |