2013-08-27 5 views
4

나는 신호 데이터의 이동 평균을 취하여 matlab에서 저역 통과 필터를 만들었다. 그러나 이동 평균이 로우 패스 필터를 만드는 경우 하이 패스 필터의 방정식을 정확히 설계하려면 어떻게해야합니까? 나는 저역 통과를 위해 평균을 사용하는 것에 대한 직감을 이해한다. (고주파는 평균 제로로되지만 저주파는 신호 값에 가까운 수로 평균을 낸다).하이 패스 필터의 방정식은 무엇입니까?

하지만 하이 패스 필터에는 어떤 공식이 사용됩니까?

+1

여기 간단한 이동 평균 필터보다 선택성이 좋은 로우 패스 필터와 하이 패스 필터의 예를 보여줍니다. http://blog.bjornroche.com/2012/08/basic-audio-eqs.html –

답변

8

방정식이 많이 있습니다! 아마도 가장 간단한 하나의 H(z) = Y(z)/X(z) 필터의 시스템 방정식

H(z) = 1 - z^-1 

을 Z 변환 형 복용 한 샘플 지연 차 함수,

y[n] = x[n] - x[n-1] 

이다 나.

AudioLazy을 MatPlotLib (Python)과 함께 사용하면이 하이 패스 필터에 대한 주파수 응답 플롯을 입력 할 수 있습니다. 처음 7 개 샘플의 결과뿐만 아니라

from audiolazy import z, Stream 
filt = 1 - z ** -1 
sig = Stream(1, 3, 1, -1, -3, -1) # Periodic signal 
filt(sig).take(7) 

,

from audiolazy import z 
(1 - z ** -1).plot().show() 

Simple highpass filter

당신은 신호에 적용 할 수 있습니다 : (공개 나는 AudioLazy의 저자) :

[1.0, 2, -2, -2, -2, 2, 2] 

동일한 작업을 수행 할 수 있습니다. N GNU 옥타브 (또는 매트랩)

filter([1, -1], [1], [1, 3, 1, -1, -3, -1, 1]) 

예에서 [-2;2] 범위 [-3;3] 진폭 범위 붕괴 6 샘플주기 신호의 FIR 필터의

[1, 2, -2, -2, -2, 2, 2] 

를 반환한다. 당신이 12 샘플 신호 (낮은 주파수)을 시도 할 경우 :

filt = 1 - z ** -1 
sig = Stream(1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0) 
filt(sig).take(13) 

이제 결과는 또 다른 구형파이지만, [-1;1] 범위이다. 주파수 응답에 대해 의미있는 사인파를 사용하여 동일한 시도를해야하며 필터의 출력으로 다른 사인 곡선을 동일한 주파수로 유지해야합니다.

또한 Nyquist 주파수에서 공진기를 사용하여 IIR 필터를 제공 할 수 있습니다. 다양한 요구에 따라 여러 가지 다른 필터 디자인 (예 : Butterworth, Chebyshev, Elliptical)이 있습니다. 필터를 설계하는 동안 최소 위상, 선형 위상, 필터 안정성 및 리플 진폭 최소화는 가능한 설계 목표 (또는 제약 조건)입니다.

+1

멋진 설명 .. diff는 DC베이스 라인을 제거합니다! –

8

매우 단순한 하이 패스 필터는 원래 데이터에서 로우 패스 필터를 빼서 구성 할 수 있습니다. 저에너지 컨텐츠를 빼면 고 에너지 컨텐츠가 남아 있으므로 고역 필터가 생성됩니다. 바라기를, 이것은 직관적이다.

data = %some data here 
low_pass_data = %calc low pass here 
high_pass_data = data - low_pass_data 

@ H.D.훨씬 더 광범위한 대답을 가지고 있지만 OP에 너무 복잡 할 수 있다고 생각했습니다.

+3

이것은 lp 필터가 신호를 지연시키지 않은 경우에 잘 작동합니다. –

+0

@BjornRoche 정확히 말하면, OP는 지연을 발생시키지 않는 이동 평균 LFP 필터를 사용하여 언급했습니다. – PeterM

+1

이동 평균 필터'(1 + z^-1 + ... + z^- (M-1))/M은 M의 "전반"과 "후반" 샘플에서 평균을 취하고 있으므로 평균을 취하는 것이 무엇이든 상관없이 인과 관계가되도록 'M/2' 샘플의 지연이 필요합니다.'z^- (M-1)까지의 지연이 필요합니다.)'. –

관련 문제