Main Content

impinvar

아날로그에서 디지털로의 필터 변환에 사용하는 임펄스 불변 방법

설명

예제

[bz,az] = impinvar(b,a,fs)는 분자 계수와 분모 계수가 각각 bzaz인 디지털 필터를 생성합니다. 이 디지털 필터의 임펄스 응답은 계수 ba를 갖고 1/fs로 스케일링된 아날로그 필터의 임펄스 응답과 같습니다. 여기서 fs는 샘플 레이트입니다.

[bz,az] = impinvar(b,a,fs,tol)tol로 지정된 허용오차를 사용하여 극점이 반복되는지 확인합니다.

예제

모두 축소

임펄스 불변을 사용하여 6차 아날로그 버터워스 저역통과 필터를 디지털 필터로 변환합니다. 샘플 레이트를 10Hz, 차단 주파수를 2Hz로 지정합니다. 필터의 주파수 응답을 표시합니다.

f = 2;
fs = 10;

[b,a] = butter(6,2*pi*f,'s');
[bz,az] = impinvar(b,a,fs);

freqz(bz,az,1024,fs)

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 Magnitude, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

임펄스 불변을 사용하여 3차 아날로그 타원 필터를 디지털 필터로 변환합니다. 샘플 레이트를 fs=10Hz로, 통과대역 경계 주파수를 2.5Hz로, 통과대역 리플을 1dB로, 저지대역 감쇠량을 60dB로 지정합니다. 디지털 필터의 임펄스 응답을 표시합니다.

fs = 10;

[b,a] = ellip(3,1,60,2*pi*2.5,'s');
[bz,az] = impinvar(b,a,fs);

impz(bz,az,[],fs)

Figure contains an axes object. The axes object with title Impulse Response, xlabel nT (seconds), ylabel Amplitude contains an object of type stem.

전달 함수의 유수 rk와 극점 pk를 구하고 다음을 사용하여 명시적으로 라플라스 변환을 역변환함으로써 아날로그 필터의 임펄스 응답을 구합니다.

H(s)=krks-pkh(t)=krkepkt.

아날로그 필터의 임펄스 응답을 겹쳐 표시합니다. 임펄스 불변으로 인해 디지털 필터에 1/fs의 이득이 발생합니다. 유의미한 비교가 이루어지도록 이 이득과 아날로그 임펄스 응답을 곱합니다.

[r,p] = residue(b,a);
t = linspace(0,4,1000);
h = real(r.'*exp(p.*t)/fs);

hold on
plot(t,h)
hold off

Figure contains an axes object. The axes object with title Impulse Response, xlabel nT (seconds), ylabel Amplitude contains 2 objects of type stem, line.

입력 인수

모두 축소

아날로그 필터 전달 함수 계수로, 벡터로 지정됩니다.

예: [b,a] = butter(6,2*pi*10,'s')는 10Hz의 차단 주파수를 갖는 6차 버터워스 필터를 지정합니다.

데이터형: single | double

샘플 레이트로, 양의 스칼라로 지정됩니다.

데이터형: single | double

허용오차로, 양의 스칼라로 지정됩니다. 허용오차는 극점이 반복되는지 확인합니다. 허용오차가 클수록 impinvar이 인접해 있는 극점을 중복 극점(반복 극점)으로 해석할 가능성이 커집니다. 디폴트 허용오차는 극점 크기의 0.1%에 해당합니다. 여전히 극점 값의 정확도는 roots 함수로 얻을 수 있는 정확도에 좌우됩니다.

데이터형: single | double

출력 인수

모두 축소

디지털 필터 전달 함수 계수로, 벡터로 반환됩니다.

알고리즘

impinvar은 참고 문헌 [2]에 설명된, 아날로그에서 디지털로의 전달 함수 변환을 위한 임펄스 불변 방법을 수행합니다.

  1. 시스템에서 ba로 표현되는 부분 분수 전개를 구합니다.

  2. 극점 p를 극점 exp(p/fs)로 대체합니다.

  3. 1단계의 부분 분수 전개에서 얻어진 유수와 2단계의 극점으로 시스템의 전달 함수 계수를 구합니다.

참고 문헌

[1] Antoniou, Andreas. Digital Filters. New York: McGraw-Hill, Inc., 1993.

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

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | |