Inner product in vector space

The inner product is an operation that measures the similarity between vectors.  In a general way, the inner product could be defined as an operation of 2 operands, which are elements of a vector space. The result is a scalar in the set of the complex numbers:

\[ \left \langle \cdot, \cdot \right \rangle : V \times V \rightarrow \mathbb{C}  \]

Formal properties

For \(x, y, z \in V\) and \(\alpha \in \mathbb{C}\), the inner product must fulfill the following rules:

To be distributive to vector addition:

\( \left \langle x+y, z \right \rangle = \left \langle x, z \right \rangle + \left \langle y, z \right \rangle \)

Conmutative with conjugate (applies when vectors are complex):

\( \left \langle x,y \right \rangle  = \left \langle y, x \right \rangle^* \)

Distributive respect scalar multiplication:

\(  \left \langle \alpha x, y \right \rangle =  \alpha^* \left \langle x, u \right \rangle \)

\(  \left \langle  x, \alpha y \right \rangle =  \alpha \left \langle x, u \right \rangle \)

The self inner product must be necessarily a real number:

\(  \left \langle  x, x \right \rangle \geq 0 \)

The self inner product can be zero only when the element is the null element:

\( \left \langle x,x \right \rangle = 0 \Leftrightarrow x = 0 \)

Inner product in \(\mathbb{R}^2 \)

The inner product in \( \mathbb{R}^2\) is defined as follows:

\( \left \langle x, y \right \rangle = x_0 y_0 + x_1 y_1 \)

In self inner product represents the squared norm of the vector:

\( \left \langle x, x \right \rangle = x^2_0 + y^2_0 = \left \| x \right \|^2 \)

Inner product in finite length signals

In this case, the inner product is defined as:

\[ \left \langle x ,y \right \rangle = \sum_{n= 0}^{N-1} x^*[n] y[n] \]

Properties of vector spaces

Vector spaces must meet the following rules:
Addition to be commutative:
\( x + y = y + x \)

Addition to be distributive:
\( (x+y)+z = x + (y + z) \)

Scalar multiplication to be distributive with respect to vector addition:
\( \alpha\left(x + y \right) = \alpha x + \alpha y\)

Scalar multiplication to be distributive with respect to vector the addition of field scalars:
\( \left( \alpha + \beta \right) x = \alpha x + \beta y \)

Scalar multiplication to be associative:
\( \alpha\left(\beta x \right) = \left(\alpha \beta \right) x \)

It must exist a null element:
\( \exists 0 \in V \ \ | \ \ x + 0 = 0 + x = x \)

It must exist an inverse element for every element in the vector space:
\( \forall x \in V \exists (-x)\ \ | \ \ x + (-x) = 0\)

Instalar minted en Windows 10

minted es un paquete de LaTeX que permite añadir código a tu documento y mostrarlo resaltado. Minted utiliza Python para compilar, por lo que el primer paso es instalar Python 2.6 o superior.

  1. Instalar Python
  2. Añadir la ruta de Python a las variables del entorno de Windows.
    1. Botón derecho en el icono de Windows.
    2. Sistema
    3. En el buscador añadir “variables” y clickar en “Editar variables del sistema”.
    4. Clickar en Variables del entorno.
    5. En Variables del sistema, añadir a la entrada Path la localización de la carpeta Scripts de Python. En mi caso está en D:\Windows\Python\Python36-32\Scripts. Es muy probable que este paso no sea necesario en tu sistema y que al instalar Python ya se haya añadido la ruta a las variables del sistema. Si al ejecutar python en CMD da un error, entonces este paso es obligatorio.
    6. Instalar pip.
    7. Instalar pygments:
      1. Abrir CMD en Windows y escribir: pip install Pygments
      2. Probar que se ha instalado correctamente escribiendo en CMD pygmentize -h
    8. Ahora desde TexStudio hay que modificar la llamada al compilador de LaTeX.
      1. Opciones > Configurar TeXStudio > Órdenes
      2. Modificar las entradas LaTeX y PdfLaTeX por: latex.exe -src -interaction=nonstopmode -shell-escape %.tex y pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape %.tex respectivamente. De esta manera se añade la etiqueta -shell-escape después de -interaction=nonstopmode
      3. Cerrar TeXStudio
      4. Abrir de nuevo

Y si no ha habido ningún problema en los pasos anteriores, se debería poder compilar utilizando minted. Para más información, visitad la guía de instalación de minted.

 

Desajuste en la referencia a figuras, ecuaciones o tablas en Latex

Si el número que aparece como referencia al referenciar un objeto (imagen, ecuación, tabla, etc.) mediante el comando \ref{} no coincide con el del elemento, es porque la sentencia \caption{} aparece después de la de \label{}.

Esto ocurre porque elementos numerados como /section, \begin{equation} o \caption utilizan un contador para saber qué número es el siguiente elemento. Este contador es \refstepcounter y sirve para incrementar el contador que lleva la cuenta del número de índice de un capítulo, número de ecuación o número de figura. Cuando se escribe una etiqueta \label se guarda esa información en el archivo .aux con el fin de que cuando se escriba \ref en el documento, sepa cuál de todos los contadores debe mostrar para esa referencia. Cuando se está dentro de un entorno como por ejemplo \begin{equation} o \begin{figure} se le está diciendo a \label que incremente el contador de ese entorno. Lo mismo ocurre con table. Por tanto, cuando se pone \label antes que \caption, se incrementa el contador de \label y se muestra el número erróneo en \ref

Para ver los cambios puede que sea necesario recompilar un par de veces.

Fuente: Table numbering mismatch in caption and in text

Identidades trigonométricas

Coseno de la suma:

\[ \cos{(a+b)} = \cos{a} \cos{b} – \sin{a}\sin{b} \]

\[ \cos{(a-b)} = \cos{a} \cos{b} + \sin{a}\sin{b} \]

Seno de la suma:

\[ \sin{(a+b)} = \sin{a}\cos{b} + \sin{b}\cos{a} \]

\[ \sin{(a-b)} = \sin{a}\cos{b} – \sin{b}\cos{a} \]

Coseno del ángulo doble:

\[ \cos{2a} = \cos^2{a} – \sin^2{a}\]

Seno del ángulo doble:

\[ \sin{2a} = 2\sin{a}\cos{a}\]

Diferencia de senos:

\[ \sin{a} – \sin{b} = 2\cos{\frac{a+b}{2}}\cos{\frac{a-b}{2}} \]

Forzar a una imagen aparecer en la sección correspondiente en LaTeX

En LaTeX hay veces que al compilar el documento la imagen aparece en la página siguiente o incluso antes. Para evitar esta situación basta con utilizar unos modificadores en la definición de la figura que son [!h]

  • !: fuerza a sobreescribir cualquier configuración anterior ya descrita.
  • h: fuerza a aparecer en esa misma sección la imagen. h viene de here

Ejemplo:

Coeficiente binomial

\(\binom{n}{i}\) es el número de subconjuntos de \(i\) elementos que se puede hacer con un conjunto \(n\) elementos.

\(n\): número total de elementos
\(i\): longitud de los subconjuntos
\[\binom{n}{i} = \frac{n!}{i! \left( n-k \right)! }\]
Esto nos sirve también para poder entender el ensayo de Bernoulli. Este nos dice que si el resultado de un experimento ocurre con probabilidad \(k\) veces es:
\[P_n \left( k \right) = \binom{n}{k} P_A^k \left( 1-P_A \right)^{n-k}\]

Codificación de vídeo

Para la creación de vídeo, cada píxel se guarda con 8 bits (valores de 0-255). Si se guarda de manera diferencial, los valores pueden ir de -255 a 255. Por tanto, necesitamos 9 bits para codificar cada píxel. La codificación diferencial se utiliza en vídeo porque en muchos casos, las diferencias entre fotograma y fotograma son pequeñas. De esta manera, si se codifica de manera diferencial, es posible ahorra bits. Sin embargo, si las diferencias suelen ser grandes, como ocurre en un cambio de escena, este tipo de codificación no es rentable.

Como en vídeo sí se utiliza codificación diferencial, es necesario intercalar fotogramas codificados de manera absoluta (llamados keyframes) para evitar que un error en un fotograma se propague hasta el final del vídeo. En vídeos que no se supone que se tienen que editar se coloca un keyframe cada 100~200 fotogramas, en TDT se coloca un keyframe cada 0.5 segundos y en vídeos para edición un keyframe cada 2~3 fotogramas.

Además, la información no es diferencial bit a bit, sino que utiliza el movimiento de una zona. Para detectar si el contenido de un fotograma está en el siguiente, se divide la imagen en bloques y se busca el grupo de píxels entero. Si el tamaño de estos bloques fuese muy pequeño, habría que informar del movimiento de muchos bloques, por lo que consumiría muchos bits. Es por ello que los bloques tienen un tamaño de 16×16 y se les llama macrobloques (MB). Sin embargo, para buscar el movimiento los saltos del MB no son de 16 en 16 sino que son más pequeños.

En MPEG-2 se definen 3 tipos de imagen:

  • Intra (I): tiene su información guardada en el propio frame por lo que no se codifica diferencialmente. Un error en I se propaga hasta la siguiente I ya que todo el resto de tipos, depende de su información.
  • Predicción (P): tiene una codificación diferencial, y su información solo puede estar referida a imágenes anteriores intra o otras también predictivas.
  • Bidireccional (B): utiliza información de referencia frames futuros y pasados de imágenes I, P  o una imagen intermedia, pero nunca de otras B. Por tanto, un error en una imagen B no se propaga. La imagen intermedia es el calculo de la imagen media a partir de la referencia futura y la referencia pasada. Se guarda el menor error entre la media, la pasada y la futura. Para guardar la media, el codificador debe guardar los dos vectores de movimiento.

Por tanto, en la codificación y decodificación se necesita más memoria para almacenar las imágenes hasta que se satifagan las dependencias.