Main Content

freqs

아날로그 필터의 주파수 응답

설명

예제

h = freqs(b,a,w)는 각주파수 w에서 계산된 계수 벡터 ba에 의해 지정되는 아날로그 필터의 복소 주파수 응답을 반환합니다.

예제

[h,wout] = freqs(b,a,n)n개의 주파수 지점을 사용하여 h를 계산하고 해당하는 각주파수를 wout로 반환합니다.

예제

freqs(___)에 출력 인수를 지정하지 않으면 현재 Figure 창에 크기 응답과 위상 응답을 각주파수의 함수로 플로팅합니다. 이 구문은 위에 열거된 입력 구문과 함께 사용할 수 있습니다.

예제

모두 축소

전달 함수의 주파수 응답을 구하고 그래프로 나타냅니다.

H(s)=0.2s2+0.3s+1s2+0.4s+1.

a = [1 0.4 1];
b = [0.2 0.3 1];
w = logspace(-1,1);

h = freqs(b,a,w);
mag = abs(h);
phase = angle(h);
phasedeg = phase*180/pi;

subplot(2,1,1)
loglog(w,mag)
grid on
xlabel('Frequency (rad/s)')
ylabel('Magnitude')

subplot(2,1,2)
semilogx(w,phasedeg)
grid on
xlabel('Frequency (rad/s)')
ylabel('Phase (degrees)')

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

출력 인수 없이 freqs를 호출하여 플롯을 생성할 수도 있습니다.

figure
freqs(b,a,w)

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.

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 설계 함수에 대한 주파수 입력값은 통과대역의 끝값이 아니라 저지대역의 시작값을 설정합니다. 베셀 필터는 통과대역에서 거의 일정한 군지연을 가집니다.

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

[b,a] = besself(5,10000);   % Bessel analog filter design
freqs(b,a)                  % Plot frequency response

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.

입력 인수

모두 축소

전달 함수 계수로, 벡터로 지정됩니다.

예: [b,a] = butter(5,50,'s')는 50 rad/second의 차단 주파수를 갖는 5차 버터워스 필터를 지정합니다.

데이터형: single | double

각주파수로, rad/second를 단위로 하는 양의 실수형 벡터로 지정됩니다.

예: 2*pi*logspace(6,9)는 1 MHz(2π × 106 rad/second)부터 1GHz(2π × 109 rad/second) 범위 내에 50개의 로그 간격 각주파수를 지정합니다.

데이터형: single | double

계산 지점 개수로, 양의 정수 스칼라로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

주파수 응답으로, 벡터로 반환됩니다.

h가 계산되는 각주파수로, 벡터로 반환됩니다.

알고리즘

freqsba에 의해 지정되는 아날로그 필터의 복소 주파수 응답을 반환합니다. 이 함수는 주파수 지점 s = jω에서의 허수축을 따라 라플라스 변환 다항식의 비율을 계산합니다.

H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sm+a(2)sm1++a(m+1)

s = 1j*w;
h = polyval(b,s)./polyval(a,s);

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | |