최신 정보:
이 질문에 근거한 Scipy Recipe를 찾았습니다! 따라서 관심있는 사람은 다음으로 바로 이동하십시오. 목차»신호 처리»버터 워스 대역 통과
처음에는 1D numpy 배열 (시계열)에 대해 버터 워스 대역 통과 필터를 구현하는 간단한 작업처럼 보였던 것을 달성하는 데 어려움을 겪고 있습니다.
내가 포함해야하는 매개 변수는 sample_rate, 컷오프 주파수 IN HERTZ 및 가능한 순서입니다 (감쇠, 고유 주파수 등과 같은 다른 매개 변수는 나에게 더 모호하므로 "기본값"값이면됩니다).
지금 내가 가진 것은 이것이 고역 통과 필터로 작동하는 것처럼 보이지만 제대로하고 있는지 확실하지 않습니다.
def butter_highpass(interval, sampling_rate, cutoff, order=5):
nyq = sampling_rate * 0.5
stopfreq = float(cutoff)
cornerfreq = 0.4 * stopfreq # (?)
ws = cornerfreq/nyq
wp = stopfreq/nyq
# for bandpass:
# wp = [0.2, 0.5], ws = [0.1, 0.6]
N, wn = scipy.signal.buttord(wp, ws, 3, 16) # (?)
# for hardcoded order:
# N = order
b, a = scipy.signal.butter(N, wn, btype='high') # should 'high' be here for bandpass?
sf = scipy.signal.lfilter(b, a, interval)
return sf
문서와 예제는 혼란스럽고 모호하지만 "for bandpass"로 표시된 칭찬에 제시된 양식을 구현하고 싶습니다. 주석의 물음표는 무슨 일이 일어나고 있는지 이해하지 못하고 몇 가지 예제를 복사하여 붙여 넣은 위치를 보여줍니다.
저는 전기 공학이나 과학자가 아니며 EMG 신호에 대해 다소 간단한 대역 통과 필터링을 수행해야하는 의료 장비 설계자 일뿐입니다.