Simulación de un sistema para transmisión de datos binarios en Python


Uno de los mejores libros que he revisado este año es Signals and Systems For Dummies de Mark Wickert. En una de sus aplicaciones titulada Simulate the System for Transmitting Binary Data in Python añadí una leve corrección al código en la parte de gráficas y llamado a funciones de la librería ssd.py.

  1. import numpy as np
  2. import pylab as pl
  3. import ssd
  4. from scipy import signal
  5.  
  6. r, b, data0 = ssd.BPSK_tx(100000,10,1.5,0,'src')
  7. # 100000 symbols, Ns=10, Df = 1.5*Rb, 0dB down
  8. r = ssd.cpx_AWGN(r,100,10) # EsN0=100dB, Ns=10
  9. Pr,f = ssd.my_psd(r,2**10,Fs=10)
  10. pl.figure(1)
  11. pl.plot(f,10*np.log10(Pr))
  12. z = signal.lfilter(b,1,r)# b is the SRC filter
  13. #pl.figure(2)
  14. ssd.eye_plot(np.real(z[2000:6000]),20)#20 samp wind
  15. yI,yQ = ssd.scatter(z[2000:6000],10,0)
  16. pl.figure(3)
  17. pl.plot(yI,yQ,'.')
  18. pl.axis('equal')
  19. r, b, data0 = ssd.BPSK_tx(100000,10,1.5,0,'src')
  20. r = ssd.cpx_AWGN(r,20,10) # EsN0=20dB, Ns=10
  21. Pr,f = ssd.my_psd(r,2**10,Fs=10)
  22. pl.figure(4)
  23. pl.plot(f,10*np.log10(Pr))
  24. z = signal.lfilter(b,1,r)
  25. #pl.figure(5)
  26. ssd.eye_plot(np.real(z[2000:6000]),20)#20 samp wind
  27. #ssd.scatter_plot(z[2000:6000]*np.exp(1j*np.pi/5),10,0)
  28. yI,yQ = ssd.scatter(z[2000:6000]*np.exp(1j*np.pi/5),10,0)
  29. pl.figure(6)
  30. pl.plot(yI,yQ,'.')
  31. pl.axis('equal')

No hay comentarios.:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...