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