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

impinvar

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

구문

[bz,az] = impinvar(b,a,fs)
[bz,az] = impinvar(b,a,fs,tol)

설명

[bz,az] = impinvar(b,a,fs)는 분자 계수와 분모 계수가 각각 bzaz인 디지털 필터를 생성합니다. 이 디지털 필터의 임펄스 응답은 계수 ba를 갖는 아날로그 필터의 임펄스 응답과 같고 1/fs로 스케일링됩니다. 인수 fs를 빼거나 fs를 빈 벡터 []로 지정하면 디폴트 값 1Hz가 사용됩니다.

[bz,az] = impinvar(b,a,fs,tol)tol로 지정된 허용오차를 사용하여 극점이 반복되는지 확인합니다. 허용오차가 클수록 impinvar이 인접해 있는 극점을 중복 극점(반복 극점)으로 해석할 가능성이 커집니다. 디폴트 값은 극점 크기의 0.001 즉, 0.1%입니다. 여전히 극점 값의 정확도는 roots 함수로 얻을 수 있는 정확도에 좌우됩니다.

예제

모두 축소

임펄스 불변을 사용하여 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)

임펄스 불변을 사용하여 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)

전달 함수의 유수 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

알고리즘

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

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

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

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

참고 문헌

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

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

참고 항목

| | | |

R2006a 이전에 개발됨