Main Content

buttord

버터워스 필터 차수와 차단 주파수

설명

예제

[n,Wn] = buttord(Wp,Ws,Rp,Rs)는 통과대역 리플이 Rp dB보다 크지 않고 저지대역 감쇠량이 최소 Rs dB인 디지털 버터워스 필터의 최소 차수 n을 반환합니다. WpWs는 각각 이 필터의 통과대역 경계 주파수와 저지대역 경계 주파수입니다. 이러한 주파수는 0 ~ 1에서 정규화된 주파수이며 여기서 1은 π rad/sample에 해당합니다. 이에 대응하는 차단 주파수 Wn의 스칼라(또는 벡터)도 반환됩니다. 버터워스 필터를 설계하려면 출력 인수 nWnbutter에 대한 입력값으로 사용하십시오.

[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')는 아날로그 버터워스 필터에 대한 최소 차수 n과 차단 주파수 Wn을 구합니다. 주파수 WpWs를 초당 라디안 단위로 지정합니다. 통과대역이나 저지대역은 무한대일 수 있습니다.

예제

모두 축소

1000Hz로 샘플링된 데이터에 대해 0Hz~40Hz의 통과대역 리플이 3dB을 넘지 않고 저지대역 감쇠량이 최소 60dB인 저역통과 필터를 설계합니다. 필터 차수와 차단 주파수를 구합니다.

Wp = 40/500;
Ws = 150/500;

[n,Wn] = buttord(Wp,Ws,3,60)
n = 5
Wn = 0.0810

2차섹션형(SOS)으로 필터를 지정하고 주파수 응답을 플로팅합니다.

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,512,1000)
title(sprintf('n = %d Butterworth Lowpass Filter',n))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 5 Butterworth Lowpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

통과대역 리플이 최대 3dB이고 저지대역 감쇠량이 최소 40dB인 100Hz~200Hz의 통과대역을 갖는 대역통과 필터를 설계합니다. 샘플 레이트를 1kHz로 지정합니다. 통과대역의 양쪽 모두에서 저지대역 너비를 50Hz로 설정합니다. 필터 차수와 차단 주파수를 구합니다.

Wp = [100 200]/500;
Ws = [50 250]/500;
Rp = 3;
Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
n = 8
Wn = 1×2

    0.1951    0.4080

2차섹션형(SOS)으로 필터를 지정하고 주파수 응답을 플로팅합니다.

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,128,1000)
title(sprintf('n = %d Butterworth Bandpass Filter',n))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 8 Butterworth Bandpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

입력 인수

모두 축소

통과대역 코너 (차단) 주파수로, 0에서 1 사이의 값을 갖는 스칼라 또는 요소를 2개 가진 벡터로 지정됩니다. 여기서 1은 정규화된 나이퀴스트 주파수 π rad/sample에 해당합니다.

  • WpWs가 모두 스칼라이고 Wp < Ws인 경우 buttord는 저역통과 필터의 차수와 차단 주파수를 반환합니다. 필터의 저지대역 범위는 Ws ~ 1이고, 통과대역 범위는 0 ~ Wp입니다.

  • WpWs가 모두 스칼라이고 Wp > Ws인 경우 buttord는 고역통과 필터의 차수와 차단 주파수를 반환합니다. 필터의 저지대역 범위는 0 ~ Ws이고, 통과대역 범위는 Wp ~ 1입니다.

  • WpWs가 모두 벡터이고 Ws로 지정된 구간에 Wp(Ws(1) < Wp(1) < Wp(2) < Ws(2))로 지정된 구간이 포함된 경우, buttord는 대역통과 필터의 차수와 차단 주파수를 반환합니다. 필터의 저지대역 범위는 0 ~ Ws(1), Ws(2) ~ 1입니다. 통과대역 범위는 Wp(1) ~ Wp(2)입니다.

  • WpWs가 모두 벡터이고 Wp로 지정된 구간에 Ws(Wp(1) < Ws(1) < Ws(2) < Wp(2))로 지정된 구간이 포함된 경우, buttord는 대역저지 필터의 차수와 차단 주파수를 반환합니다. 필터의 저지대역 범위는 Ws(1) ~ Ws(2)입니다. 통과대역 범위는 0 ~ Wp(1), Wp(2) ~ 1입니다.

데이터형: single | double

참고

필터 사양이 각 통과대역 또는 저지대역에서 리플이 서로 같지 않은 대역통과 필터 또는 대역저지 필터를 필요로 할 경우, 별도의 저역통과 필터와 고역통과 필터를 설계하고 두 필터를 함께 종속적으로 연결하십시오.

저지대역 코너 주파수로, 0에서 1 사이의 값을 갖는 스칼라 또는 요소를 2개 가진 벡터로 지정됩니다. 여기서 1은 정규화된 나이퀴스트 주파수 π rad/sample에 해당합니다.

데이터형: single | double

통과대역 리플로, dB를 단위로 하는 스칼라로 지정됩니다.

데이터형: single | double

저지대역 감쇠량으로, dB를 단위로 하는 스칼라로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

가장 낮은 필터 차수로, 정수 스칼라로 반환됩니다.

차단 주파수로, 스칼라 또는 벡터로 반환됩니다.

알고리즘

buttord의 차수 예측 공식은 아날로그 영역에서 아날로그 필터와 디지털 필터 모두에 적용됩니다. 디지털 필터의 경우, 차수와 고유 주파수를 추정하기 전에 주파수 파라미터를 s 영역으로 변환합니다. 그런 다음 이를 다시 z 영역으로 변환합니다.

buttord는 처음에 원하는 필터의 통과대역 주파수를1 rad/second(저역통과 필터와 고역통과 필터의 경우)와 –1 rad/second 및1 rad/second(대역통과 필터와 대역저지 필터의 경우)로 변환함으로써 저역통과 필터 프로토타입을 개발합니다. 그런 다음, 저역통과 필터가 저지대역 사양을 충족하는 데 필요한 최소 차수를 계산합니다.

참고 문헌

[1] Rabiner, Lawrence R., and Bernard Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975.

확장 기능

버전 내역

R2006a 이전에 개발됨