[Numpy-discussion] help to speed up the python code

frank wang f.yw at hotmail.com
Fri Oct 24 12:30:15 EDT 2008


Hi,
 
I have to send this request second time since my first message contains the attached data file which is too big and was blocked by the system. So this time I will not attach the data file.
 
I have converted a matlab function to python using numpy.  both matlab and python run slow. I know that numpy has a lot of features, so I hope some experts can help me to speed up the code.
 
Here is how I run the code:
 
 upsample.upsample(cdata,4*10240000*401.0/812.0,25600000.0,'r')
 
Where cdata is about 70000 complex data.
 
Thanks
 
Frank
 
 
from numpy import zeros,ceil,pi,arange,concatenate,sincfrom pylab import plot,clf,show,figure, psd, grid,xlabel, figureimport pdbdef upsample(input,Fs_old,Fsamp,filt_type):
 """Perform resampling the input data from rate Fs to Fsamp Note:y=zeros((N)) shape is (N,). y=zeros((N,1)) shape is (N,1). Example of how to read a two columns floating data file created by  Matlab. d=fromfile("filename",dtype='float',count=-1,sep=' ') x=len(d) data=d.reshape([x/2,2]) """
 Ts=1.0/Fs_old Tsamp=1.0/Fsamp Fw=6000000.0
 L=len(input) N=ceil(Fsamp/Fs_old*L) y=zeros((N),dtype='float64') C=pi*Fw t0=arange(0,Ts,Tsamp) #print t0
 P = 16 input=concatenate((zeros((P)),input,zeros((P))),1) #print input
 out = 0 for mm in arange(P+1):  tt=t0-mm*Ts  out=out+input[P+mm]*sinc(Fw*tt) #print tt #print "out\n" #print out
 y[0:len(t0)]=out #print y
 B=len(t0) for m in arange(P+2,L+P+1):  delta=Tsamp-(Ts-t0[-1])  t1=arange(delta,Ts,Tsamp)  out=0  for mm in arange(-P,P+1):   tt=(m-1-P)*Ts+t1-(mm+m-(P+2)+1)*Ts   out=out+input[m+mm-1]*sinc(Fw*tt)
  y[B:B+len(t1)]=out  t0=t1  B=B+len(t1)   clf() figure(4)     psd(y,256,Fs=25.6)     #show()
_________________________________________________________________
You live life beyond your PC. So now Windows goes beyond your PC.
http://clk.atdmt.com/MRT/go/115298556/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20081024/e43a9a83/attachment.html>


More information about the NumPy-Discussion mailing list