Bitácora · DCSS · Unidad 4

El pulso que diseñás no es el que llega

Unidad 4 · Conformación de pulso

La filmina 3 presenta el coseno realzado como el pulso que no deja interferencia entre símbolos, y acto seguido dice que el transmisor manda su raíz. Es fácil leer eso como un detalle de implementación: la raíz sería «casi» el mismo pulso, un poco más angosto. No lo es. La raíz del coseno realzado no es un pulso de Nyquist. Muestreada en los instantes de símbolo, con sobremuestreo 4 y rolloff 0,5, deja 9,335 % de interferencia en el símbolo de al lado: un −20,6 dB que no cierra ningún enlace. El cero no existe a la salida del transmisor. Aparece recién cuando el receptor pone la otra mitad.

Y no es un resto de haber truncado el filtro, que es la primera sospecha razonable. Ese número da idéntico a cuatro decimales con 11 taps y con 401. Truncar no lo mueve porque no viene de truncar: viene de que la raíz de un pulso de Nyquist no es un pulso de Nyquist. Lo que sigue es por qué el diseño igual es correcto, y cuál es el precio que sí se paga.

01 · Dos condiciones que se pelean

El receptor no lee el pulso que sale del transmisor: lee lo que queda después de atravesar su propio filtro. El pulso que importa es el de punta a punta,

p(t)=htx(t)∗hrx(t)

y sobre ese p, y sólo sobre ése, se le exigen dos cosas que en principio no tienen nada que ver entre sí.

La primera es la condición de Nyquist: en los instantes de muestreo, el pulso de un símbolo tiene que valer cero en todos los demás.

p(kT)=0,k≠0

La segunda es que el filtro del receptor sea el filtro adaptado, que es el que maximiza la relación señal a ruido en el instante de decisión. Para un pulso real eso significa una cosa muy concreta: el receptor usa el mismo pulso dado vuelta en el tiempo.

hrx(t)=htx(−t)

Puestas juntas, las dos dejan una sola salida. En frecuencia, el pulso de punta a punta es el producto de las dos respuestas, y con el filtro adaptado ese producto es un módulo al cuadrado:

P(f)=Htx(f)·Hrx(f)=|Htx(f)|2

Y si P tiene que ser el coseno realzado, entonces al transmisor no le queda ninguna libertad: manda su raíz cuadrada.

Htx(f)=P(f)

De ahí sale el nombre, y de ahí sale todo lo demás. Partir el pulso en dos mitades iguales es el único reparto que le permite al filtro adaptado existir sin romper el cero. No es una optimización: es la consecuencia de pedir las dos cosas a la vez. Lo que no se dice en voz alta es el precio, y es que ninguna de las dos mitades, por sí sola, cumple lo que el pulso entero cumple.

02 · Lo que deja la mitad del transmisor

La forma de medirlo es la definición misma: muestrear el pulso en los instantes de símbolo, tirar el del pico, y quedarse con el más grande de los que sobran, relativo al pico.

ISI=máxk≠0|p(kT)||p(0)|

Con los parámetros de la cátedra —sobremuestreo N=4, 101 taps— y los pulsos que arman root_raised_cosine.m y raised_cosine.m, los tres candidatos dan esto:

rolloffRRC soloRRC ∗ RRCcoseno realzado
0,12,634 % · −31,6 dB2,430·10⁻³ · −52,3 dB3,9·10⁻¹⁷ · −328 dB
0,36,932 % · −23,2 dB1,193·10⁻³ · −58,5 dB3,6·10⁻¹⁷ · −329 dB
0,59,335 % · −20,6 dB2,324·10⁻⁴ · −72,7 dB3,1·10⁻¹⁷ · −330 dB
0,97,974 % · −22,0 dB1,356·10⁻⁴ · −77,4 dB1,7·10⁻¹⁷ · −336 dB

