Main Content

residuez

Z 변환 부분 분수 전개

설명

예제

[ro,po,ko] = residuez(bi,ai)는 분자 및 분모 다항식 ba의 비에서 부분 분수 전개의 유수, 극점, 직접 항을 구합니다.

[bo,ao] = residuez(ri,pi,ki) 는 3개의 입력 인수와 2개의 출력 인수를 갖는 구문으로, 부분 분수 전개를 다항식으로 다시 변환합니다. 행 벡터 ba가 다항식의 계수입니다.

예제

모두 축소

전달 함수로 표현된 3차 IIR 저역통과 필터에 대한 부분 분수 전개를 계산합니다.

H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2).

다항식 컨벌루션으로 분자와 분모를 표현합니다.

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];

b = b0*conv(b1,b2);
a = conv(a1,a2);

부분 분수 전개에 대한 유수, 극점, 직접 항을 계산합니다.

[r,p,k] = residuez(b,a)
r = 3×1 complex

  -0.1153 - 0.0182i
  -0.1153 + 0.0182i
   0.3905 + 0.0000i

p = 3×1 complex

   0.7230 + 0.5224i
   0.7230 - 0.5224i
   0.6830 + 0.0000i

k = -0.1037

전달 함수의 극점과 영점을 플로팅하고, 방금 찾은 극점을 중첩합니다.

zplane(b,a)
hold on
plot(p,'^r')
hold off

Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 4 objects of type line. One or more of the lines displays its values using only markers

residuez를 다시 사용하여 전달 함수를 복원합니다.

[bn,an] = residuez(r,p,k)
bn = 1×4

    0.0563   -0.0009   -0.0009    0.0563

an = 1×4

    1.0000   -2.1291    1.7834   -0.5435

입력 인수

모두 축소

다항식 계수로, 벡터로 지정됩니다. 벡터 ba는 이산시간 시스템 b(z)/a(z)의 다항식 계수를 z의 내림차순으로 지정합니다.

B(z)=b0+b1z1+b2z2++bmzmA(z)=a0+a1z1+a2z2++anzn

복수의 근이 있고 a > n-1인 경우

B(z)A(z)=r(1)1p(1)z1++r(n)1p(n)z1+k(1)+k(2)z1++k(mn+1)z(mn)

부분 분수의 유수로, 벡터로 지정됩니다.

부분 분수의 극점으로, 벡터로 지정됩니다.

직접 항으로, 행 벡터로 지정됩니다.

출력 인수

모두 축소

부분 분수의 유수로, 벡터로 반환됩니다.

부분 분수의 극점으로, 벡터로 반환됩니다. 극점 개수는 다음과 같습니다.

n = length(a)-1 = length(r) = length(p)

p(j) = ... = p(j+s-1)이 중복도 s의 극점인 경우 전개에 다음 형식의 항이 포함됩니다.

r(j)1p(j)z1+r(j+1)(1p(j)z1)2++r(j+sr1)(1p(j)z1)s

직접 항으로, 행 벡터로 반환됩니다. length(b)length(a)보다 작으면 직접 항 계수 벡터 k는 비어 있습니다. 그렇지 않은 경우에는 다음과 같습니다.

length(k) = length(b) - length(a) + 1

다항식 계수로, 벡터로 반환됩니다.

알고리즘

residuez는 두 다항식의 비로 표현된 이산시간 시스템을 부분 분수 전개 즉, 유수(residue) 형식으로 변환합니다. 또한 부분 분수 전개를 원래 다항식 계수로 다시 변환합니다.

참고

수치적으로, 다항식 비의 부분 분수 전개를 구하면 불량 조건 문제가 나타납니다. 분모 다항식이 중근을 갖는 다항식에 가까운 경우, 데이터의 작은 변화(예: 반올림 오차)가 결과 극점 및 유수에 가늠할 수 없는 큰 변화를 일으킬 수 있습니다. 대신에 상태공간 표현 또는 극점-영점 표현을 사용해야 합니다.

residuez는 표준 MATLAB® 함수와 부분 분수 기법을 적용하여 ba에서 r, p, k를 구합니다. 다음도 구할 수 있습니다.

  • length(b) > length(a)-1인 경우 deconv(다항식의 장제법(Long Division))를 사용하여 직접 항 a를 구합니다.

  • p = roots(a)를 사용하여 극점을 구합니다.

  • 중복도에 따라 극점을 재정렬하여, 반복되는 극점을 구합니다.

  • b(z)/a(z)와 1/(1 - pjz−1)을 곱하고 그 결과로 발생한 유리 함수를 z = pj에서 실행하여, 반복되지 않는 각 극점 pj의 유수를 구합니다.

  • 반복되는 극점의 유수를 구합니다. 그 방법은 다음 식에서

    S2*r2 = h - S1*r1
    

    \를 사용하여 r2에 대한 해를 구하는 것입니다. h는 감소된 b(z)/a(z)의 임펄스 응답이고, S1은 반복되지 않는 근으로 구성된 1계 시스템의 임펄스 응답이고, r1은 반복되지 않는 근의 유수를 포함한 열입니다. 행렬 S2의 각 열은 임펄스 응답입니다. 중복도 sj의 각 근이 pj인 경우 S2에는 다음 각 시스템의 임펄스 응답을 나타내는 sj개의 열이 포함됩니다.

    11pjz1,1(1pjz1)2,,1(1pjz1)sj

    벡터 h와 행렬 S1S2n + xtra개의 행을 갖습니다. 여기서 n은 근의 총 개수이고, 기본적으로 1로 설정되는 내부 파라미터 xtra는 연립방정식의 과결정 정도를 확인합니다.

참고

표준 MATLAB 언어로 된 residue 함수는 residuez와 매우 유사합니다. 이 함수는 residuez처럼 z 영역에서 이산시간 시스템의 부분 분수 전개를 계산하지 않고, 라플라스 영역에서 연속시간 시스템의 부분 분수 전개를 계산합니다(참고 문헌 [1] 참조).

참고 문헌

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | | | | | | |