def _delete_cells(self): """ Delete all selected elements in self.ba by: - determining the indices of all selected cells in the P and Z arrays - deleting elements with those indices - equalizing the lengths of b and a array by appending the required number of zeros. When nothing is selected, delete the last row. Finally, the QTableWidget is refreshed from self.ba. """ sel = qget_selected(self.tblCoeff)['sel'] # get indices of all selected cells if not np.any(sel) and len(self.ba[0]) > 0: self.ba[0] = np.delete(self.ba[0], -1) self.ba[1] = np.delete(self.ba[1], -1) else: self.ba[0] = np.delete(self.ba[0], sel[0]) self.ba[1] = np.delete(self.ba[1], sel[1]) # test and equalize if b and a array have different lengths: self._equalize_ba_length() if len(self.ba[0]) < 2: self._clear_table() else: self._refresh_table() qstyle_widget(self.ui.butSave, 'changed')
def _delete_cells(self): """ Delete all selected elements in self.ba by: - determining the indices of all selected cells in the P and Z arrays - deleting elements with those indices - equalizing the lengths of b and a array by appending the required number of zeros. When nothing is selected, delete the last row. Finally, the QTableWidget is refreshed from self.ba. """ sel = qget_selected(self.tblCoeff)['sel'] # get indices of all selected cells if not np.any(sel) and len(self.ba[0]) > 0: self.ba[0] = np.delete(self.ba[0], -1) self.ba[1] = np.delete(self.ba[1], -1) else: self.ba[0] = np.delete(self.ba[0], sel[0]) self.ba[1] = np.delete(self.ba[1], sel[1]) # test and equalize if b and a array have different lengths: self._equalize_ba_length() # if length is less than 2, clear the table: this ain't no filter! if len(self.ba[0]) < 2: self._clear_table() # sets 'changed' attribute else: self._refresh_table() qstyle_widget(self.ui.butSave, 'changed')
def _set_coeffs_zero(self): """ Set all coefficients = 0 in self.ba with a magnitude less than eps and refresh QTableWidget """ eps = float(self.ledSetEps.text()) idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices test_val = 0. # value against which array is tested targ_val = 0. # value which is set when condition is true if not idx: # nothing selected, check whole table b_0 = np.isclose(self.ba[0], test_val, rtol=0, atol=eps) if np.any( b_0): # found at least one coeff where condition was true self.ba[0] = self.ba[0] * np.logical_not(b_0) qstyle_widget(self.butSave, 'changed') if fb.fil[0]['ft'] == 'IIR': a_0 = np.isclose(self.ba[1], test_val, rtol=0, atol=eps) if np.any(a_0): self.ba[1] = self.ba[1] * np.logical_not(a_0) qstyle_widget(self.butSave, 'changed') else: # only check selected cells changed = False for i in idx: if np.isclose(self.ba[i[0]][i[1]], test_val, rtol=0, atol=eps): self.ba[i[0]][i[1]] = targ_val changed = True if changed: # mark save button as changed qstyle_widget(self.butSave, 'changed') self._refresh_table()
def quant_coeffs(self): """ Quantize selected / all coefficients in self.ba and refresh QTableWidget """ idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices if not idx: # nothing selected, quantize all elements self.ba = self.myQ.fixp(self.ba, scaling='multdiv') else: for i in idx: self.ba[i[0]][i[1]] = self.myQ.fixp(self.ba[i[0]][i[1]], scaling = 'multdiv') qstyle_widget(self.ui.butSave, 'changed') self._refresh_table()
def quant_coeffs(self): """ Quantize selected / all coefficients in self.ba and refresh QTableWidget """ idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices if not idx: # nothing selected, quantize all elements self.ba = self.myQ.fixp(self.ba, scaling='multdiv') else: for i in idx: self.ba[i[0]][i[1]] = self.myQ.fixp(self.ba[i[0]][i[1]], scaling = 'multdiv') qstyle_widget(self.ui.butSave, 'changed') self._refresh_table()
def _set_coeffs_zero(self): """ Set all coefficients = 0 in self.ba with a magnitude less than eps and refresh QTableWidget """ self._set_eps() idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices test_val = 0. # value against which array is tested targ_val = 0. # value which is set when condition is true changed = False if not idx: # nothing selected, check whole table b_close = np.logical_and( np.isclose(self.ba[0], test_val, rtol=0, atol=self.ui.eps), (self.ba[0] != targ_val)) if np.any(b_close ): # found at least one coeff where condition was true self.ba[0] = np.where(b_close, targ_val, self.ba[0]) changed = True if fb.fil[0]['ft'] == 'IIR': a_close = np.logical_and( np.isclose(self.ba[1], test_val, rtol=0, atol=self.ui.eps), (self.ba[1] != targ_val)) if np.any(a_close): self.ba[1] = np.where(a_close, targ_val, self.ba[1]) changed = True else: # only check selected cells for i in idx: if np.logical_and( np.isclose(self.ba[i[0]][i[1]], test_val, rtol=0, atol=self.ui.eps), (self.ba[i[0]][i[1]] != targ_val)): self.ba[i[0]][i[1]] = targ_val changed = True if changed: qstyle_widget(self.ui.butSave, 'changed') # mark save button as changed self._refresh_table()
def quant_coeffs(self): """ Quantize selected / all coefficients in self.ba and refresh QTableWidget """ self._store_q_settings() # read comboboxes and store setting in filter dict # always save quantized coefficients in fractional format # -> change output format to 'float' before quantizing and storing in self.ba self.myQ.frmt = 'float' idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices if not idx: # nothing selected, quantize all elements self.ba = self.myQ.fixp(self.ba, scaling='div') else: for i in idx: self.ba[i[0]][i[1]] = self.myQ.fixp(self.ba[i[0]][i[1]], scaling = 'div') qstyle_widget(self.ui.butSave, 'changed') self._refresh_table()
def quant_coeffs(self): """ Quantize selected / all coefficients in self.ba and refresh QTableWidget """ self._store_q_settings( ) # read comboboxes and store setting in filter dict # always save quantized coefficients in fractional format # -> change output format to 'float' before quantizing and storing in self.ba self.myQ.frmt = 'float' idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices if not idx: # nothing selected, quantize all elements self.ba = self.myQ.fix(self.ba, to_float=True) else: for i in idx: self.ba[i[0]][i[1]] = self.myQ.fix(self.ba[i[0]][i[1]], to_float=True) qstyle_widget(self.butSave, 'changed') self._refresh_table()
def _add_cells(self): """ Add the number of selected rows to self.ba and fill new cells with zeros from the bottom. If nothing is selected, add one row at the bottom. Refresh QTableWidget. """ # get indices of all selected cells sel = qget_selected(self.tblCoeff)['sel'] if not np.any(sel): sel[0] = [len(self.ba[0])] sel[1] = [len(self.ba[1])] self.ba[0] = np.insert(self.ba[0], sel[0], 0) self.ba[1] = np.insert(self.ba[1], sel[1], 0) # insert 'sel' contiguous rows before 'row': # self.ba[0] = np.insert(self.ba[0], row, np.zeros(sel)) self._equalize_ba_length() self._refresh_table()
def _add_cells(self): """ Add the number of selected rows to self.ba and fill new cells with zeros from the bottom. If nothing is selected, add one row at the bottom. Refresh QTableWidget. """ # get indices of all selected cells sel = qget_selected(self.tblCoeff)['sel'] if not np.any(sel): sel[0] = [len(self.ba[0])] sel[1] = [len(self.ba[1])] self.ba[0] = np.insert(self.ba[0], sel[0], 0) self.ba[1] = np.insert(self.ba[1], sel[1], 0) # insert 'sel' contiguous rows before 'row': # self.ba[0] = np.insert(self.ba[0], row, np.zeros(sel)) self._equalize_ba_length() self._refresh_table()
def _add_cells(self): """ Add the number of selected rows to self.ba and fill new cells with zeros from the bottom. If nothing is selected, add one row at the bottom. Refresh QTableWidget. """ # get indices of all selected cells sel = qget_selected(self.tblCoeff)['sel'] if not np.any(sel): # nothing selected, append zeros to table np.append(self.ba[0], 0) np.append(self.ba[1], 0) else: self.ba[0] = np.insert(self.ba[0], sel[0], 0) self.ba[1] = np.insert(self.ba[1], sel[1], 0) # insert 'sel' contiguous rows before 'row': # self.ba[0] = np.insert(self.ba[0], row, np.zeros(sel)) self._equalize_ba_length() self._refresh_table() # don't tag as 'changed' when only zeros have been added at the end if np.any(sel): qstyle_widget(self.ui.butSave, 'changed')
def _set_coeffs_zero(self): """ Set all coefficients = 0 in self.ba with a magnitude less than eps and refresh QTableWidget """ self._set_eps() idx = qget_selected(self.tblCoeff)['idx'] # get all selected indices test_val = 0. # value against which array is tested targ_val = 0. # value which is set when condition is true changed = False if not idx: # nothing selected, check whole table b_close = np.logical_and(np.isclose(self.ba[0], test_val, rtol=0, atol=self.ui.eps), (self.ba[0] != targ_val)) if np.any(b_close): # found at least one coeff where condition was true self.ba[0] = np.where(b_close, targ_val, self.ba[0]) changed = True if fb.fil[0]['ft'] == 'IIR': a_close = np.logical_and(np.isclose(self.ba[1], test_val, rtol=0, atol=self.ui.eps), (self.ba[1] != targ_val)) if np.any(a_close): self.ba[1] = np.where(a_close, targ_val, self.ba[1]) changed = True else: # only check selected cells for i in idx: if np.logical_and(np.isclose(self.ba[i[0]][i[1]], test_val, rtol=0, atol=self.ui.eps), (self.ba[i[0]][i[1]] != targ_val)): self.ba[i[0]][i[1]] = targ_val changed = True if changed: qstyle_widget(self.ui.butSave, 'changed') # mark save button as changed self._refresh_table()
def _add_cells(self): """ Add the number of selected rows to self.ba and fill new cells with zeros from the bottom. If nothing is selected, add one row at the bottom. Refresh QTableWidget. """ # get indices of all selected cells sel = qget_selected(self.tblCoeff)['sel'] if not np.any(sel): # nothing selected, append zeros to table self.ba[0] = np.append(self.ba[0], 0) self.ba[1] = np.append(self.ba[1], 0) else: self.ba[0] = np.insert(self.ba[0], sel[0], 0) self.ba[1] = np.insert(self.ba[1], sel[1], 0) # insert 'sel' contiguous rows before 'row': # self.ba[0] = np.insert(self.ba[0], row, np.zeros(sel)) self._equalize_ba_length() self._refresh_table() # don't tag as 'changed' when only zeros have been added at the end if np.any(sel): qstyle_widget(self.ui.butSave, 'changed')