1) El documento describe el procedimiento de ortogonalización de Gram-Schmidt aplicado a señales para sistemas de comunicaciones. 2) El procedimiento genera una base ortonormal de señales a partir de un conjunto original de señales, lo que permite representar cada señal original como una combinación lineal de la base ortonormal. 3) Se explican los pasos del algoritmo de Gram-Schmidt, incluyendo el cálculo de productos internos y la generación recursiva de las funciones base ortonormales.
2. Introducción
• El conjunto de señales a la salida del modulador es:
{si(t), i = 0, . . . ,M − 1}
• Dicho conjunto genera un subespacio del espacio de Hilbert de señales de
energía finita L2.
• Buscamos encontrar un conjunto de señales {𝜙𝑗, 𝑗 = 0, … , 𝑁 − 1 donde (N
≤ M), tales que formen una base ortonormal de este subespacio.
• Se puede representar cada una de las señales si(t) mediante sus
coordenadas en esta base.
• Aunque a simple vista pueda parecer que este cambio de representación
no supone un gran avance, hay que tener en cuenta que lo que estamos
haciendo es transformar toda una señal en tiempo continuo en unos
pocos números.
3. Señales expresadas como una combinación
lineal de su base vectorial
• Como ejemplo, veamos con un poco de detalle cómo se simplifica el
cálculo de la energía de una de las señales si(t).
• Cualquier señal si(t) se puede expresar como combinación lineal de
los elementos de la base.
• Las coordenadas de cada si,j es el producto interno entre cada si con
la base vectorial 𝜙𝑗
( ) ( )
1
,
0
N
i i j j
j
s t s t
−
=
=
( ) ( )
, ,
i j i j i j
s s s t t dt
−
= =
4. Resolución del Producto Escalar entre dos
vectores
• El producto escalar entre dos señales si(t) y sk(t) se calcula como
• Aplicando la propiedad de ortonormalidad de la base, se reduce a:
• Significa que el resultado del producto punto se desplaza a la ubicación j-l
5. Resolución del Producto Escalar entre dos
vectores
• La ecuación anterior significa que se multiplica elemento a elemento de la
señal si con los de la señal sk por ejemplo.
1
, , ,1 1 ,2 ,2 , 1 , 1
0
...
N
i j k j i k i k i N k N
j
s s s s s s s s
−
− −
=
= + + +
6. Resolución del Producto Escalar entre dos
vectores
• En MATLAB, el producto elemento a elemento entre dos vectores se
implementa de forma directa usando el comando .* y el resultado se
guarda en un nuevo vector por ejemplo:
>> S = s_i .* s_k;
• entonces el producto punto en Matlab será:
>> S = sum (s_i .* s_k );
• Una segunda forma de calcular el producto punto es:
for i=1 : N
SS(i) = s_1(i)*s_2(i);
end
• La segunda forma implementa de forma explícita la ecuación, pero
computacionalmente en MATLAB se demora más por el proceso iterativo.
1
, , ,1 1 ,2 ,2 , 1 , 1
0
...
N
i j k j i k i k i N k N
j
s s s s s s s s
−
− −
=
= + + +
7. Resolución del Producto Escalar entre dos
vectores
• La energía de una de las señales si(t) se obtiene haciendo si(t)=sk(t) en la
ecuación anterior
• En MATLAB:
E = zeros (M,1);
for i=1 : M
% calcula el cuadrado de cada coeficiente y luego los suma
E(i) = sum( s(:,i).^2 );
end
• Analizando el resultado, comprobamos que hemos reducido un tedioso
cálculo de integrales a una suma de cuadrados.
8. Implementación de Gram – Schmidt
• Para el procedimiento de ortogonalización de Gram-Schmidt, no
debemos perder nunca de vista que la dimensión infinita de L2 no
nos impide razonar como en el resto de espacios vectoriales.
• El procedimiento de ortogonalización de Gram-Schmidt queda
definido en la siguiente secuencia de pasos
• N dependerá de cuantos 𝜙𝑗 𝑡 , no son nulos en el proceso de
ortogonalización.
• Si N≤M y M=4, significa que se van a transmitir 4 señales y que
N solo puede llegar hasta 4.
( ) ( )
1
,
0
N
i i j j
j
s t s t
−
=
=
9. Implementación de Gram – Schmidt
• La generalización de dicha ecuación es:
( ) ( )
1
,
0
N
i i j j
j
s t s t
−
=
=
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
0 00 01 1 02 2 0
1 10 11 1 12 2 1
0 1 1 2 2
0 1 1 2 2
...
...
...
...
o N N
o N N
i i o i i iN N
M M o M M MN N
s t s t s t s t s t
s t s t s t s t s t
s t s t s t s t s t
s t s t s t s t s t
= + + + +
= + + + +
= + + + +
= + + + +
10. Implementación de Gram – Schmidt
• A continuación se plantean los pasos a seguir para obtener las
funciones base 𝜙𝑗 𝑡 y las respectivas 𝑠𝑖,𝑗 para establecer el orden
correcto de las funciones de manera que sean independientes de si y
mantengan orotogonalidad usando Gram-Schmidt.
• Para el ejemplo se plantea N = 2
Paso 1:
• Si la primera señal s0(t) tiene energía cero (E {s0(t)} = 0) reordenamos
las señales para conseguir que s0(t) tenga energía no nula.
• El primer elemento de la base de señales, 𝜙0, se escoge como
( ) ( )
1
,
0
N
i i j j
j
s t s t
−
=
=
11. Implementación de Gram – Schmidt
• Aplicar el paso 1 permite asegurar que E 𝝓𝟎 𝒕 = 𝟏 o, lo que es lo
mismo, que tenemos el primer elemento de una base ortonormal.
• Recordando que:
• Tenemos la primera coordenada de s0(t), que es s00, y que toma el
valor de la energía de s0(t), es decir ℰ 𝑠0 𝑡 ya que 𝑠0 𝑡 =
ℰ 𝑠0 𝑡 𝜙0 𝑡 .
• La energía de cada una de las funciones 𝝓𝒋 𝒕 deberá ser 1 para
que se mantenga una base ortonormal.
( ) ( )
1
,
0
N
i i j j
j
s t s t
−
=
=
12. Implementación de Gram – Schmidt
Paso 2.
• Ahora hay que comprobar si s1(t) es linealmente dependiente de
𝜙0 𝑡 , para lo cual definimos una función auxiliar 𝜃1 𝑡 como:
• donde s10 se calcula usando
• La función 𝜃1 𝑡 es ortogonal a 𝜙0 𝑡 . Se puede comprobar
fácilmente:
13. Implementación de Gram – Schmidt
Paso 2.
• Como ya se ha calculado 𝜃1 𝑡 se procede a determinar 𝜙1 𝑡 :
• s11 se calcula usando
( ) ( ) ( )
11 1 1 1 1
,
s t s s t t dt
−
= =
14. Implementación de Gram – Schmidt
Paso 3.
• Con el resto de señales 𝑠𝑖 𝑡 se procede igual que con s1(t) sin
embargo hay que tener en cuenta que para este caso ya no hace falta
encontrar una posible 𝜙2 𝑡 y 𝜙3 𝑡 pues hemos definido N=1.
• Sin embargo si N = M de este caso, las ecuaciones serían:
16. Implementación de Gram – Schmidt
Ejercicio
• Aplicar la ortogonalización sobre las siguientes señales con N=2
Como son 4
señales M=4
Cada señal
puede ser
muestreada con
K muestras si
las implementa
en MATLAB
21. Implementación de Gram – Schmidt
Ejercicio
• M=4;
Función Auxiliar 𝜃3 𝑡
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
3 3 30 0 31 1 32 2
t s t s t t s t t s t t
= − − −
0
𝑠30 𝑡 = 0 ∙ 0,5 + 1 ∙ −0,5 + 0 ∙ 0,5 + 1 ∙ −0,5 = −1
𝑠31 𝑡 = 𝑠3 𝑡 , 𝜙1 𝑡 = න
−∞
∞
𝑠3 𝑡 𝜙1 𝑡 𝑑𝑡
𝑠31 𝑡 = 0 ∙ 0,5 + 1 ∙ 0,5 + 0 ∙ 0,5 + 1 ∙ 0,5 = 1
Entonces hay que calcular 𝑠30 𝑡 y 𝑠31 𝑡
𝑠30 𝑡 = 𝑠3 𝑡 , 𝜙0 𝑡 = න
−∞
∞
𝑠3 𝑡 𝜙0 𝑡 𝑑𝑡
22. Implementación de Gram – Schmidt
Ejercicio
• M=4;
Función Auxiliar 𝜃3 𝑡
( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
3
0 1 0.5 1 0.5 0 0 0
1 1 0.5 1 0.5 0 0 0
0 1 0.5 1 0.5 0 0 0
1 1 0.5 1 0.5 0 0 0
t
− − − −
− − − − −
= =
− − − −
− − − − −
Ya que 𝜃3 𝑡 es idénticamente nulo, 𝜙3 𝑡 es nulo también.
Como resultado final, tenemos la base formada por 𝜙0 𝑡 y 𝜙1 𝑡
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
3 3 30 0 31 1 32 2
t s t s t t s t t s t t
= − − −
0
23. Implementación de Gram – Schmidt
• La gráfica presenta los resultados del ejemplo aplicado en MATLAB
24. Implementación de Gram – Schmidt –
Ejemplo para N=2 y M=4
• Si ordenamos las señales si(t) de forma distinta, el
procedimiento de ortogonalización de Gram-Schmidt dará,
en general, otra base distinta con coordenadas distintas para
cada una de las señales.
• Sin embargo, ambos resultados son equivalentes y podemos
pasar de uno a otro mediante un cambio de base
• El script original de MATLAB y su implementación se puede
descargar del AVAC.