domingo, 18 de enero de 2015

jueves, 2 de enero de 2014

Como se usa el Bitcoin


El proceso de enviar dinero, recibirlo o efectuar pagos con Bitcoin es, por ejemplo, tan fácil como enviar un e-mail. De ahí parte su éxito, pues puede ser utilizado por todo el mundo con suma facilidad.

De la misma manera que existen direcciones de correo electrónico, también existen direcciones Bitcoin que nos permiten enviar y recibir esta moneda digital. Para empezar a usar Bitcoin lo primero que debemos hacer es generar una de estas direcciones usando una aplicación Bitcoin. Estas aplicaciones las veremos más adelante, pero primero centrémonos en ver cómo funcionan las direcciones.

Puedes generar tantas direcciones como quieras y son, todas ellas, absolutamente gratuitas. Adicionalmente, no hace falta estar conectado a internet para generar una dirección, pues recuerda que no hay ninguna institución o empresa en la que sea necesario registrarse. Estas direcciones se generan mediante unos parámetros matemáticos que logran hacer que todas las direcciones sean únicas y no haya nunca dos iguales.

Cada dirección consta de dos partes que están matemáticamente correlacionadas:

  • Una dirección pública

La dirección pública es aquella con la que tú te identificas de cara al mundo. Cualquiera que sepa tu dirección pública podrá enviarte bitcoins en cualquier momento.

  • Una clave privada

La clave privada es aquella que permite autentificarte, acceder a los fondos que tengas en esa dirección o realizar envíos. Por este motivo es muy importante que nunca divulgues tu clave privada pues daría a cualquiera que la supiera acceso a tus fondos. La mayoría de las aplicaciones Bitcoin se aseguran de mantener tu clave privada protegida bajo contraseña (cifrada). 

¿Dónde se guardan los bitcoins?

A pesar de que es innecesario saber esto para usar Bitcoin, considero que es muy importante explicarlo para que cualquiera pueda hacerse una idea más precisa de su funcionamiento y sentirse así más familiarizado con este sistema. ¡Después de todo se trata de nuestro dinero!

Los bitcoins que nosotros recibamos en nuestra dirección Bitcoin no representan ningún archivo de nuestro ordenador, ningún metal, papel o cadena de texto, sino que en realidad se trata de un valor que nuestra dirección puede tener. De la misma manera que la cuenta de tu banco no representa dinero que está literalmente ahí, sino que es un valor que tu banco le da a tu cuenta.

Ejemplo: Mario tiene 50€ en su cuenta de banco y por lo tanto el valor de la cuenta de Mario es de 50€.
Cuando Mario se gasta 20€, el banco hace un registro de la transacción y apunta el nuevo valor de la cuenta de Mario que ahora es de 30€.

Las direcciones de Bitcoin funcionan de la misma manera. A cada dirección le corresponde un valor que puede subir o bajar según las transacciones que realicemos. Aquí es cuando entra en funcionamiento la red "peer to peer" que mencionamos en el capítulo anterior. Los nodos interconectados se encargan de registrar el nuevo valor de la dirección y difunden la información de dicha transacción por toda la red, quedando respaldada de forma inalterable gracias a un complejo sistema de seguridad criptográfico.

Ejemplo: Mario tiene 10 bitcoins y decide enviar 2 bitcoins a María.
Mario usa su clave privada para autentificarse y anunciar una nueva transacción a la red. Posteriormente la red Bitcoin toma nota de esta transacción y registra el nuevo valor de la dirección de mario y de María: "Dirección de Mario: 8 bitcoins / Dirección de María: 2 bitcoins". Esta nueva transacción queda ahora respaldada en un registro colectivo e inalterable para que nadie pueda modificarlo y hacer trampas. Cuando María quiera gastar sus bitcoins, el proceso se repetirá de nuevo.

Este sistema resulta infranqueable y hace imposible cualquier tipo de trampa. Sin embargo y por esta misma razón, todas las transacciones son absolutamente públicas y transparentes, algo que en el sistema tradicional no ocurre. ¿Es eso malo? No, pues nadie conoce la identidad de la persona que hay detrás de la dirección usada (a menos que esta lo haga saber) y se preserva la privacidad de los usuarios. Para el resto de personas tu transacción será sólo un número, sin que sepan quién ha enviado o quién ha recibido el dinero. De esta manera se obtiene un sistema que no sólo es seguro a nivel informático sino también da confianza gracias a su transparencia inherente.

Respondiendo a la pregunta inicial: el valor de tu dirección Bitcoin queda respaldado en toda la red de miles y miles de ordenadores. Lo único que necesitas, por lo tanto, es tu clave privada. Con estas "credenciales" tú puedes acceder a tus bitcoins desde cualquier ordenador conectado a internet. Tanto en la teoría como en la práctica este sistema es viable y muy seguro, pues sólo el conocedor de la clave privada puede emitir una transacción válida.

Mi monedero Bitcoin (se aceptan donaciones) 1MpLhVjvseo2rx7UES6AqytdEQtCYfXJ3k

Como funciona Bitcoin


El funcionamiento de la red Bitcoin

Imagen

Bitcoin está basado en un sistema "peer to peer"  o de usuario a usuario muy ingenioso. Al no haber ningún organismo detrás de esta moneda libre, son los propios usuarios (miles de ordenadores de todo el mundo) que se aseguran de efectuar el seguimiento, control y registro de las transacciones. Gracias a esto y un complejo sistema criptográfico es posible asegurarse de que nadie haga trampas y que la moneda sea segura ante ataques, intentos de falsificación o duplicación. De ahí también viene el lema latín que algunos usuarios de la moneda acuñaron en sus días más tempranos: "Vires in numeris", es decir, "La fuerza está en los números".

Puede parece extraño al principio ya que no solemos estar acostumbrados a este tipo de conceptos, pero en la práctica las distintas aplicaciones Bitcoin simplifican el proceso de tal manera que enviar y recibir bitcoins sea tan fácil como enviar y recibir un correo electrónico. De esta manera no solo se convirte el sistema Bitcoin no sólo resulta seguro sino también sencillo y conveniente.

¿Sabías que el protocolo de Bitcoin es totalmente abierto y transparente? Cualquiera puede revisarlo y asegurarse de que todo va bien. De hecho, sólo así ha podido ganar la moneda la confianza de tantas personas en todo el mundo que la usan para sus negocios, hacer compras o enviar dinero a sus familiares. 

Para usuarios avanzados

La explicación del funcionamiento exacto y los detalles técnicos están más allá del propósito de esta sencilla guía. Sin embargo, se encuentran libremente disponibles en internet y pueden ser consultados por cualquiera que tenga curiosidad y quiera aprender más sobre la red Bitcoin y los mecanismos de verificación y seguridad.

Un buen punto de partida es el siguiente artículo de la Bitcoin Wiki en español, donde también se explica cómo el sistema Bitcoin previene el"doble gasto". Si dispones de conocimientos informáticos avanzados, quizá también te interese leer esta introducción sobre la tecnología detrás de Bitcoin. Sin embargo, si esta es la primera vez que oyes hablar de Bitcoin, te recomendamos que primero termines de leer esta guía y así poder entender mejor la gran cantidad de documentación que está disponible en la Bitcoin Wiki en español o inglés.

Mi monedero Bitcoin (se aceptan donaciones) 1MpLhVjvseo2rx7UES6AqytdEQtCYfXJ3k

El dinero del Futuro Bitcoins


Bueno yo se que esto no hace parte de la electronica pero es algo muy interesante que no pueden quedar sin mirarlo.



Una moneda digital P2P de código abierto

Bitcoin es una moneda digital, un protocolo y un software que permite:
  • Transacciones instantáneas punto a punto
  • Pagos en todo el mundo
  • Bajos o cero costos de procesamiento
  • Y mucho más
Bitcoin utiliza tecnología punto a punto para operar sin una autoridad central; gestionando las transacciones y la emisión de Bitcoins que se llevan a cabo conjuntamente por la red. A través de muchas de sus propiedades únicas, Bitcoin permite usos interesantes que no pueden ser cubiertos por otros sistemas de pago.
El software es un proyecto libre de código abierto, impulsado por la comunidad y liberado bajo la licencia MIT.

Bitcoin es una moneda, como el euro o el dólar estadounidense, que sirve para intercambiar bienes y servicios. Sin embargo, a diferencia de otras monedas, Bitcoin es una divisa electrónica que presenta novedosas características y destaca por su eficiencia, seguridad y facilidad de intercambio.

Veamos algunas de estas características: 
  • No pertenece a ningún Estado o país y puede usarse en todo el mundo por igual.
  • Está descentralizada: no es controlada por ningún Estado, banco, institución financiera o empresa. 
  • Es imposible su falsificación o duplicación gracias a un sofisticado sistema criptográfico. 
  • No hay intermediarios: Las transacciones se hacen directamente de persona a persona.
  • Las transacciones son irreversibles.
  • Puedes cambiar bitcoins a euros u otras divisas y viceversa, como cualquier moneda. 
  • No es necesario revelar tu identidad al hacer negocios y preserva tu privacidad.
  • El dinero te pertenece al 100%; no puede ser intervenido por nadie ni las cuentas pueden ser congeladas.

En cierto modo, Bitcoin se asemeja al dinero en efectivo que todos conocemos. Además de presentar muchas de las características de este conocido medio físico, al usar Bitcoin siempre mantenemos el control de nuestros fondos. Adicionalmente, también disponemos de muchas de las ventajas que el medio digital nos ofrece: es inmediato, puede mandarse a cualquier parte del mundo, etc.

Beneficios y ventajas de Bitcoin

En la actualidad, Bitcoin es la moneda digital más usada de todo el mundo y hay buenas razones por las cuales se está haciendo cada vez más popular. Tanto usuarios particulares como vendedores y propietarios de negocios encuentran en Bitcoin importantes ventajas que les han llevado a adoptar este sistema. Algunas, ya las hemos mencionado al principio de la página, pero hay muchas otras razones beneficiosas que veremos a continuación. 
  • Bitcoin ofrece seguridad al comprador y al vendedor.
En el pasado cercano, brechas de seguridad han causado el robo de miles de números de tarjetas de crédito, dejando desprotegidos a  compradores que han podido sufrir importantes pérdidas. Cuando realizamos compras con Bitcoin no tenemos que revelar información sensible como por ejemplo números de tarjeta de crédito o cuentas bancarias y por lo tanto no existe riesgo alguno de que esta información le sea sustraída al vendedor online.

Bitcoin también es preferible a otros sistemas de cobro online, sobretodo para el vendedor. En Bitcoin las tasas por transacciones son muy bajas y no existe riesgo alguno de que compradores fraudulentos y estafadores reviertan el pago, quedándose tanto con el producto como con el dinero.


Finalmente, las características de Bitcoin permiten a las páginas establecer un servicio de fideicomiso, asegurando que el vendedor sólo reciba el dinero si el producto ha llegado satisfactoriamente a su destino. Esto es usado frecuentemente en páginas de subastas y venta de productos de segunda mano.
  • Bitcoin abarata los costes al eliminar los intermediarios por completo. 
A día de hoy es aún muy común que el envío de dinero a cualquier parte del mundo conlleve importantes tasas o comisiones debido a la gran cantidad de intermediarios que hay en el proceso. Ello incluye: Comisiones por transferencia bancaria, comisiones por aceptar o usar tarjetas de crédito o débito, comisiones por usar servicios de "envío de dinero" o comisiones por usar servicios de "pago online". 

En Bitcoin no hay intermediarios y el dinero pasa directamente de persona a persona: de comprador a vendedor o de particular a particular. Esto reduce el precio de enviar dinero sustancialmente y permite también vender productos y servicios a un precio más justo. 


  • Bitcoin es justo.
En muchos sistemas tradicionales nos encontramos que enviar dinero es mucho más fácil que recibirlo. Esto dificulta la creación de nuevos negocios y tiendas online. Sin embargo, con Bitcoin, ambas opciones son igual de sencillas y cualquiera puede enviar y recibir dinero sin ningún tipo de restricción. Además, si eres dueño de un negocio, tanto digital como físico, no cuesta nada empezar a aceptar bitcoins.


  • Tus bitcoins son sólo tuyos.
El sistema descentralizado de seguridad que hay detrás Bitcoin hace imposible que cualquier otra persona que no disponga de tus credenciales pueda acceder a tu dinero. Tus bitcoins son tuyos y no pueden ser congelados o secuestrados, no se puede cerrar ninguna cuenta y sólo tú tienes acceso a ellos las 24 horas del día, 365 días al año. Este aspecto es para muchas personas quizá el más importante: sentirse realmente dueños de su dinero y poder estar seguros de ello. 


  • Bitcoin es democrático: la economía de las personas.
Cuando decimos que Bitcoin está descentralizado y que no hay ninguna institución, empresa, Estado, organismo o asociación detrás de ello que lo controle, es literalmente así. No es una metáfora, sino que realmente el sistema informático de la actualidad permite la creación de esta moneda digital segura y fiable que favorece el libre intercambio económico entre personas de todo el mundo. 
VALOR ACTUAL DE UN MILI-BITCOIN:




Nota: Este precio está representado en "mili-bitcoins" o "mBTC", una milésima parte de Bitcoin. Usamos esta fracción porque resulta más conveniente a la hora de representar precios del día a día.

Mi monedero Bitcoin (se aceptan donaciones) 1MpLhVjvseo2rx7UES6AqytdEQtCYfXJ3k

domingo, 15 de diciembre de 2013

MANUAL VISUALIZACION DINAMICA EN HANDEL-C


MANUAL
VISUALIZACION DINAMICA EN HANDEL-C




INTRODUCCION
Durante las últimas décadas, el desarrollo de las nuevas tecnologías de fabricación de circuitos integrados, junto con el significativo avance de los equipos informáticos, ha proporcionado la aparición de nuevos lenguajes de programación orientado al diseño de sistemas electrónicos.
Los lenguajes de programación durante años se han utilizado para resolver problemas, los cuales tienen reglas para formar instrucciones correctas, organizándolas en módulos y someterlas hacia un compilador , el cual traduce el código en un lenguaje comprensible para una máquina en particular, en el siguiente documento se encontrara una introducción sobre los lenguajes de programación pero se profundizara uno en específico llamado “Handel-C” el cual es un lenguaje de programación de alto nivel que se enfoca en hardware de bajo nivel, se quiere que el lector tenga al alcance una guia practica de facil entendimiento  sobre el lenguaje de programacion HANDEL-C, para esto  se realizará un ejemplo de visualización dinamica en este lenguaje el cual se montará el la FPGA para poder observar su funcionamiento.


HANDEL- C

Handel-C es un alto nivel de lenguaje de programación  Diseñado por Celoxica, el cual se enfoca en hardware de bajo nivel, más comúnmente utilizado en la programación de FPGAs;  este es un lenguaje para implementar algoritmos en hardware directamente de una representación en C. Para diseñar sistemas usando la herramienta de desarrollo DK Design Suite.

Handel-C  Es un rico subconjunto de C , con extensiones que no son estándar para el control de la creación de instancias de hardware con un énfasis en el paralelismo; la asignación y el comando de retardo tienen un ciclo. Todas las demás operaciones son "libres", esto permite a los programadores realizar manualmente las tareas y crear eficaces tuberías . Mediante la disposición de los bucles en paralelo con los retrasos correctos, las tuberías pueden aumentar enormemente el rendimiento de datos, a expensas de un mayor uso de recursos de hardware.

DK Design Suite

Handel-C en  síntesis con DK Design Suite (kit de diseño) ofrece un flujo de software para el desarrollo de algoritmos, optimización y aceleración en sistemas embebidos y  Con esto Validar el rendimiento y mejorar la calidad del producto en menos tiempo y con menor costo.

El DK Design Suite es muy adecuado para diseñadores de algoritmos que utilizan C y C + +, lo que requiere una plataforma de validación más rápido que una plataforma orientada al procesador (es decir, un ordenador portátil), pero no tienen experiencia herramienta de diseño HW(hardware) en profundidad de utilizar la lógica paralelo en FPGA de prototipos de hardware.
 La suite DK Design da la opción de  la compilación del algoritmo directamente a las placas FPGA dedicados para acelerar el rendimiento del sistema al tiempo que proporciona herramientas para la depuración y optimización.
Para los equipos de diseño de algoritmos, Handel-C permite la programación FPGA utilizando herramientas y flujos basados ​​en software. Los usuarios pueden comprobar los sistemas en las simulaciones de ciclo exacto, y compilar el código directamente en la lógica FPGA, la creación de archivos de un bit para programar juntas FPGA. Bibliotecas API permiten a los diseñadores de software para conectar procesadores y periféricos de mesa a la lógica FPGA, lo que permite una rápida exploración de HW y SW de aplicación compensaciones. El resultado final es un "banco de trabajo algoritmo" que permite la implementación rápida del sistema de software para las plataformas de hardware FPGA.
Algoritmos definen el valor de los sistemas integrados de hoy en día. Estos modelos complejos determinan el funcionamiento y rendimiento de los productos finales. Tiempos de ejecución resultantes de clásico SW compilación de una CPU pueden no ser lo suficientemente rápido. Verificación de mundo real la interacción de E / S puede ser necesaria para determinar la exactitud del algoritmo y funcionalidad. La suite DK Design ofrece una solución a este último por la compilación del algoritmo directamente a las placas FPGA dedicados para acelerar el rendimiento del sistema al tiempo que proporciona herramientas para la depuración y optimización.

EJEMPLO DE VISUALIZACION DINAMICA EN HANDEL-C

Línea 1: se declara la referencia de la FPGA, paquete y velocidad
Línea 2: se  declara la familia de la FPGA a utilizar
Línea 3: se define el reloj en pin B8 para FPGA spartan3e
Línea 4: se declara
-          a, b, c, d, e, f, g, variables correspondientes a cada uno de los leds de un display 7 segmentos
-          segmento, segmento1, segmento2, segmento3 para selecciona  los displays
Línea 5:declara las variables correspondientes a los 8 leds
Línea 6: asigna el switch dedicado a iniciar el funcionamiento
Línea 7: asigna el pulsador dedicado a la función reset
De la línea 12 a 30  llevamos a cabo la asignación de leds  y pines de los display 7 segmentos de la FPGA
Línea 32: se hace la declaración de un reloj de 5M
Línea 34-35: se hace el llamado de las variables a utilizar dentro de nuestro main
Línea 36: en esta línea hacemos la declaración de un while que siempre es verdadero  de acuerdo a las condiciones  internas del mismo.
Línea 38-66: hacemos la definición de del contador para cada una de las componentes (segundos, decenas de segundo, minuto, decenas de minuto). Estas componentes son dependientes de la menos significativa  que es decenas de segundo hasta minutos que sería la mas significativa
Figura 1.

Figura 2.
Figura 3.

Figura 4.
En la figuras 1,2,3,4 correspondientes a las líneas 77-177 se lleva a cabo la definición y asignación de la visualización dinámica de segundo , décimas de segundo, minuto  y decimas de minuto respectivamente usando las sentencia case  donde un 0 habilita  y un 1 inhabilita un determinado display correspondientes a  segmento, segmento1, segmento2, segmento3  para los cuales según sea el número del 1 al10  se le hace una determinada asignación de encendido u apagado para cada uno de los segmentos del display ( un 0 enciende un segmento del display y un 1 lo apaga).
Línea 205-207: se  definen las acciones tras accionar  el pulsador de reset  donde al estar en uno pone todos los contadores en 0.

·         Tras terminar  nuestro código de programación debemos compilar el programa para asegurarnos  de que no tenga ningún error y poder generar los archivos necesarios para poder hacer una posterior generación  e interpretación de archivos en Xilinx para poner en marcha nuestro proyecto sobre la FPGA.
Para compilar el proyecto seguiremos los siguientes pasos: build-> Rebuild All
Si todo está bien, nos aparecerá un mensaje “0 error, 0 warnings” y podremos proceder al montaje de archivos en Xilinx.
Crearemos un nuevo proyecto en Xilinx donde daremos un nombre, y las respectivas ubicaciones donde se guardara todo. En Top-level source type cambiaremos por EDIF y damos Next.
Ahora debemos seleccionar la ubicación del archivo .edf de nuestro proyecto generado por Dk desing y damos Next.
En esta ventana debemos configurar las las característica de la FPGA a utilizaren nuestro caso una basys2.
Family: Spartan3E
Device: XC3s100E
Package: CP132
Speed: -4
Después de tener configurado el proyecto de xilinx deberemos dar inicio a la verificación de sintaxis (1)  y luego damos clic en Generate Programing File (2) con lo cual se nos generara un archivo .bit el cual será el que usaremos para programas nuestra FPGA.

viernes, 13 de diciembre de 2013

UTILIZAR SIMULINK DE MATLAB PARA HACER UN MODULADOR QPSK

UTILIZAR SIMULINK DE MATLAB PARA HACER UN MODULADOR QPSK
Introducción.
La utilización de nuevas tecnologías nos obliga a realizar adaptaciones y acoplarnos a estas. En este sentido lo mejores hacer cada vez más fácil el  manejo e implementación de estas nuevas tecnologías. Con este objetivo día tras día se trabaja el hacer más fácil la programación de estas nuevas tecnologías para incentivar el mismo desarrollo.
La utilización de la modulación en señales es sobreponerlas con portadoras, de esta manera se aprovecha mejor el canal de comunicación, lo que nos ayuda a transmitir más información de una forma simultánea y sin mencionar la mejora contra ruidos e interferencias que se puedan presentar.
En este manual se mostrara la modulación digital especifica QPSK (cuadratura Phase Shift Keying); Se utilizara la herramienta “simulink” de Matlab para hacer la simulación de esta modulación. Explicando paso a paso la modulación y simulación de este.
Objetivos:
·         Familiarizarse con el entorno de la herramienta System Generator.
·         Conocer y utilizar la herramienta “simulink” de Matlab
·         Por medio de la práctica, reconocer algunas ventajas y debilidades de la herramienta para el diseño de soluciones.
·         Conocer los procedimientos para exportar, compilar y programar nuestro diseño en un kit de desarrollo de la Familia Spartan.
·         Realizar el montaje práctico del diseño y analizar los resultados con los elementos de medición disponibles en el laboratorio.
·         Comprender y analizar el funcionamiento de la modulación QPSK y su aplicativo en Matlab.



MODULACION
Modulación engloba el conjunto de técnicas que se usan para transportar información sobre una onda portadora, típicamente una onda sinusoidal. Estas técnicas permiten un mejor aprovechamiento del canal de comunicación lo que posibilita transmitir más información en forma simultánea además de mejorar la resistencia contra posibles ruidos e interferencias. Según la American National Standard for Telecommunications, la modulación es el proceso, o el resultado del proceso, de variar una característica de una portadora de acuerdo con una señal que transporta información. El propósito de la modulación es sobreponer señales en las ondas portadoras.
Básicamente, la modulación consiste en hacer que un parámetro de la onda portadora cambie de valor de acuerdo con las variaciones de la señal moduladora, que es la información que queremos transmitir.
Onda de baja frecuencia (portadora, las dos de abajo) puede modularse en amplitud (AM, varía la amplitud) o en frecuencia (FM, varía la frecuencia).
TIPOS DE MODULACION
Modulación Analógica
Las tres técnicas de modulación analógica básica son:
  • Modulación de la amplitud (AM o amplitud modulada).
  • Modulación de la frecuencia (FM o frecuencia modulada).
  • Modulación de la fase (PM o fase modulada).
La mayoría de los sistemas de comunicación utilizan alguna de estas tres técnicas de modulación básicas, o una combinación de ellas.
Modulación Digital
La función de una modulación digital es convertir los bits en señales adecuadas para su transmisión. La gran ventaja de las modulaciones digitales es que son más robustas frente al ruido, y además permiten regenerar la señal con mayor calidad que las modulaciones analógicas Los siguientes son algunas técnicas de modulación digital
  • Modulación por desplazamiento de amplitud (ASK, Amplitude Shift Keying)
  • Modulación por desplazamiento de frecuencia (FSK,Frecuency Shift Keying)
  • Modulación por desplazamiento de fase (PSK, Phase Shift Keying)
MODULACIÓN PSK
La modulación por desplazamiento de fase o PSK (Phase Shift Keying) es una forma de modulación angular que consiste en hacer variar la fase de la portadora entre un número de valores discretos. La diferencia con la modulación de fase convencional (PM) es que mientras en ésta la variación de fase es continua, en función de la señal moduladora, en la PSK la señal moduladora es una señal digital y, por tanto, con un número de estados limitado.
La modulación PSK se caracteriza porque la fase de la señal portadora representa cada símbolo de información de la señal moduladora, con un valor angular que el modulador elige entre un conjunto discreto de "n" valores posibles.
Dependiendo del número de posibles fases a tomar, recibe diferentes denominaciones. Dado que lo más común es codificar un número entero de bits por cada símbolo, el número de fases a tomar es una potencia de dos. Así tendremos BPSK con 2 fases (equivalente a PAM), QPSK con 4 fases (equivalente a QAM), 8-PSK con 8 fases y así sucesivamente. A mayor número de posibles fases, mayor es la cantidad de información que se puede transmitir utilizando el mismo ancho de banda, pero mayor es también su sensibilidad frente a ruidos e interferencias.
Se puede modelar como la conmutación de dos señales sinusoidales de características similares pero desfasadas 180°, definidas mediante las siguientes expresiones:
f1(t) = Asen(wct) (equivalente al 1 binario)
f2(t) = -Asen(wct) (equivalente al 0 binario)

Existen dos tipos de modulación PSK: BPSK con 2 fases y  QPSK con 4 fases.
BPSK (PSK Binario)
Este esquema es la modulación de desplazamiento de fase de 2 símbolos. Es el más sencillo de todos, puesto que solo emplea 2 símbolos, con 1 bit de información cada uno. Es también la que presenta mayor inmunidad al ruido, puesto que la diferencia entre símbolos es máxima (180º). Dichos símbolos suelen tener un valor de salto de fase de 0º para el 1 y 180º para el 0, como se muestra en un diagrama de constelación. En cambio, su velocidad de transmisión es la más baja de las modulaciones de fase.
Descripción: http://upload.wikimedia.org/wikipedia/commons/thumb/4/41/BPSK_Gray_Coded.svg/175px-BPSK_Gray_Coded.svg.png
Diagrama de constelación para BPSK.
QPSK (Quadrature Phase-Shift Keying)
Esta modulación digital es representada en el diagrama de constelación por cuatro puntos equidistantes del origen de las coordenadas. Con cuatro fases, QPSK puede codificar dos bits por cada símbolo. La asignación de bits a cada símbolo suele hacerse mediante el código Gray, que consiste en que, entre dos símbolos adyacentes, los símbolos solo se diferencian en 1 bit, con lo que se logra minimizar la tasa de bits erróneos, se dividen en grupos de dos (11, 10, 01 o 00) y a cada posible par de bits se le  asigna una forma de onda.
Descripción: http://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/QPSK_Gray_Coded.svg/200px-QPSK_Gray_Coded.svg.png
Diagrama de constelación para QPSK con código Gray.
El "PSK" en QPSK se refiere al uso de phased Shift Keying. Shift Keying etapas es una forma de modulación de fase que se logra mediante el uso de un discreto número de estados. QPSK se refiere a PSK con 4 estados.
Desplazamiento de fase de 4 símbolos, desplazados entre sí 90º. Normalmente se usan como valores de salto de fase 45º, 135º, 225º, y 315º. Cada símbolo aporta 2 bits. Suele dividirse el flujo de cada bit que forman los símbolos como I y Q.




Primero que todo se tiene que verificar que el software xilinx este asociado con  Matlab
Si estamos en W7 debemos dar clic derecho en System Generator MATLAB Configurator e ejecutar como administrador .


Seleccionamos nuestra versión de Matlab y damos Apply

El siguiente esquema de bloques representa en funcionamiento de un modulador QPSK, el cual implementaremos durante el desarrollo del manual.
Modulador QPSK. El flujo binario es dividido dos componentes, denominados canales I (inphase, en fase) y Q (quadrature, en cuadratura) que modulan independientemente a dos portadoras ortogonales entre sí. Después, las dos señales se superponen, y la señal resultante es la señal QPSK. En la figura se muestran dos codificadores (NRZ Encoder) que se pueden colocar antes de la entrada del flujo de datos binario, aunque han sido colocados después para ilustrar la diferencia conceptual entre señales digitales y analógicas involucradas en la modulación digital. La implementación es semejante al modulador de QAM digital.
Después de iniciar Matlab, para llamar la herramienta simulink simplemente escribimos simulink en la consola y damos enter

