Hola gente!
Os quiero pedir algo de ayuda a ver si alguien me echa una mano. Ando liado 2 semanas ya intentando encontrar solución a un programa que he hecho que yo diría que funciona bien pero no hace lo que esperé. Os pongo al corriente:
el programa tiene que emular una comunicación de larga distancia. Para hacerlo nos ayudamos de las funciones ya creadas en MatLab como la creación del canal de comunicación rayleighchan.
El programa que he hecho hace lo siguiente:
- Crea una secuéncia de bits {-1, 1} de forma aleatoria (en concreto 100).
- Los modula usando una modulación diferencial.
- Multiplica estos bits resultantes por una secuéncia PN (que nos da Matlab) para ensanchar y hacer más fiable el dato.
- Lo pasamos por el canal.
- Se debe "correlar" con la secuéncia PN (la misma) ya que así podremos averiguar qué hemos recibido.
- Se debe tratar estos datos para volver a crear la secuéncia del principio haciendo la demodulación incluida.
Para modular y demodular solo se tiene que llamar a la función "diferencial(x)" y "reDiferencial(x)". Para la secuéncia PN se debe llamar a otra función pero no hace falta entrar en detalles ya que es de un autor en mathworks.
Pongo en spoiler el código de mi script a ver si alguien me da una idea.
Creo que el problema es que a veces no detecta bien la fase del símbolo enviado y por eso se lía.