封裝乙個SyPy過濾器

2021-10-06 12:17:31 字數 1682 閱讀 7992

通過封裝兩個庫模組中的一些功能,我們可以清楚地看到數字濾波器的外觀。 另外,通過將__init__分為兩部分,可以即時重置過濾器的建立引數和內部條件。

""" encapulates a scipy filter. given type, freq and order,

create the coefficients and internal conditions, etc."""

import scipy.signal.filter_design as fd

import scipy.signal.signaltools as st

_filtertypedict = 

defaultfiltertype = 'butterworth'

defaultfilterorder = 2

defaultfilterfreq = 0.1

class filterobject(object):

def __init__(self, channelnumber, ntaps, freq,

btype='lowpass', ftype="butter", output='ba'):

self.channelnumber = channelnumber

self.initfilter(ntaps, freq, btype, ftype, output)

def initfilter(self, ntaps, freq, btype, ftype, output):

print "taps = %d: freq = %f" % (ntaps, freq)

b, a = fd.iirfilter(ntaps, freq, btype=btype, ftype=ftype, output=output)

self.b, self.a = b, a

self.ic = st.lfiltic(b, a, (0.0,))

def filter(self, dataarray):

restuple = st.lfilter(self.b, self.a, dataarray, zi=self.ic)

self.ic = restuple[-1]

return restuple[0]

if __name__ == "__main__":

x = (1.5, 1.4, 1.5, 1.6, 1.5, 1.4, 1.5, 1.6)

f = filterobject(2, .05)

for a in range(20):

print f.filter(x)

這是另乙個很好的例子。

_filtertypedict是「名稱修改」的示例。 這是保持模組作用域變數為半私有的方法。

匯入mymodule時

模組作用域的類,函式和變數由引用

mymodule.myclass(),mymodule.myfunction(),mymodule.myvariable。

當您使用以下命令匯入模組的物件時

從mymodule匯入*

除_semiprivate變數外,該模組中的所有名稱均置於匯入模組的範圍內。 他們是半私人的,因為您仍然可以

a = mymodule._semiprivate(名稱已匯入到當前作用域中,並在其前面新增了模組名稱)。

from:

filters過濾器封裝

filters.js import vue from vue 秒轉時分 vue.filter timestamp function second time return time 時間戳轉日期 1569736900 2019 09 29 vue.filter timefilter function ...

vue 過濾器基本用法以及封裝過濾器

理解 不改變data的資料格式,在介面顯示處理後的資料格式 比如 對陣列中的日期進行擷取 整體 封裝過濾器filter如下 在vue cli腳手架裡面的src檔案下面的components中建立乙個filter.js檔案 然後在filter裡面寫入過濾器方法 過濾器 function formats...

vue 字典過濾器封裝

一 建立檔案 utils資料夾下建立乙個datadictionary.js檔案二 需要過濾的資料如下進行設定 const datajson export default datajson三 引入註冊 main.js引入全域性註冊使用 import datadic from utils datadic...