Tres órdenes de magnitud separan la primera columna de la segunda, y trece separan la segunda de la tercera. La primera columna es el punto de esta nota: no son décimas de por ciento, son unidades enteras. A rolloff 0,5 el símbolo de al lado le mete al pico un 9,3 % de su altura; a rolloff 0,3, casi un 7 %. Y no es que suba con el rolloff: el máximo está en 0,625, con 9,739 %, y de ahí baja — a rolloff 1 queda en 6,667 %. Por eso el deslizador del widget llega hasta 1 y no hasta 0,5: el número no se lee como una tendencia, se lee como una curva con joroba.

Y el peor instante siempre es el mismo: k=±1, el vecino inmediato. A rolloff 0,25 el pico de la raíz vale 1,068310 y la muestra de al lado vale −0,064237 — de ahí sale el 6,013 %. La siguiente, 0,053052; la siguiente, −0,037513. Es una cola que alterna de signo y tarda seis símbolos en bajar de la milésima.

El control que cierra el argumento es el de los taps, porque la primera explicación que uno busca es que el filtro está cortado. No es eso. Truncar cambia cuántas muestras sobreviven, no cuánto valen las que sobreviven — y la peor está en k=±1, que sobrevive siempre. A rolloff 0,25:

taps112141101201401
ISI del RRC6,0130 %6,0130 %6,0130 %6,0130 %6,0130 %6,0130 %

Seis mediciones idénticas. La interferencia que deja la raíz no es un artefacto numérico: es el pulso.

Hay un detalle más, y es contraintuitivo: esa interferencia no crece con el rolloff. Sube desde cero en rolloff 0 hasta un máximo de 9,739 % en rolloff 0,625 y después baja, hasta 6,667 % en rolloff 1. No hay un rolloff seguro y otro peligroso: hay un rolloff peor, y cae justo en el medio del rango que se usa.

03 · Lo mismo, dicho en frecuencia

El criterio de Nyquist tiene su forma en frecuencia, que es la que arma E_folded_spectrum.m: se suman las réplicas del espectro separadas por la tasa de símbolo, y el resultado tiene que ser plano.

∑kP(f−k/T)=T

Es la misma afirmación medida con otro instrumento y sobre otro eje, y no comparte una línea de cuenta con la anterior: una mira muestras en el tiempo, la otra suma réplicas de una transformada. Plegando el espectro de los tres pulsos a 101 taps, con el pico llevado al origen, el rizado sale así:

rolloffRRC soloRRC ∗ RRCcoseno realzado
0,143,540 %3,7958 %0,0000 %
0,339,224 %0,6946 %0,0000 %
0,536,725 %0,2080 %0,0000 %
0,933,425 %0,0624 %0,0000 %

El espectro plegado de la raíz no es plano ni de casualidad: le sobresale un tercio de su propia altura. El del par está a dos décimas de por ciento de serlo, y el del coseno realzado es plano hasta donde la coma flotante sabe contar. Los dos criterios señalan al mismo culpable, y que coincidan medidos por caminos separados es lo que los hace creíbles a los dos.

Vale una advertencia sobre ese plegado, porque es la trampa de la nota que sigue: hay que sumar las réplicas en complejo, y hay que decidir de antemano dónde está el origen de tiempos. Sumar módulos, o plegar un pulso corrido una muestra, da rizado grande para pulsos impecables. Acá alcanza con saber que los números de arriba se midieron con el pico en el origen, y que eso no es un detalle sino parte del criterio.

Simulación Dónde cae el instante de al lado — arriba los tres pulsos, cada uno normalizado a su propio pico; abajo, cuánto vale cada instante de símbolo en decibeles por debajo de ese pico, para el pulso que elijas. En gris el coseno realzado ideal, que es la referencia; en azul el que estás midiendo. Cada varilla de abajo cae debajo de su punto de arriba. Arranca en el par, con el filtro largo y el rolloff grande.
ISI del pulso elegido — peor instante — RRC ∗ RRC contra el RC, todo el registro — y dentro de los ±6 T que se ven — energía del RRC perdida al truncar —

