이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

buttap

버터워스 필터 프로토타입

구문

[z,p,k] = buttap(n)

설명

[z,p,k] = buttap(n)n차 버터워스 아날로그 저역통과 필터 프로토타입의 극점과 이득을 반환합니다. 이 함수는 극점을 길이가 n인 열 벡터 p로 반환하고 이득을 스칼라 k로 반환합니다. 영점이 없으므로 z는 빈 행렬입니다. 전달 함수는 다음과 같습니다.

H(s)=z(s)p(s)=k(sp(1))(sp(2))(sp(n))

버터워스 필터의 크기 응답은 통과대역이 최대로 평탄하고 전체적으로 단조적(Monotonic)인 것이 특징입니다. 저역통과의 경우 제곱 크기 응답의 처음 2n-1개 도함수가 ω = 0에서 0입니다. 제곱 크기 응답 함수는 다음과 같습니다.

|H(ω)|2=11+(ω/ω0)2n

이는 왼쪽 절반 평면에서 원을 중심으로 균일하게 배치된 극점을 갖는 전달 함수에 대응됩니다. 차단 각주파수 ω0에서의 크기 응답은 필터 차수와 관계없이 항상 1/2입니다. buttap는 정규화된 결과를 얻기 위해 ω0을 1로 설정합니다.

참고

함수 buttap는 MATLAB®에서는 영점, 극점, 이득 (z, p, and k)를 반환합니다. 그러나 buttap에 대해 생성된 C/C++ 코드는 극점 p와 이득 k만 반환합니다. 영점 z는 항상 빈 행렬이기 때문입니다.

예제

모두 축소

9차 버터워스 아날로그 저역통과 필터를 설계합니다. 필터의 크기 응답과 위상 응답을 표시합니다.

[z,p,k] = buttap(9);          % Butterworth filter prototype
[num,den] = zp2tf(z,p,k);     % Convert to transfer function form
freqs(num,den)                % Frequency response of analog filter

알고리즘

z = [];
p = exp(sqrt(-1)*(pi*(1:2:2*n-1)/(2*n)+pi/2)).';
k = real(prod(-p));

참고 문헌

[1] Parks, T. W., and C. S. Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987, chap. 7.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

참고 항목

| | | |

R2006a 이전에 개발됨