Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

zp2sos

Convierta los parámetros de filtro de ganancia de polo cero en secciones de segundo orden en forma

Sintaxis

[sos,g] = zp2sos(z,p,k)
[sos,g] = zp2sos(z,p,k,'order')
[sos,g] = zp2sos(z,p,k,'order','scale')
[sos,g] = zp2sos(z,p,k,'order','scale',zeroflag)
sos = zp2sos(...)

Descripción

convierte una representación de ganancia de polo cero de tiempo discreto de un filtro digital determinado en una representación de sección de segundo orden equivalente.zp2sos

[sos,g] = zp2sos(z,p,k) crea una matriz en forma de sección de segundo orden con una ganancia equivalente al filtro de ganancia de polo cero de tiempo discreto representado por argumentos de entrada y.sosgzpk Vectores y contienen los ceros y polos de la función de transferencia del filtro (), no necesariamente en un orden particular.zpHz

H(z)=k(zz1)(zz2)(zzn)(zp1)(zp2)(zpm)

donde y son las longitudes de y, respectivamente, y es una ganancia escalar.nmzpk Los ceros y los polos deben ser parejas conjugadas reales o complejas. es una matriz de-por-6sosL

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

cuyas filas contienen los coeficientes numerador y denominador Bik Y Unik de las secciones de segundo orden de ().Hz

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2

El número de filas de la matriz es el entero más cercano mayor o igual al máximo de/2 y/2.Lsosnm

[sos,g] = zp2sos(z,p,k,'order') especifica el orden de las filas en, dondesos 'order' Es

  • , para ordenar las secciones de modo que la primera fila contenga los polos más cercanos al círculo de la unidad'down'sos

  • , para ordenar las secciones de modo que la primera fila contenga los polos más alejados del círculo de la unidad (predeterminado)'up'sos

[sos,g] = zp2sos(z,p,k,'order','scale') Especifica la escala deseada de la ganancia y los coeficientes del numerador de todas las secciones de segundo orden, donde 'scale' Es

  • , para no aplicar ningún escalado (predeterminado)'none'

  • , para aplicar la escala de la norma infinita'inf'

  • , para aplicar el escalado de 2 normativas'two'

El uso de escalado de norma infinita en conjunción con ordenación minimiza la probabilidad de desbordamiento en la realización.up El uso de la escala de 2 normas junto con el orden minimiza el ruido de redondeo de pico.down

Nota

La escala de la norma infinita y el escalado de 2 normas son apropiadas solo para las implementaciones de forma directa II.

[sos,g] = zp2sos(z,p,k,'order','scale',zeroflag) Especifica si se mantienen juntos ceros reales que son los negativos entre sí en lugar de ordenarlos según la proximidad a los polos. Ajuste para mantener los ceros juntos y da como resultado un numerador con un coeficiente medio igual a cero.zeroflagtrue El valor predeterminado es.zeroflagfalse

sos = zp2sos(...) Incrusta la ganancia general del sistema, en la primera sección,gH1(), de modo quez

H(z)=k=1LHk(z)

Nota

No se recomienda incrustar la ganancia en la primera sección al escalar una estructura de forma directa II y puede dar lugar a una escala errática. Para evitar la incrustación de la ganancia, utilice con dos salidas.ss2sos

Ejemplos

contraer todo

Diseñe un filtro de paso bajo Butterworth de 5º orden usando la función con salida expresada en forma de cero polos-ganancia.butter Especifique la frecuencia de corte para que sea una quinta de la frecuencia Nyquist. Convierta el resultado en secciones de segundo orden. Visualice la respuesta de magnitud.

[z,p,k] = butter(5,0.2); sos = zp2sos(z,p,k)
sos = 3×6

    0.0013    0.0013         0    1.0000   -0.5095         0
    1.0000    2.0000    1.0000    1.0000   -1.0966    0.3554
    1.0000    2.0000    1.0000    1.0000   -1.3693    0.6926

fvtool(sos)

Algoritmos

utiliza un algoritmo de cuatro pasos para determinar la representación de la sección de segundo orden para un sistema de ganancia de polo cero de entrada:zp2sos

  1. Agrupa los ceros y los polos en pares conjugados complejos utilizando la función.cplxpair

  2. Forma la sección de segundo orden haciendo coincidir el polo y cero pares de acuerdo con las siguientes reglas:

    1. Haga coincidir los polos más cercanos al círculo de la unidad con los ceros más cercanos a esos polos.

    2. Haga coincidir los polos que se encuentran más cerca del círculo de la unidad con los ceros más cercanos a esos polos.

    3. Continúe hasta que todos los polos y ceros coincidan.

    agrupa los polos reales en secciones con los polos reales más cercanos a ellos en valor absoluto.zp2sos La misma regla contiene ceros reales.

  3. Ordena las secciones de acuerdo con la proximidad de los pares de polos al círculo de la unidad. normalmente ordena las secciones con polos más cercanos al círculo de la unidad por última vez en la cascada.zp2sos Usted puede decir para ordenar las secciones en el orden inverso especificando la bandera.zp2sosdown

  4. escala las secciones según la norma especificada en elzp2sos 'scale' Argumento. Para arbitrario (), el escalado se define medianteHω

    Hp=[12π02π|H(ω)|pdω]1/p

    donde puede ser o bien 2.p Consulte las referencias para obtener más información sobre el escalado. Esta escala es un intento de minimizar el desbordamiento o el ruido de redondeo de pico en las implementaciones de filtro de punto fijo.

Referencias

[1] Jackson, L. B. Digital Filters and Signal Processing, 3rd Ed. Boston: Kluwer Academic Publishers, 1996, chap. 11.

[2] Mitra, S. K. Digital Signal Processing: A Computer-Based Approach. New York: McGraw-Hill, 1998, chap. 9.

[3] Vaidyanathan, P. P. “Robust Digital Filter Structures.” Handbook for Digital Signal Processing (S. K. Mitra and J. F. Kaiser, eds.). New York: John Wiley & Sons, 1993, chap. 7.

Consulte también

| | | | | |

Introducido antes de R2006a