[SciPy-User] performant envelope follower

henry lindsay smith henrylindsaysmith at gmail.com
Fri Sep 17 09:44:45 EDT 2010


I have the following code backported from C envelope follower and converted
into python code (using numpy arrays)

        for i in range(len(self.m_signal)):

            envIn=np.abs(self.m_signal[i]**2)#square for energy

            if(self.envelope < envIn):

                self.envelope *= self.m_ga

                self.envelope +=(1-self.m_ga)*envIn

            else:

                self.envelope *= self.m_gr

                self.envelope +=(1-self.m_gr)*envIn

            self.sigEnv[i]=self.envelope


it runs but slowly as I am iterating through the whole signal which is
pretty slow in python (but super fast in C)

Can anyone think of a more efficient way to run this possibly as as a
filtering operation? I need the same result as I'm going to port back into C
at somepoint.

thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20100917/858d353c/attachment.html>


More information about the SciPy-User mailing list