파이썬의 scipy.signal.remez 함수를 사용하여 등역 하이 패스 필터를 설계하려고합니다. 그러나 결과 전달 함수는 통과 대역에서 최대 15dB의 피킹과 단지 6dB의 정지 대역 감쇠로 인해 매우 이상하게 보입니다. 해당 로우 패스 디자인은 괜찮아 보입니다 (~ 0.1 dB 통과 대역 리플 40 dB 정지 대역 감쇠) :파이썬 scipy.signal.remez 고역 통과 필터 설계로 이상한 전달 함수가 생깁니다
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# Minimum working example for remez (equiripple) filter designs:
from __future__ import division, print_function
import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
F_PB = 0.1 # corner frequency of pass band
F_SB = 0.15 # corner frequency of stop band
W_PB = 1 # weight factor for pass band
W_SB = 1 # weight factor for stop band
L = 40 # filter order
#b = sig.remez(L, [0, F_PB, F_SB, 0.5], [1, 0], [W_PB, W_SB], Hz = 1) # low pass
b = sig.remez(L, [0, F_PB, F_SB, 0.5], [0, 1], [W_PB, W_SB], Hz = 1) # high pass
# Calculate H(w), w = 0 ... pi, 1024 Pts.
[w, H] = sig.freqz(b, worN = 1024)
# Translate w to normalized frequencies F = 0 ... 0.5:
F = w/(2 * np.pi)
plt.figure(1)
plt.plot(F, 20 * np.log10(abs(H)))
plt.title(r'Magnitude transfer function in dB')
plt.show()
이 사람이 무슨 일인지를 설명 할 수 있습니까?
건배는 기본 remez
인수 type='bandpass'
와 고역 통과 필터를 들어
나는 그것을 알았어야만했는데 왜 밴드 순서 필터가 심지어 실패했는지 설명합니다 ... 정확한 답변을 많이 주셔서 감사합니다! 불행하게도, 나는 당신을 투표 할 수 없습니다. – Chipmuenk