Skip to content Skip to navigation

Connexions

You are here: Home » Content » Ortogonalización Gram-Schmidt

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Ortogonalización Gram-Schmidt

Module by: José Miguel Hobaica Alvarado. E-mail the author

Summary: Método Gram-Schmidt para cálculo de bases ortogonales por medio de los símbolos de una señal. Se explica también el concepto de constelación en comunicaciones. Se incluyen dos programas en LabVIEW acerca de este tema, uno de los dos hecho por medio de MATLAB Script

El siguiente módulo está hecho en base al módulo ORTOGONALIZACIÓN GRAM-SCHMIDT Y TEORÍA BÁSICA DE LAS CONSTELACIONES, realizado por Venuska González y Mariangela Mezoa.

En matemáticas, el concepto de Ortogonalidad está referido al de Perpendicularidad. Se dice que dos vectores xx size 12{ { vec {x}}} {} y yy size 12{ { vec {y}}} {} pertenecientes a cierto espacio vectorial (V) son ortogonales si se cumple que el producto escalar entre ellos es igual a cero, es decir:

xy=0xy=0 size 12{ { vec {x}} cdot { vec {y}}=0} {}
(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 aplicar este concepto para un sistema de comunicación digital?

Ortogonalización Gram-Schmidt

Supóngase 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:

Figura 1: Sistema ideal de recepción (sin ruido). Cada símbolo mi de la señal se recibe sin interferencia.
Figura 1 (graphics1.png)

Al introducir ruido blanco gaussiano en el sistema, quedaría como sigue:

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

La segunda situación ocasiona que a la salida del receptor no se obtenga precisamente el símbolo mi, sino que se obtenga 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 será denominado s. Matemáticamente se tiene que:

Si(t)=j=1nsij.Uj(t)Si(t)=j=1nsij.Uj(t) size 12{S rSub { size 8{i} } \( t \) = Sum cSub { size 8{j=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. desarrollando la fórmula anterior, para todos los símbolos posibles, se obtiene un sistema de ecuaciones como sigue:

S1(t)=s11.U1(t)+s12.U2(t)+s13.U3(t)+...+s1n.Un(t)S2(t)=s21.U1(t)+s22.U2(t)+s23.U3(t)+...+s2n.Un(t)S3(t)=s31.U1(t)+s32.U2(t)+s33.U3(t)+...+s3n.Un(t)Sm(t)=sm1.U1(t)+sm2.U2(t)+sm3.U3(t)+...+smn.Un(t)S1(t)=s11.U1(t)+s12.U2(t)+s13.U3(t)+...+s1n.Un(t)S2(t)=s21.U1(t)+s22.U2(t)+s23.U3(t)+...+s2n.Un(t)S3(t)=s31.U1(t)+s32.U2(t)+s33.U3(t)+...+s3n.Un(t)Sm(t)=sm1.U1(t)+sm2.U2(t)+sm3.U3(t)+...+smn.Un(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 cuando se tiene un sistema como el mostrado en la figura 2 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:

sj=0TS(t).Uj(t)dtj=1,2,3,...,Nsj=0TS(t).Uj(t)dtj=1,2,3,...,Nalignl { 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)

Visto 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:

Figura 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 en el sistema.
Figura 3 (graphics3.png)

A continuación se explica paso a paso la metodología para la obtención de las bases necesarias para representar cada símbolo de una determinada señales de potencia:

Se tiene un conjunto de señales de energía Si(t) con existencia en un intervalo de tiempo [0, T] que se quieren representar por medio de bases Uj, tal y como se indica en el sistema de ecuaciones 3.

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

0TUj(t).Uk(t)dt={1j=k0jk0TUj(t).Uk(t)dt={1j=k0jk 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 } {}
(5)

Para comenzar se fija sij = 0 exceptuando el primer valor: s11:

S1(t)=s11.U1(t)S1(t)=s11.U1(t) size 12{S rSub { size 8{1} } \( t \) =s rSub { size 8{"11"} } "." U rSub { size 8{1} } \( t \) } {}
(6)

Se eleva toda la ecuación al cuadrado y se integra en el intervalo [0,T]:

0TS1(t)2dt=0Ts112.U12(t)dt=s1120TU1(t).U1(t)dt0TS1(t)2dt=0Ts112.U12(t)dt=s1120TU1(t).U1(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"=s rSub { size 8{"11"} rSup { size 8{2} } } Int cSub { size 8{0} } cSup { size 8{T} } {U rSub { size 8{1} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} } {}
(7)

Por el principio de ortonormalidad, la integral de la derecha es igual a 1, quedando s11 sólo en función de S1(t) por lo que se puede despejar:

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

Finalmente:

U1(t)=S1(t)s11=S1(t)0t[S1(t)]2dtU1(t)=S1(t)s11=S1(t)0t[S1(t)]2dt size 12{U rSub { size 8{1} } \( t \) = { {S rSub { size 8{1} } \( t \) } over {s rSub { size 8{"11"} } } } = { {S rSub { size 8{1} } \( t \) } over { sqrt { Int cSub { size 8{0} } cSup { size 8{t} } { \[ S rSub { size 8{1} } \( t \) \] rSup { size 8{2} } ital "dt"} } } } } {}
(9)

Con esto se obtiene la primera base para representar la señal. Para calcular U2(t), se debe restar a S2(t) su proyección sobre U1(t); esto cumpliría con la condición de que la base sea ortogonal.

Ahora se fijará Sij=0 exceptuando los valores de s21 y s22:

S2(t)=s21.U1(t)+s22.U2(t)S2(t)=s21.U1(t)+s22.U2(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 \) } {}
(10)

Reordenando esta ecuación queda:

s22.U2(t)=S2(t)s21.U1(t)s22.U2(t)=S2(t)s21.U1(t) size 12{s rSub { size 8{"22"} } "." U rSub { size 8{2} } \( t \) =S rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } "." U rSub { size 8{1} } \( t \) } {}
(11)

Multiplicando la ecuación por U1(t) e integrándola en el intervalo [0,T] queda:

0TS2(t).U1(t)dt=0Ts21.U1(t).U1(t)dt+0Ts22.U2(t).U1(t)dt0TS2(t).U1(t)dt=0Ts21.U1(t).U1(t)dt+0Ts22.U2(t).U1(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"} } } {}
(12)

Se aplica el principio de ortonormalidad quedando:

s21=0TS2(t).U1(t)dts21=0TS2(t).U1(t)dt size 12{s rSub { size 8{"21"} } = Int cSub { size 8{0} } cSup { size 8{T} } {S rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} } {}
(13)

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

0Ts222U2.U2(t)=0T(S2(t)s21U1(t))2dt0Ts222U2.U2(t)=0T(S2(t)s21U1(t))2dt size 12{ 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 \) } = 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)

Usando nuevamente el principio de ortonormalidad, queda s22 en función de la señal S2(t), el coeficiente s21 y la base U1(t):

s22=0TS2(t)s21U1(t)2dts22=0TS2(t)s21U1(t)2dt size 12{s rSub { size 8{"22"} } = sqrt { Int cSub { size 8{0} } cSup { size 8{T} } { left (S rSub { size 8{2} } \( t \) - s rSub { size 8{"21"} } U rSub { size 8{1} } \( t \) right ) rSup { size 8{2} } ital "dt"} } } {}
(15)

Finalmente, despejando y sustituyendo las ecuaciones 13 y 15 en la ecuación 11:

U2(t)=s2(t)0TS2(t).U1(t)dtU1(t)0TS2(t)0TS2(t).U1(t)dtU1(t)2dtU2(t)=s2(t)0TS2(t).U1(t)dtU1(t)0TS2(t)0TS2(t).U1(t)dtU1(t)2dt size 12{ drarrow U rSub { size 8{2} } \( t \) = { { left [s rSub { size 8{2} } \( t \) - left ( Int cSub { size 8{0} } cSup { size 8{T} } {S rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} right )U rSub { size 8{1} } \( t \) right ]} over { sqrt { Int cSub { size 8{0} } cSup { size 8{T} } { left (S rSub { size 8{2} } \( t \) - left ( Int cSub { size 8{0} } cSup { size 8{T} } {S rSub { size 8{2} } \( t \) "." U rSub { size 8{1} } \( t \) ital "dt"} right )U rSub { size 8{1} } \( t \) right ) rSup { size 8{2} } ital "dt"} } } } } {}
(16)

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

U1(t)=S1(t)S1(t)U1(t)=S1(t)S1(t) size 12{U rSub { size 8{1} } \( t \) = { {S rSub { size 8{1} } \( t \) } over { ldline S rSub { size 8{1} } \( t \) rdline } } } {}
(17)
U 2 ( t ) = S 2 ( t ) S 2 ( t ) , U 1 ( t ) . U 1 ( t ) S 2 ( t ) S 2 ( t ) , U 1 ( t ) . U 1 ( t ) U 2 ( t ) = S 2 ( t ) S 2 ( t ) , U 1 ( t ) . U 1 ( t ) S 2 ( t ) S 2 ( t ) , U 1 ( t ) . U 1 ( t ) size 12{U rSub { size 8{2} } \( t \) = { {S rSub { size 8{2} } \( t \) - langle S rSub { size 8{2} } \( t \) ,U rSub { size 8{1} } \( t \) rangle "." U rSub { size 8{1} } \( t \) } over { ldline S rSub { size 8{2} } \( t \) - langle S rSub { size 8{2} } \( t \) ,U rSub { size 8{1} } \( t \) rangle "." U rSub { size 8{1} } \( t \) rdline } } } {}
(18)
U n ( t ) = S n ( t ) m = 1 n 1 S n ( t ) , U m ( t ) . U m ( t ) S n ( t ) m = 1 n 1 S n ( t ) , U m ( t ) . U m ( t ) U n ( t ) = S n ( t ) m = 1 n 1 S n ( t ) , U m ( t ) . U m ( t ) S n ( t ) m = 1 n 1 S n ( t ) , U m ( t ) . U m ( t ) size 12{U rSub { size 8{n} } \( t \) = { {S rSub { size 8{n} } \( t \) - Sum cSub { size 8{m=1} } cSup { size 8{n - 1} } { langle S rSub { size 8{n} } \( t \) ,U rSub { size 8{m} } \( t \) rangle "." U rSub { size 8{m} } \( t \) } } over { ldline S rSub { size 8{n} } \( t \) - Sum cSub { size 8{m=1} } cSup { size 8{n - 1} } { langle S rSub { size 8{n} } \( t \) ,U rSub { size 8{m} } \( t \) rangle "." U rSub { size 8{m} } \( t \) } rdline } } } {}
(19)

Donde:

X=EX=+X2(t)dtx(t),y(t)=x(t)y(t)dtX=EX=+X2(t)dtx(t),y(t)=x(t)y(t)dtalignl { stack { size 12{ ldline X rdline = sqrt {E rSub { size 8{X} } } = sqrt { Int cSub { size 8{ - infinity } } cSup { size 8{+ infinity } } {X rSup { size 8{2} } \( t \) ital "dt"} } } {} # langle x \( t \) ,y \( t \) rangle = Int {x \( t \) y \( t \) ital "dt"} {} } } {}
(20)

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. Cada punto perteneciente a la constelación corresponde a un símbolo de modulación.

Se considerarán los ‘ejes’ de la gráfica las bases calculadas a partir de la Ortogonalización, es decir, Uj. El procedimiento es el siguiente: se debe representar con un punto a la(s) forma(s) de onda si sobre el eje de la base. Supónganse 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:

S1=VTb.U1S1=VTb.U1 size 12{S rSub { size 8{1} } =V sqrt { ital "Tb"} "." U rSub { size 8{1} } } {}
(21)
S2=VTb.U1S2=VTb.U1 size 12{S rSub { size 8{2} } = - V sqrt { ital "Tb"} "." U rSub { size 8{1} } } {}
(22)

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

Figura 4: Ejemplo de constelación.
Figura 4 (graphics41.png)

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

Es1=V2TbEs1=V2Tb size 12{ ital "Es" rSub { size 8{1} } =V rSup { size 8{2} } ital "Tb"} {}
(23)

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

La introducción del ruido en el sistema ocasionará una situación como la descrita en la figura 3, es decir, en la constelación el punto correspondiente al símbolo no estará ubicado exactamente en el sitio que se ubicaría si no existiese el ruido. En las comunicaciones digitales se hace uso de un “valor umbral” con el cual el receptor distingue si el símbolo recibido es uno u otro. Este valor umbral es representado gráficamente en la constelación como una línea ubicada en el punto medio entre los puntos de los símbolos sin ruido.

Figura 5: Otro ejemplo de constelación, las líneas azules representan valores de umbral entre puntos cercanos
Figura 5 (graphics51.png)

Autoevaluación

Ejercicio 1

¿Con qué base puede representarse un símbolo con un valor nulo en el intervalo [0, T]?

Solution

Un valor nulo con dicha duración puede ser representado como la multiplicación de cualquier señal con la misma duración por cero, por lo cual se podrá representar con cualquier base, como por ejemplo, la base calculada por medio del otro símbolo. La posición del valor nulo en la constelación siempre será en el “origen”

Ejercicio 2

¿Cómo se observa en la constelación que hay un error en la transmisión?

Solution

Hay un error en la transmisión si la representación de un símbolo se observa “más cerca” del punto correspondiente a otro símbolo diferente, es decir, si salta la línea de umbral.

Ejercicio 3

En base a la pregunta anterior, ¿Cómo puede reducirse la probabilidad de error?

Solution

La probabilidad de error se reduce “aumentando la distancia” entre los puntos correspondientes a los símbolos, es decir, aumentando la potencia de transmisión (lo que aumenta el valor de V) o disminuyendo la velocidad de transmisión (lo que aumenta el valor de Tb).

Simuladores

ESTE VINCULO contiene una carpeta con un programa realizado en LabVIEW pero haciendo uso exclusivamente de "MATLAB Script" que calcula bases ortogonales por medio de Gram-Schmidt; puede obtenerse también un programa similar realizado netamente en LabVIEW por medio de ESTE VINCULO; la interfaz de ambos programas es prácticamente igual. Cada carpeta incluye el .vi correspondiente y todos los archivos necesarios para el funcionamiento de cada uno, si se elimina o renombra alguno de estos archivos, podría haber fallas en el funcionamiento del programa. La figura 6 contiene un video explicativo acerca del uso de los programas.

Figura 6: Video explicativo de la utilización del programa
Ortogonalización Gram-Schmidt

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

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