Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » 3. Ortogonalización Gram-Schmidt y teoría básica de las Constelaciones

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

3. Ortogonalización Gram-Schmidt y teoría básica de las Constelaciones

Module by: Mariangela Mezoa. E-mail the authorEdited By: Mariangela MezoaTranslated By: Mariangela Mezoa

Summary: Este módulo contiene la teoría correspondiente al método de Ortogonalización Gram-Schmidt aplicado para el proceso de la comunicación digital. Se explicarán los pasos necesarios para generar las bases ortogonales dados ciertos parámetros de la señal. Finalmente, teniendo las bases calculadas, se explicará el procedimiento para hallar la constelación correspondiente.

ORTOGONALIZACIÓN GRAM-SCHMIDT Y TEORÍA BÁSICA DE LAS CONSTELACIONES

González C. Y. Venuska

Mezoa R. Mariangela

Resumen

Este módulo contiene la teoría correspondiente al método de Ortogonalización Gram-Schmidt aplicado para el proceso de la comunicación digital. Se explicarán los pasos necesarios para generar las bases ortogonales dados ciertos parámetros de la señal. Finalmente, teniendo las bases calculadas, se explicará el procedimiento para hallar la constelación correspondiente.

En matemáticas, el concepto de Ortogonalidad está referido al de Perpendicularidad. Se dice que dos vectores pertenecientes a cierto espacio vectorial (V) son ortogonales si se cumple la condición de que el producto escalar de ellos da cero, es decir:

Sean : x V y V Si : x , y = x y = 0 Entonces : x y Sean : x V y V Si : x , y = x y = 0 Entonces : x y alignl { stack { size 12{ ital "Sean":} {} # size 12{x in V} {} # size 12{y in V} {} # {} # size 12{ ital "Si":} {} # size 12{ langle x,y rangle =x cdot y=0} {} # {} # size 12{ ital "Entonces":} {} # size 12{x ortho y} {} } } {}
(1)

A partir de un conjunto de vectores linealmente independientes se puede construir un nuevo conjunto de vectores ortonormales (Que cumplan con las condiciones de ortogonalidad y norma vectorial). Esto se conoce como el método de OrtogonalizaciónGram-Schmidt (G-S). Pero, ¿cómo aplicamos este concepto para un sistema de comunicación digital?

Ortogonalización Gram-Schmidt

Supongamos que se tiene una señal Si(t) que representa a un símbolo mi. Se estima que esta señal pase por el receptor que está encargado de obtener cada símbolo de la misma. Sin embargo, es evidente que al pasar por el canal, la señal se contaminará debido a la existencia de ruido en el sistema. En una condición ideal, el resultado sería el siguiente:

Figure 1:
Figure 1 (graphics1.png)

Al introducir ruido (AWGN) en el sistema, quedaría como sigue:

{}

Figure 2: Sistema de recepción con introducción de ruido AWGN.
Figure 2 (graphics2.png)

La segunda situación ocasiona que a la salida del receptor no se obtiene el símbolo mi como tal, más bien se obtiene un estimado del símbolo original.

Es en este punto en donde entra el concepto de ortogonalización G-S: La señal Si(t) puede expresarse en función de un conjunto finito de bases (o vectores) ortonormales (U), de forma tal que cada forma de onda estaría relacionada con un coeficiente que llamaremos s(Una señal de energía). Matemáticamente tendríamos esto:

Si ( t ) = i = 1 n s ij . U j ( t ) Si ( t ) = i = 1 n s ij . U j ( t ) size 12{ ital "Si" \( t \) = Sum cSub { size 8{i=1} } cSup { size 8{n} } {s rSub { size 8{ ital "ij"} } "." U rSub { size 8{j} } \( t \) } } {}
(2)

Es decir, a cada símbolo mi se le asocia una forma de onda s. Si desarrollamos la fórmula anterior, para todos los símbolos posibles, tendríamos un sistema de ecuaciones como sigue:

s 1 ( t ) = s 11 . U 1 ( t ) + s 12 . U 2 ( t ) + s 13 . U 3 ( t ) + . . . + s 1n . U n ( t ) s 2 ( t ) = s 21 . U 1 ( t ) + s 22 . U 2 ( t ) + s 23 . U 3 ( t ) + . . . + s 2n . U n ( t ) s 3 ( t ) = s 31 . U 1 ( t ) + s 32 . U 2 ( t ) + s 33 . U 3 ( t ) + . . . + s 3n . U n ( t ) s m ( t ) = s m1 . U 1 ( t ) + s m2 . U 2 ( t ) + s m3 . U 3 ( t ) + . . . + s mn . U n ( t ) s 1 ( t ) = s 11 . U 1 ( t ) + s 12 . U 2 ( t ) + s 13 . U 3 ( t ) + . . . + s 1n . U n ( t ) s 2 ( t ) = s 21 . U 1 ( t ) + s 22 . U 2 ( t ) + s 23 . U 3 ( t ) + . . . + s 2n . U n ( t ) s 3 ( t ) = s 31 . U 1 ( t ) + s 32 . U 2 ( t ) + s 33 . U 3 ( t ) + . . . + s 3n . U n ( t ) s m ( t ) = s m1 . U 1 ( t ) + s m2 . U 2 ( t ) + s m3 . U 3 ( t ) + . . . + s mn . U n ( t ) alignl { stack { size 12{s rSub { size 8{1} } \( t \) =s rSub { size 8{"11"} } "." U rSub { size 8{1} } \( t \) +s rSub { size 8{"12"} } "." U rSub { size 8{2} } \( t \) +s rSub { size 8{"13"} } "." U rSub { size 8{3} } \( t \) + "." "." "." +s rSub { size 8{1n} } "." U rSub { size 8{n} } \( t \) } {} # s rSub { size 8{2} } \( t \) =s rSub { size 8{"21"} } "." U rSub { size 8{1} } \( t \) +s rSub { size 8{"22"} } "." U rSub { size 8{2} } \( t \) +s rSub { size 8{"23"} } "." U rSub { size 8{3} } \( t \) + "." "." "." +s rSub { size 8{2n} } "." U rSub { size 8{n} } \( t \) {} # s rSub { size 8{3} } \( t \) =s rSub { size 8{"31"} } "." U rSub { size 8{1} } \( t \) +s rSub { size 8{"32"} } "." U rSub { size 8{2} } \( t \) +s rSub { size 8{"33"} } "." U rSub { size 8{3} } \( t \) + "." "." "." +s rSub { size 8{3n} } "." U rSub { size 8{n} } \( t \) {} # dotsvert {} # s rSub { size 8{m} } \( t \) =s rSub { size 8{m1} } "." U rSub { size 8{1} } \( t \) +s rSub { size 8{m2} } "." U rSub { size 8{2} } \( t \) +s rSub { size 8{m3} } "." U rSub { size 8{3} } \( t \) + "." "." "." +s rSub { size 8{ ital "mn"} } "." U rSub { size 8{n} } \( t \) {} } } {}
(3)

El objetivo en el segundo sistema mostrado en la Figura 1 es el de obtener el estimado que más se aproxime al valor real. Esto se hace minimizando la energía de la señal de error entre el símbolo original y el estimado:

s j = 0 T s ( t ) . U j ( t ) dt j = 1,2,3, . . . , N s j = 0 T s ( t ) . U j ( t ) dt j = 1,2,3, . . . , N alignl { stack { size 12{s rSub { size 8{j} } = Int cSub { size 8{0} } cSup { size 8{T} } {s \( t \) "." U rSub { size 8{j} } \( t \) ital "dt"} } {} # j=1,2,3, "." "." "." ,N {} } } {}
(4)

Si lo vemos desde la perspectiva vectorial, el procedimiento será entonces el de obtener una representación de la señal en función de dos vectores en el plano. El estimado del vector original sería entonces la proyección de éste sobre el plano:

Figure 3: Ejemplo aplicado a vectores. ŝ(t) es el estimado de cada forma de onda original s(t) y e(t) sería la introducción de ruido de AWGN en el sistema.
Figure 3 (graphics3.png)

Habiendo explicado la síntesis teórica de la ortogonalización, ¿Cómo podemos hallar las bases necesarias para representar las señales de nuestro sistema? Para ello deben seguirse estos pasos:

Supongamos que se da un conjunto de señales de energía si(t) que se quieren representar por medio de bases Uj en un intervalo de tiempo [0,T]:

Si ( t ) = i = 1 n s ij . U j ( t ) Si ( t ) = i = 1 n s ij . U j ( t ) size 12{ ital "Si" \( t \) = Sum cSub { size 8{i=1} } cSup { size 8{n} } {s rSub { size 8{ ital "ij"} } "." U rSub { size 8{j} } \( t \) } } {}
(5)

Las bases deben cumplir con el principio de ortonormalidad mencionado al principio:

0 T U j ( t ) . U k ( t ) dt = { 1 j = k 0 j k 0 T U j ( t ) . U k ( t ) dt = { 1 j = k 0 j k size 12{ Int rSub { size 8{0} } rSup { size 8{T} } {U rSub { size 8{j} } \( t \) "." U rSub { size 8{k} } \( t \) ital "dt"} = left lbrace matrix { 1 rightarrow j=k {} ## 0 rightarrow j <> k } right none } {}
(6)

Entonces:

Paso 1: Se fija sij = 0 exceptuando el primer valor: s11:

Figure 4
Figure 4 (graphics4.png)

Elevamos toda la ecuación al cuadrado y la integramos en el intervalo [0,T]:

0 T s 1 ( t ) 2 dt = 0 T s 11 2 . U 1 2 ( t ) dt = 0 T s 11 2 . U 1 ( t ) . U 1 ( t ) dt 0 T s 1 ( t ) 2 dt = 0 T s 11 2 . U 1 2 ( t ) dt = 0 T s 11 2 . U 1 ( t ) . U 1 ( t ) dt size 12{ Int cSub { size 8{0} } cSup { size 8{T} } { left [s rSub { size 8{1} } \( t \) right ] rSup { size 8{2} } ital "dt"} = Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{"11"} rSup { size 8{2} } } } "." U rSub { size 8{1} rSup { size 8{2} } } \( t \) ital "dt"= Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{"11"} rSup { size 8{2} } } } "." U rSub { size 8{1} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} {}
(7)

Por el principio de ortonormalidad:

Figure 5
Figure 5 (graphics5.png)

Quedando s1(t) sólo en función de s11, por lo que ya se puede despejar:

0 t [ s 1 ( t ) ] 2 dt = s 11 0 t [ s 1 ( t ) ] 2 dt = s 11 size 12{ sqrt { Int cSub { size 8{0} } cSup { size 8{t} } { \[ s rSub { size 8{1} } \( t \) \] rSup { size 8{2} } ital "dt"} } =s rSub { size 8{"11"} } } {}
(8)

Finalmente:

U 1 ( t ) = s 1 ( t ) s 11 U 1 ( t ) = s 1 ( t ) s 11 size 12{U rSub { size 8{1} } \( t \) = { {s rSub { size 8{1} } \( t \) } over {s rSub { size 8{"11"} } } } } {}
(9)

Con esto obtenemos la primera base para representar nuestra señal. Para calcular U2(t), debemos restarle a s2(t) su proyección sobre U1(t); esto cumpliría con la condición de que la base sea ortogonal.

Paso 2: Se fija Sij=0 exceptuando los valores de s21 y s22:

Figure 6
Figure 6 (graphics6.png)

Ecuación (a)

Multiplicamos la ecuación por U1(t) y la integramos en el intervalo [0,T]:

0 T s 2 ( t ) . U 1 ( t ) dt = 0 T s 21 . U 1 ( t ) . U 1 ( t ) dt + 0 T s 22 . U 2 ( t ) . U 1 ( t ) dt 0 T s 2 ( t ) . U 1 ( t ) dt = 0 T s 21 . U 1 ( t ) . U 1 ( t ) dt + 0 T s 22 . U 2 ( t ) . U 1 ( t ) dt size 12{ Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"= Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{"21"} } "." U rSub { size 8{1} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} + Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{"22"} } "." U rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} } } {}
(10)

Quedando entonces:

0 T s 2 ( t ) . U 1 ( t ) dt = s 21 0 T s 2 ( t ) . U 1 ( t ) dt = s 21 size 12{ Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"=s rSub { size 8{"21"} } } } {}
(11)

La ecuación (a) podemos reordenarla así:

s 2 ( t ) s 21 . U 1 ( t ) = s 22 U 2 ( t ) s 2 ( t ) s 21 . U 1 ( t ) = s 22 U 2 ( t ) size 12{s rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } "." U rSub { size 8{1} } \( t \) =s rSub { size 8{"22"} } U rSub { size 8{2} } \( t \) } {}
(12)

Al igual que para el paso 1, elevamos toda la ecuación al cuadrado y la integramos en el intervalo [0,T], quedando como sigue:

0 T ( s 2 ( t ) s 21 U 1 ( t ) ) 2 dt = 0 T s 22 2 U 2 . U 2 ( t ) 0 T ( s 2 ( t ) s 21 U 1 ( t ) ) 2 dt = 0 T s 22 2 U 2 . U 2 ( t ) size 12{ Int cSub { size 8{0} } cSup { size 8{T} } { \( s rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } U rSub { size 8{1} } \( t \) \) rSup { size 8{2} } ital "dt"} = Int cSub { size 8{0} } cSup { size 8{T} } {s rSub { size 8{"22"} rSup { size 8{2} } } U rSub { size 8{2} } "." U rSub { size 8{2} } \( t \) } } {}
(13)

Usando nuevamente el principio de ortonormalidad, nos queda S22 en función de la señal S2, el coeficiente S21 y la base U1:

s 22 = 0 T ( s 2 ( t ) s 21 U 1 ( t ) ) 2 dt s 22 = 0 T ( s 2 ( t ) s 21 U 1 ( t ) ) 2 dt size 12{s rSub { size 8{"22"} } = sqrt { Int cSub { size 8{0} } cSup { size 8{T} } { \( s rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } U rSub { size 8{1} } \( t \) \) rSup { size 8{2} } ital "dt"} } } {}
(14)

Finalmente, con la ecuación (a):

s 2 ( t ) = s 21 U 1 ( t ) + s 22 U 2 ( t ) U 2 ( t ) = s 2 ( t ) s 21 U 1 ( t ) s 22 s 2 ( t ) = s 21 U 1 ( t ) + s 22 U 2 ( t ) U 2 ( t ) = s 2 ( t ) s 21 U 1 ( t ) s 22 alignl { stack { size 12{s rSub { size 8{2} } \( t \) =s rSub { size 8{"21"} } U rSub { size 8{1} } \( t \) +s rSub { size 8{"22"} } U rSub { size 8{2} } \( t \) } {} # {} # drarrow U rSub { size 8{2} } \( t \) = { { left [s rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } U rSub { size 8{1} } \( t \) right ]} over {s rSub { size 8{"22"} } } } {} } } {}
(15)

Se buscarán cuantas bases sean necesarias hasta el punto en el que Un=0. Se pudiera resumir este proceso de la siguiente forma:

Figure 7
Figure 7 (graphics7.png)

Donde:

X 1 = E 1 = + X 1 2 ( t ) dt y x ( t ) , y ( t ) = x ( t ) y ( t ) dt X 1 = E 1 = + X 1 2 ( t ) dt y x ( t ) , y ( t ) = x ( t ) y ( t ) dt alignl { stack { size 12{ ldline X rSub { size 8{1} } rdline = sqrt {E rSub { size 8{1} } } = sqrt { Int cSub { size 8{ - infinity } } cSup { size 8{+ infinity } } {X rSub { size 8{1} rSup { size 8{2} } } \( t \) ital "dt"} } } {} # y {} # langle x \( t \) ,y \( t \) rangle = Int {x \( t \) y \( t \) ital "dt"} {} } } {}
(16)

Es importante resaltar que si el proceso de ortogonalización se inicia con una señal diferente a la señal s1(t), se obtendría un conjunto distinto de bases ortonormales pero igualmente representativa.

Constelación

Es la representación gráfica de cada señal si(t) en función de las bases Ui. Más adelante observaremos que los diagramas de constelación también sirven para representar los esquemas de modulación digital en el plano complejo. Cada punto perteneciente a la constelación corresponde a un símbolo de modulación.

Aquí consideraremos como ‘ejes’ las bases calculadas a partir de la Ortogonalización, es decir, Uj. El procedimiento es sencillo: sólo se debe representar con un punto a la(s) forma(s) de onda si sobre el eje de la base. Por ejemplo: Supongamos que se tienen dos señales, que identifican una determinada codificación o modulación, y que pueden representarse con una sola base de acuerdo a las siguientes ecuaciones:

S 1 = V Tb . U 1 S 2 = V Tb . U 1 S 1 = V Tb . U 1 S 2 = V Tb . U 1 alignl { stack { size 12{S rSub { size 8{1} } =V sqrt { ital "Tb"} "." U rSub { size 8{1} } } {} # S rSub { size 8{2} } = - V sqrt { ital "Tb"} "." U rSub { size 8{1} } {} } } {}
(17)

Como sólo se necesita una base para representar estas formas de onda, entonces se tendrá un ‘eje’ que es U1:

Figure 8: Ejemplo de constelación.
Figure 8 (graphics8.png)

A partir de la constelación se puede obtener un parámetro fundamental que es la Energía. Si elevamos al cuadrado la distancia que existe entre el origen y un punto de la constelación obtendríamos la energía de la primera forma de onda S1:

Es 1 = V 2 Tb Es 1 = V 2 Tb size 12{ ital "Es" rSub { size 8{1} } =V rSup { size 8{2} } ital "Tb"} {}

Para calcular la Energía de S2 se hace exactamente el mismo procedimiento.

En la simulación de este módulo se podrá calcular el número de bases necesarias de acuerdo a los coeficientes si dados. A partir de ellas también se podrá observar la constelación correspondiente. Para descargar el código fuente, se debe hacer click en el siguiente enlace: Media File: gramschmidtULTIMATE1.vi

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks