MCPcopy Create free account
hub / github.com/PyTTaMaster/PyTTa / filter

Method filter

pytta/classes/filter.py:121–165  ·  view source on GitHub ↗

Filter the signal object. For each channel inside the input signalObj, will be generated a new SignalObj with the channel filtered signal. Args: sigobj: SignalObj Return: output: List A list containing one SignalObj

(self, sigobj)

Source from the content-addressed store, hash-verified

119 # return self._filter(sigobj)
120
121 def filter(self, sigobj):
122 """
123 Filter the signal object.
124
125 For each channel inside the input signalObj, will be generated a new
126 SignalObj with the channel filtered signal.
127
128 Args:
129 sigobj: SignalObj
130
131 Return:
132 output: List
133 A list containing one SignalObj with the filtered data for each
134 channel in the original signalObj.
135
136 """
137 if self.samplingRate != sigobj.samplingRate:
138 raise ValueError("SignalObj must have same sampling rate of filter to be filtered.")
139 n = self.sos.shape[2]
140 output = []
141 chl = []
142 for ch in range(sigobj.numChannels):
143 sobj = sigobj[ch]
144 filtered = np.zeros((sobj.numSamples, n))
145 for k in range(n):
146 cContigousArray = sobj.timeSignal[:].copy(order='C')
147 filtered[:, k] = ss.sosfilt(self.sos[:, :, k].copy(order='C'),
148 cContigousArray,
149 axis=0).T
150 chl.append(copy(sobj.channels[sobj.channels.mapping[0]]))
151 chl[-1].num = k+1
152 chl[-1].name = f'Band {k+1}'
153 chl[-1].code = f'B{k+1}'
154 signalDict = {'signalArray': filtered,
155 'domain': 'time',
156 'samplingRate': self.samplingRate,
157 'freqMin': sigobj.freqMin,
158 'freqMax': sigobj.freqMax,
159 }
160 out = SignalObj(**signalDict)
161 out.channels = ChannelsList(chl)
162 # out.timeSignal = out.timeSignal * out.channels.CFlist()
163 output.append(out)
164 chl.clear()
165 return output
166
167
168

Callers 5

_filterFunction · 0.95
_filterFunction · 0.95
SPLFunction · 0.45
__call__Method · 0.45
filtered_signal.pyFile · 0.45

Calls 3

SignalObjClass · 0.90
ChannelsListClass · 0.90
appendMethod · 0.80

Tested by

no test coverage detected