wwvmon.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:weakmon 作者: rtmrtmrtmrtm 项目源码 文件源码
def process(self, buf, eof, tm0):
        global filterorder, votewin

        # correct back to start of self.ssamples[]
        tm0 -= self.ssampleslen / float(self.inrate)

        self.ssamples.append(buf)
        self.ssampleslen += len(buf)

        while True:
            if self.ssampleslen < 60 * self.inrate:
                break

            if eof == False and self.ssampleslen < (votewin+1)*60*self.inrate:
                break

            samples = numpy.concatenate(self.ssamples)
            self.ssamples = None
            self.ssampleslen = None

            filter = weakutil.butter_bandpass(self.center - self.filterwidth/2,
                                              self.center + self.filterwidth/2,
                                              self.inrate, filterorder)
            filtered = scipy.signal.lfilter(filter[0], filter[1], samples)

            # down-sampling makes everything run much faster.
            # XXX perhaps sacrificing fine alignment?
            down = weakutil.resample(filtered, self.inrate, self.lorate)
            self.process1(down, tm0)

            trim = 60*self.inrate
            samples = samples[trim:]
            self.ssamples = [ samples ]
            self.ssampleslen = len(samples)
            tm0 += trim / float(self.inrate)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号