def _firwin_ord(self, F, W, A, alg): #http://www.mikroe.com/chapters/view/72/chapter-2-fir-filters/ delta_f = abs(F[1] - F[0]) * 2 # referred to f_Ny delta_A = np.sqrt(A[0] * A[1]) if self.fir_window_name == 'kaiser': N, beta = sig.kaiserord(20 * np.log10(np.abs(fb.fil[0]['A_SB'])), delta_f) self.led_firwin_1.setText(str(beta)) fb.fil[0]['wdg_fil'][1] = beta self._update_UI() #self._load_dict() return N if self.firWindow == 'hann': gamma = 3.11 sidelobe = 44 elif self.firWindow == 'hamming': gamma = 3.32 sidelobe = 53 elif self.firWindow == 'blackman': gamma = 5.56 sidelobe = 75 else: gamma = 1 N = remezord(F, W, A, Hz=1, alg=alg)[0] return N
def LPmin(self, fil_dict): self.get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_PB, self.F_SB], [1, 0], [self.A_PB, self.A_SB], Hz = 1, alg = self.alg) fil_dict['F_C'] = (self.F_SB + self.F_PB)/2 # use average of calculated F_PB and F_SB self.save(fil_dict, sig.firwin(self.N, fil_dict['F_C'], window = self.firWindow, nyq = 0.5))
def HPmin(self, fil_dict): self._get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_SB, self.F_PB], [0, 1], [self.A_SB, self.A_PB], Hz=1, alg=self.alg) # self.N = ceil_odd(N) # enforce odd order fil_dict['W_SB'] = W[0] fil_dict['W_PB'] = W[1] if (self.N % 2 == 0): # even order self._save( fil_dict, sig.remez(self.N, F, [0, 1], weight=W, Hz=1, type='hilbert', grid_density=self.grid_density)) else: self._save( fil_dict, sig.remez(self.N, F, [0, 1], weight=W, Hz=1, type='bandpass', grid_density=self.grid_density))
def _firwin_ord(self, F, W, A, alg): #http://www.mikroe.com/chapters/view/72/chapter-2-fir-filters/ delta_f = abs(F[1] - F[0]) delta_A = np.sqrt(A[0] * A[1]) if self.fir_window_name == 'kaiser': N, beta = sig.kaiserord(fb.fil[0]['A_SB'], delta_f) self.led_firwin_1.setText(str(beta)) fb.fil[0]['wdg_dyn'][1] = beta self.firWindow[1] = beta self._load_entries() return N if self.firWindow == 'hann': gamma = 3.11 sidelobe = 44 elif self.firWindow == 'hamming': gamma = 3.32 sidelobe = 53 elif self.firWindow == 'blackman': gamma = 5.56 sidelobe = 75 else: gamma = 1 N = remezord(F, W, A, Hz = 1, alg = alg)[0] return N
def _firwin_ord(self, F, W, A, alg): #http://www.mikroe.com/chapters/view/72/chapter-2-fir-filters/ delta_f = abs(F[1] - F[0]) delta_A = np.sqrt(A[0] * A[1]) if self.fir_window_name == 'kaiser': N, beta = sig.kaiserord(fb.fil[0]['A_SB'], delta_f) self.led_firwin_1.setText(str(beta)) fb.fil[0]['wdg_fil'][1] = beta self.firWindow[1] = beta self._load_dict() return N if self.firWindow == 'hann': gamma = 3.11 sidelobe = 44 elif self.firWindow == 'hamming': gamma = 3.32 sidelobe = 53 elif self.firWindow == 'blackman': gamma = 5.56 sidelobe = 75 else: gamma = 1 N = remezord(F, W, A, Hz = 1, alg = alg)[0] return N
def HPmin(self, fil_dict): self.get_params(fil_dict) (N, F, A, W) = remezord([self.F_SB, self.F_PB], [0, 1], [self.A_SB, self.A_PB], Hz = 1, alg = self.alg) fil_dict['F_C'] = (self.F_SB + self.F_PB)/2 # use average of calculated F_PB and F_SB self.N = round_odd(N) # enforce odd order self.save(fil_dict, sig.firwin(self.N, fil_dict['F_C'], window = self.firWindow, pass_zero=False, nyq = 0.5))
def LPmin(self, fil_dict): self._get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_PB, self.F_SB], [1, 0], [self.A_PB, self.A_SB], Hz = 1, alg = self.alg) fil_dict['W_PB'] = W[0] fil_dict['W_SB'] = W[1] self._save(fil_dict, sig.remez(self.N, F, [1, 0], weight = W, Hz = 1, grid_density = self.grid_density))
def BPmin(self, fil_dict): self._get_params(fil_dict) self.N = remezord([self.F_SB, self.F_PB, self.F_PB2, self.F_SB2], [0, 1, 0], [self.A_SB, self.A_PB, self.A_SB2], Hz = 1, alg = self.alg)[0] fil_dict['F_C'] = (self.F_SB + self.F_PB)/2 # use average of calculated F_PB and F_SB fil_dict['F_C2'] = (self.F_SB2 + self.F_PB2)/2 # use average of calculated F_PB and F_SB self._save(fil_dict, sig.firwin(self.N, [fil_dict['F_C'], fil_dict['F_C2']], window = self.firWindow, pass_zero=False, nyq = 0.5))
def BSmin(self, fil_dict): self._get_params(fil_dict) N = remezord([self.F_PB, self.F_SB, self.F_SB2, self.F_PB2], [1, 0, 1], [self.A_PB, self.A_SB, self.A_PB2], Hz = 1, alg = self.alg)[0] self.N = round_odd(N) # enforce odd order fil_dict['F_C'] = (self.F_SB + self.F_PB)/2 # use average of calculated F_PB and F_SB fil_dict['F_C2'] = (self.F_SB2 + self.F_PB2)/2 # use average of calculated F_PB and F_SB self._save(fil_dict, sig.firwin(self.N, [fil_dict['F_C'], fil_dict['F_C2']], window = self.firWindow, pass_zero=True, nyq = 0.5))
def BSmin(self, fil_dict): self._get_params(fil_dict) (N, F, A, W) = remezord([self.F_PB, self.F_SB, self.F_SB2, self.F_PB2], [1, 0, 1], [self.A_PB, self.A_SB, self.A_PB2], Hz = 1, alg = self.alg) self.N = round_odd(N) # enforce odd order fil_dict['W_PB'] = W[0] fil_dict['W_SB'] = W[1] fil_dict['W_PB2'] = W[2] self._save(fil_dict, sig.remez(self.N,F,[1, 0, 1], weight = W, Hz = 1, grid_density = self.grid_density))
def HPmin(self, fil_dict): self._get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_SB, self.F_PB], [0, 1], [self.A_SB, self.A_PB], Hz = 1, alg = self.alg) # self.N = ceil_odd(N) # enforce odd order fil_dict['W_SB'] = W[0] fil_dict['W_PB'] = W[1] if (self.N % 2 == 0): # even order self._save(fil_dict, sig.remez(self.N, F,[0, 1], weight = W, Hz = 1, type = 'hilbert', grid_density = self.grid_density)) else: self._save(fil_dict, sig.remez(self.N, F,[0, 1], weight = W, Hz = 1, type = 'bandpass', grid_density = self.grid_density))
def LPmin(self, fil_dict): self._get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_PB, self.F_SB], [1, 0], [self.A_PB, self.A_SB], Hz=1, alg=self.alg) fil_dict['W_PB'] = W[0] fil_dict['W_SB'] = W[1] self._save( fil_dict, sig.remez(self.N, F, [1, 0], weight=W, Hz=1, grid_density=self.grid_density))
def BSmin(self, fil_dict): self._get_params(fil_dict) (N, F, A, W) = remezord([self.F_PB, self.F_SB, self.F_SB2, self.F_PB2], [1, 0, 1], [self.A_PB, self.A_SB, self.A_PB2], Hz=1, alg=self.alg) self.N = round_odd(N) # enforce odd order fil_dict['W_PB'] = W[0] fil_dict['W_SB'] = W[1] fil_dict['W_PB2'] = W[2] self._save( fil_dict, sig.remez(self.N, F, [1, 0, 1], weight=W, Hz=1, grid_density=self.grid_density))
def BPmin(self, fil_dict): self._get_params(fil_dict) (self.N, F, A, W) = remezord([self.F_SB, self.F_PB, self.F_PB2, self.F_SB2], [0, 1, 0], [self.A_SB, self.A_PB, self.A_SB2], Hz=1, alg=self.alg) if not self._test_N(): return -1 fil_dict['W_SB'] = W[0] fil_dict['W_PB'] = W[1] fil_dict['W_SB2'] = W[2] self._save( fil_dict, sig.remez(self.N, F, [0, 1, 0], weight=W, Hz=1, grid_density=self.grid_density))