Arrancá donde está: el par contra el coseno realzado, 201 taps, rolloff 0,90. Las dos curvas quedan dibujadas una encima de la otra y las varillas de abajo tocan el piso — en los instantes de símbolo no queda nada, que es exactamente lo que el receptor mide y exactamente lo que el diseño promete. Después cambiá una sola cosa, el desplegable, y mirá la misma medición hecha un filtro antes. Las varillas saltan sesenta decibeles de golpe y la de k=±1 se levanta a un quinto de la altura del panel. Es el mismo enlace, el mismo rolloff y el mismo filtro: lo único que cambió es en qué punto de la cadena se mira.

04 · El precio real: truncar

Que la identidad valga no quiere decir que el filtro la cumpla. En teoría conv(RRC, RRC) es el coseno realzado; en el DSP es una convolución de dos respuestas de largo finito, y lo que se mide es cuánto cuesta ese corte. Normalizando las dos curvas por su pico, con 101 taps:

rolloffmáx. en todo el registromáx. dentro de ±6 T
0,13,132·10⁻³2,796·10⁻⁴
0,31,387·10⁻³2,369·10⁻⁵
0,53,579·10⁻⁴1,094·10⁻⁵
0,91,356·10⁻⁴3,031·10⁻⁶

La columna del medio es la que reproduce lo que compara F_RRC_RRC_RC.m, y la lectura es la que se espera: con rolloff chico el pulso tiene colas largas, 101 taps se comen más cola, y el desacuerdo empeora 23 veces al bajar de 0,9 a 0,1. La identidad es exacta en el papel; esto es lo que cuesta un filtro de largo finito, y hay que decirlo así y no decir que «coinciden».

La tercera columna hace falta porque el máximo de la segunda no cae adentro del pulso: cae donde se cortó el filtro del transmisor —a 12,25 símbolos del centro con 101 taps, a 25 con 201—, que es el punto a partir del cual la convolución ya no tiene con qué seguir y el coseno realzado de referencia todavía tiene cola. Ese máximo mide sobre todo el tamaño de la cola que quedó sin comparar. En la zona donde el receptor de verdad muestrea, el desacuerdo es un orden de magnitud menor, y la razón entre rolloff 0,1 y 0,9 sube a 92. Los dos números son ciertos y dicen cosas distintas: por eso el widget muestra los dos.

Lo mismo pasa con la interferencia que le queda al par. Con 101 taps y rolloff 0,5 vale 2,324·10⁻⁴, y el instante donde cae es k=±13; con 201 taps baja a 1,732·10⁻⁴ y se corre a k=±25. Siempre el símbolo donde se cortó la raíz, que es la mitad del largo de la convolución. La interferencia residual del par vive en el corte del filtro, no en el pulso, y ésa es toda la diferencia con la de la raíz, que vive en k=±1 y no se mueve de ahí por más taps que se le agreguen.

Cuánto se pierde al cortar se puede medir directo, sumando el cuadrado de los taps: a rolloff 0,1 con 21 taps se va el 1,52 % de la energía del pulso, con 51 taps el 0,14 % y con 101 el 0,011 %. A rolloff 0,9 esa misma cuenta da 0,0146 %, 0,0010 % y 0,0001 %. Es otra cara del mismo hecho: el rolloff chico compra ancho de banda pagando largo de filtro.

05 · Rolloff cero, donde todo se da vuelta

Hay un caso donde la tesis de esta nota es falsa, y conviene mirarlo porque explica por qué es cierta en todos los demás. En rolloff 0 el coseno realzado es el sinc, su espectro es un rectángulo ideal, y la raíz de un rectángulo es el mismo rectángulo salvo una escala. O sea: en rolloff 0 la raíz y el coseno realzado son el mismo pulso. Medido con 201 taps, la mayor diferencia muestra a muestra entre los dos es 0 exacto — no chica: cero, el mismo arreglo de números. Y la interferencia que deja la raíz sola es −317 dB, cero de máquina.

Con lo cual, en rolloff 0, el único que deja interferencia es el par: −33,0 dB con 201 taps, y un desacuerdo contra el coseno realzado de 2,250·10⁻² — con esos mismos 201 taps, el rolloff 0,9 da 7,424·10⁻⁵, o sea trescientas veces menos. Todo al revés que en el resto de la tabla. La razón es la de siempre: las colas del sinc caen como 1/t, que es lo más lento que una cola puede caer, y la convolución de dos pulsos recortados así no reconstruye nada. Se ve solo en el widget: llevá el rolloff a 0,00 y pasá del par a la raíz.

Ahí está la razón práctica de que el rolloff nunca sea cero. No es sólo que un rectángulo perfecto no se pueda construir: es que el reparto en dos mitades deja de funcionar cuando el pulso tarda infinito en apagarse. El rolloff es lo que hace implementable a la raíz, y el precio de que exista es exactamente la interferencia que la raíz deja cuando se la mira sola.

06 · Qué significa cuando algo sale mal

La consecuencia de ingeniería es que no hay ningún punto de la cadena, antes del filtro del receptor, donde la señal deba verse limpia. Un diagrama de ojo pinchado a la salida del transmisor sale cerrado, y está bien que salga cerrado: ese ojo se abre recién después del filtro adaptado. Medir ahí y pedir un ojo abierto es pedirle al hardware algo que el diseño nunca prometió.

También explica por qué el filtro del receptor no es un accesorio contra el ruido. Se lo presenta como «el que mejora la relación señal a ruido», y lo es — pero además es la mitad del pulso que hace que el cero exista. Sacarlo no cuesta unos decibeles de sensibilidad: cuesta el 9,3 % de interferencia de la primera columna, que no se recupera con más potencia.

Y deja planteada la pregunta que abre lo que viene. Si el cero de punta a punta depende de que el receptor sea exactamente el espejo del transmisor, ¿qué pasa cuando en el medio hay un canal? Ahí el filtro adaptado se adapta al transmisor más el canal, deja de ser el espejo del pulso solo, y las dos condiciones que en esta nota se conciliaron vuelven a pelearse.

Para tener a mano

  1. La condición de Nyquist se le pide al pulso de punta a punta p=htx∗hrx, nunca a htx solo. Con el filtro adaptado, P=|Htx|2, y de ahí que el transmisor mande la raíz. Partir en dos mitades iguales es el único reparto que deja convivir las dos condiciones.
  2. El RRC por sí solo no es un pulso de Nyquist: 9,335 % de interferencia a rolloff 0,5 (−20,6 dB), 6,932 % a rolloff 0,3 y 2,634 % a rolloff 0,1. El par RRC∗RRC baja a 2,3·10⁻⁴ y el coseno realzado ideal a 3·10⁻¹⁷.
  3. No es truncación: la ISI de la raíz da 6,0130 % a rolloff 0,25 con 11, 21, 41, 101, 201 y 401 taps, el mismo número a cuatro decimales. El peor instante es siempre k=±1.
  4. Y no crece con el rolloff: tiene un máximo de 9,739 % en rolloff 0,625 y baja a los dos lados.
  5. El espectro plegado dice lo mismo desde el otro lado: 36,7 % de rizado para la raíz sola a rolloff 0,5, 0,21 % para el par, 0,0000 % para el coseno realzado.
  6. El desacuerdo entre conv(RRC, RRC) y el coseno realzado es el precio de truncar: 3,132·10⁻³ a rolloff 0,1 contra 1,356·10⁻⁴ a rolloff 0,9, con 101 taps — 23 veces peor con las colas largas. Pero ese máximo cae en la última muestra del registro; dentro de los ±6 símbolos que importan da 2,796·10⁻⁴ contra 3,031·10⁻⁶.
  7. La interferencia residual del par vive en el borde del recorte —k=±13 con 101 taps, k=±25 con 201—, no en el centro del pulso. La de la raíz vive en el vecino inmediato y no se mueve.
  8. En rolloff 0 se invierte todo: la raíz y el coseno realzado son el mismo arreglo de números (diferencia 0 exacta) y el que falla es el par, con −33,0 dB. Las colas del sinc caen como 1/t y no hay largo de filtro que alcance.
  9. Consecuencia práctica: el ojo a la salida del transmisor está cerrado por diseño, y el filtro del receptor es la mitad del pulso que hace existir el cero.
← Anterior Siguiente → Inicio