En la herramienta de simulink encontramos gran variedad de toolbox, estas son librerías que  contienen Blocksets. Si requerimos de una herramienta damos clic en nuevo y se abre una nueva ventana donde se puede arrastrar los Blocksets e interconectarlos como se ve en la siguiente imagen.                 
Para el desarrollo de este modulador QPSK es importante simular una sucesión de bits para el ingreso de datos del modulador para ello debemos arrastrar la siguiente Blocksets, el generador de Bernoulli que se encuentra en el toolbox communications system, este genera un vector de bits aleatoriamente.
Para la configuración del Blocksets damos doble clic en la Blocksets y observamos las opciones que nos ofrece el Blocksets, pero para el caso del generador de Bernoulli se deja predeterminado.
Este modulador debe estar sincronizado con el tiempo para ello debemos generar un reloj, esto se hace con el Blockset Pulse generator que se encuentra en el toolbox simulink, este Blockset nos genera una onda cuadrada y con ello simulamos el tiempo del modulador, para configurar el tiempo debemos calcular la frecuencia que necesitamos y para ello configuramos en el periodo


Luego debemos incluir un NRZ encoder, este encoder convierte los bits generados por el generador de Bernoulli en una onda de pulsos como un PWM. Para esto se necesita la Blockset convert que se encuentra en la toolbox simulink.
Ingresamos a la configuracion y selecionamos en output data type y seleccionamos boolean como se ve en la siguiente imagen, esto se debe a que es un circuito digital entonces es necesario obtener numeros booleanos.

Luego debemos demultiplexar la señal de entrada para ello se implementa un circuito lógico combinacional
Para el desfase de la señal debemos llamar el Blockset logic que nos permite negar o invertir la señal de entrada.
Para configurarlo debemos establecer los elementos del vector pues ya que esto funciona con la tabla de verdad de la negadora de un modo implícito.
Luego debemos incluir compuertas AND, estas están definidas en el Blockset logical operator que  se pueden encontrar en el toolbox simulink





Su configuración queda predeterminada.
Luego incluimos constantes para el funcionamiento de los flip-flops tipo D según la tabla de verdad
Su configuración la debemos hacer en el atributo de la señal, como estamos trabajando en circuito lógico requerimos de datos booleanos, modificaremos en output data type

 Los flip flops tipo D se dejan predeterminados.
Luego debemos convertir la señal unipolar a bipolar, para ello se necesita multiplicar la señal en 2 veces, incluiremos los Blocksets constant y product del toolbox simulink.
La configuración de las 4 constantes radica en el principal tenemos constantes de 1 y 2 para la multiplicación, en signal attributes esta predeterminada.
Luego la señales resultantes se suman con constantes para ello se debe incluir el Blockset ADD de la toolbox simulink

Debemos configurar la señal  como un amplificador operacional con entradas inversoras y no inversoras

Se procede luego a multiplicar las señales, se necesita una señal portadora que se encuentre en fase para ello incluimos la Q seno
 Para generar nuestras componentes i-coseno y q-seno introducimos para cada una, una señal seno con las siguientes configuraciones

Para i-coseno
Debemos introducir la frecuencia que es 2*pi*4 y luego la desfasamos en pi/2 y las muestras del tiempo deben ser por 0.01

Para q-seno: Debemos introducir la frecuencia que es 2*pi*4 y luego la para la fase debe estar en   pi y las muestras del tiempo deben ser por 0.01

Los product y el add siguientes a la conexión   se dejan con la configuración predeterminada
Uniendo todos los Blocksets debemos tener el siguiente esquema
Para comprobar si el esquema está funcionando, incluiremos de la toolbox de simulink el Blockset scope.
Con esta herramienta observaremos la señal modula del modulador QPSK, procedemos a dar play en simulink y damos doble clic en scope y podemos ver la señal modulada
Se puede ver claramente que por cada uno o cero la señal se desfasada

Conclusiones: