Main Content

buttap

버터워스 필터 프로토타입

설명

예제

[z,p,k] = buttap(n)n차 버터워스 아날로그 저역통과 필터 프로토타입의 극점과 이득을 반환합니다.

예제

모두 축소

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

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line.

입력 인수

모두 축소

버터워스 필터의 차수로, 양의 정수 스칼라로 지정됩니다.

출력 인수

모두 축소

시스템의 영점으로, 행렬로 반환됩니다. z의 열은 분자 영점을 포함합니다. 영점이 없으므로 z는 빈 행렬입니다.

시스템의 극점으로, 열 벡터로 반환됩니다. p에는 전달 함수의 분모 계수 극점 위치가 있습니다.

시스템의 이득으로, 스칼라로 반환됩니다. k에는 각 분자 전달 함수의 이득이 있습니다.

알고리즘

함수 buttap는 극점을 길이가 n인 열 벡터 p로 반환하고 이득을 스칼라 k로 반환합니다. 영점이 없으므로 z는 빈 행렬입니다. 전달 함수는 다음과 같습니다.

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

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

참고

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

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

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

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

참고 문헌

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

확장 기능

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

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | |