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.

import numpy as np
import pylab as pl
import ssd
from scipy import signal

r, b, data0 = ssd.BPSK_tx(100000,10,1.5,0,'src')
# 100000 symbols, Ns=10, Df = 1.5*Rb, 0dB down
r = ssd.cpx_AWGN(r,100,10) # EsN0=100dB, Ns=10
Pr,f = ssd.my_psd(r,2**10,Fs=10)
pl.figure(1)
pl.plot(f,10*np.log10(Pr))
z = signal.lfilter(b,1,r)# b is the SRC filter
#pl.figure(2)
ssd.eye_plot(np.real(z[2000:6000]),20)#20 samp wind
yI,yQ = ssd.scatter(z[2000:6000],10,0)
pl.figure(3)
pl.plot(yI,yQ,'.')
pl.axis('equal')
r, b, data0 = ssd.BPSK_tx(100000,10,1.5,0,'src')
r = ssd.cpx_AWGN(r,20,10) # EsN0=20dB, Ns=10
Pr,f = ssd.my_psd(r,2**10,Fs=10)
pl.figure(4)
pl.plot(f,10*np.log10(Pr))
z = signal.lfilter(b,1,r)
#pl.figure(5)
ssd.eye_plot(np.real(z[2000:6000]),20)#20 samp wind
#ssd.scatter_plot(z[2000:6000]*np.exp(1j*np.pi/5),10,0)
yI,yQ = ssd.scatter(z[2000:6000]*np.exp(1j*np.pi/5),10,0)
pl.figure(6)
pl.plot(yI,yQ,'.')
pl.axis('equal')

No hay comentarios.:

Publicar un comentario