Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

besself

베셀 아날로그 필터 설계

설명

예제

[b,a] = besself(n,Wo)n차 저역통과 아날로그 베셀 필터의 전달 함수 계수를 반환합니다. 여기서 Wo는 각주파수인데, 이 각주파수까지는 필터의 군지연이 거의 일정하게 유지됩니다. n의 값이 클수록 Wo까지의 일정한 값을 더욱 잘 근사하는 군지연이 생성됩니다. besself 함수는 디지털 베셀 필터 설계를 지원하지 않습니다.

예제

[z,p,k] = besself(___)는 저역통과 아날로그 베셀 필터를 설계하고 이 필터의 영점, 극점, 이득을 반환합니다.

[A,B,C,D] = besself(___)는 아날로그 베셀 필터를 설계하고 이 필터의 상태공간 표현을 지정하는 행렬을 반환합니다.

예제

모두 축소

최대 104 rad/second까지 군지연이 거의 일정한 5차 아날로그 저역통과 베셀 필터를 설계합니다. freqs를 사용하여 필터의 크기 응답과 위상 응답을 플로팅합니다.

wc = 10000;
[b,a] = besself(5,wc);
freqs(b,a)

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.

필터의 군지연 응답을 펼쳐진 위상 응답의 도함수의 음수로 계산합니다. 군지연을 플로팅하여 차단 주파수까지 군지연이 거의 일정한지 확인합니다.

[h,w] = freqs(b,a);
grpdel = -diff(unwrap(angle(h)))./diff(w);

clf
loglog(w(2:end),grpdel)
xlabel('Frequency (rad/s)')
ylabel('Group delay (s)')
xline(wc)
grid

Figure contains an axes object. The axes object with xlabel Frequency (rad/s), ylabel Group delay (s) contains 2 objects of type line, constantline.

2GHz의 차단 주파수를 갖는 5차 아날로그 버터워스 저역통과 필터를 설계합니다. 2π를 곱하여 주파수를 초당 라디안 값으로 변환합니다. 4096개 점에서 필터의 주파수 응답을 계산합니다.

n = 5;
fc = 2e9;

[zb,pb,kb] = butter(n,2*pi*fc,"s");
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);

동일한 경계 주파수와 3dB의 통과대역 리플을 갖는 5차 체비쇼프 유형 I 필터를 설계합니다. 필터의 주파수 응답을 계산합니다.

[z1,p1,k1] = cheby1(n,3,2*pi*fc,"s");
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);

동일한 경계 주파수와 30dB의 저지대역 감쇠량을 갖는 5차 체비쇼프 유형 II 필터를 설계합니다. 필터의 주파수 응답을 계산합니다.

[z2,p2,k2] = cheby2(n,30,2*pi*fc,"s");
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);

동일한 경계 주파수, 3dB의 통과대역 리플, 30dB의 저지대역 감쇠량을 갖는 5차 타원 필터를 설계합니다. 필터의 주파수 응답을 계산합니다.

[ze,pe,ke] = ellip(n,3,30,2*pi*fc,"s");
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);

동일한 경계 주파수를 갖는 5차 베셀 필터를 설계합니다. 필터의 주파수 응답을 계산합니다.

[zf,pf,kf] = besself(n,2*pi*fc);
[bf,af] = zp2tf(zf,pf,kf);
[hf,wf] = freqs(bf,af,4096);

감쇠량(단위: 데시벨)을 플로팅합니다. 주파수를 기가헤르츠 단위로 표현합니다. 필터를 비교합니다.

plot([wb w1 w2 we wf]/(2e9*pi), ...
    mag2db(abs([hb h1 h2 he hf])))
axis([0 5 -45 5])
grid
xlabel("Frequency (GHz)")
ylabel("Attenuation (dB)")
legend(["butter" "cheby1" "cheby2" "ellip" "besself"])

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Attenuation (dB) contains 5 objects of type line. These objects represent butter, cheby1, cheby2, ellip, besself.

버터워스 필터와 체비쇼프 유형 II 필터는 평탄한 통과대역과 넓은 천이 대역을 가집니다. 체비쇼프 유형 I 필터와 타원 필터는 더 빨리 롤오프되지만 통과대역 리플을 가집니다. 체비쇼프 유형 II 설계 함수에 대한 주파수 입력값은 통과대역의 끝값이 아니라 저지대역의 시작값을 설정합니다. 베셀 필터는 통과대역에서 거의 일정한 군지연을 가집니다.

입력 인수

모두 축소

필터 차수로, 정수 스칼라로 지정됩니다. 대역통과 및 대역저지 설계의 경우, n은 필터 차수의 절반을 나타냅니다.

데이터형: double

차단 주파수로, 스칼라 또는 요소를 2개 가진 벡터로 지정됩니다. 차단 주파수는 필터의 군지연이 거의 일정한 주파수 범위의 상한 또는 하한입니다. 차단 주파수는 초당 라디안으로 표현되어야 하고 모든 양의 값을 받을 수 있습니다.

  • Wo가 스칼라이면 besself는 차단 주파수 Wo를 갖는 저역통과 필터나 고역통과 필터를 설계합니다.

  • Wow1 < w2를 충족하는 요소를 2개 가진 벡터 [w1 w2]이면 besself는 저역 차단 주파수 w1과 고역 차단 주파수 w2를 갖는 대역통과 필터나 대역저지 필터를 설계합니다.

데이터형: double

출력 인수

모두 축소

필터의 전달 함수 계수로, 저역통과 필터와 고역통과 필터에 대해서는 길이가 n + 1인 행 벡터로 반환되고 대역통과 필터와 대역저지 필터에 대해서는 길이가 2n + 1인 행 벡터로 반환됩니다. 전달 함수는 다음과 같이 ba로 표현됩니다.

H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sn+a(2)sn1++a(n+1).

데이터형: double

필터의 영점, 극점, 이득으로, 길이가 n(대역통과 설계와 대역저지 설계의 경우 2n임)인 두 개의 열 벡터와 하나의 스칼라로 반환됩니다. 전달 함수는 다음과 같이 z, pk로 표현됩니다.

H(s)=k(sz(1))(sz(2))(sz(n))(sp(1))(sp(2))(sp(n)).

데이터형: double

필터의 상태공간 표현으로, 행렬로 반환됩니다. 저역통과 설계와 고역통과 설계에 대해 m = n이고 대역통과 필터와 대역저지 필터에 대해 m = 2n이면 A는 m × m, B는 m × 1, C는 1 × m, 그리고 D는 1 × 1입니다.

상태공간 행렬은 상태 벡터 x, 입력값 u, 출력값 y와 다음 관계를 가집니다.

x˙=Ax+Buy=Cx+Du.

데이터형: double

알고리즘

besself는 아날로그 베셀 필터를 설계합니다. 이 필터는 전체 통과대역에서 군지연이 거의 일정하므로 통과대역에서 필터 적용된 신호의 파형을 유지합니다.

저역통과 버터워스 필터와 마찬가지로, 저역통과 베셀 필터는 단조 감소하는 크기 응답을 가집니다. 버터워스, 체비쇼프, 타원 필터에 비해, 베셀 필터는 롤오프가 가장 느리며 감쇠 사양을 충족하는 데 가장 높은 차수가 필요합니다.

차수가 높은 필터의 경우, 상태공간 형식이 가장 수치적으로 정확하며, 그 다음이 영점-극점-이득 형식 순입니다. 전달 함수 계수 형식이 가장 정확도가 낮으며, 필터 차수가 15 정도로 낮은 경우 수치적 문제가 발생할 수 있습니다.

besself는 다음 4단계의 알고리즘을 사용합니다.

  1. besselap 함수를 사용하여 저역통과 아날로그 프로토타입 극점, 영점, 이득을 구합니다.

  2. 극점, 영점, 이득을 상태공간 형식으로 변환합니다.

  3. lp2lp 함수를 사용하여 연속시간 상태공간 저역통과 필터 프로토타입을 지정된 차단 주파수를 갖는 저역통과 필터로 변환합니다.

  4. 필요한 경우, 상태공간 필터를 다시 전달 함수나 영점-극점-이득 형식으로 변환합니다.

참고 문헌

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

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | |