주요 콘텐츠

zp2sos

영점-극점-이득 필터 파라미터를 2차섹션형(SOS) 형식으로 변환

설명

[sos,g] = zp2sos(z,p,k)z, p, k에 지정된 n개의 영점, m개의 극점, 스칼라 이득을 가진 전달 함수 H(z)에 상응하는 2차섹션형(SOS) 행렬 sosg를 구합니다.

H(z)=k(zz1)(zz2)(zzn)(zp1)(zp2)(zpm).

예제

[sos,g] = zp2sos(z,p,k,order)sos의 행 순서를 지정합니다.

[sos,g] = zp2sos(z,p,k,order,scale)은 모든 2차섹션형의 이득과 분자 계수에 대한 스케일링을 지정합니다.

[sos,g] = zp2sos(z,p,k,order,scale,zeroflag)는 서로 부호가 반대인 실수 영점의 처리를 지정합니다.

sos = zp2sos(___)는 전체 시스템 이득을 첫 번째 섹션에 포함합니다.

예제

모두 축소

함수 butter를 사용하여 5차 버터워스 저역통과 필터를 설계하고 출력을 영점-극점-이득 형식으로 표현합니다. 차단 주파수를 나이퀴스트 주파수의 1/5로 지정합니다. 결과를 2차섹션형(SOS)으로 변환합니다. 주파수 응답을 시각화합니다.

[z,p,k] = butter(5,0.2);
sos = zp2sos(z,p,k)
sos = 3×6

    0.0013    0.0013         0    1.0000   -0.5095         0
    1.0000    2.0000    1.0000    1.0000   -1.0966    0.3554
    1.0000    2.0000    1.0000    1.0000   -1.3693    0.6926

freqz(sos)

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Normalized Frequency (\times\pi rad/sample), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title Magnitude, xlabel Normalized Frequency (\times\pi rad/sample), ylabel Magnitude (dB) contains an object of type line.

입력 인수

모두 축소

시스템의 영점으로, 벡터로 지정됩니다. 영점은 실수이거나 켤레 복소수 쌍이어야 합니다.

예: [1 (1+1j)/2 (1-1j)/2]'

데이터형: double
복소수 지원 여부:

시스템의 극점으로, 벡터로 지정됩니다. 극점은 실수이거나 켤레 복소수 쌍이어야 합니다.

예: [1 (1+1j)/2 (1-1j)/2]'

데이터형: double
복소수 지원 여부:

시스템의 스칼라 이득으로, 스칼라로 지정됩니다.

데이터형: double

행 순서로, 다음 중 하나로 지정됩니다.

  • 'up'sos의 첫 번째 행이 단위원에서 가장 멀리 있는 극점을 포함하도록 섹션의 순서를 지정합니다.

  • 'down'sos의 첫 번째 행이 단위원에 가장 가까이 있는 극점을 포함하도록 섹션의 순서를 지정합니다.

데이터형: char

이득 및 분자 계수의 스케일링으로, 다음 중 하나로 지정됩니다.

  • 'none' — 스케일링을 적용하지 않습니다.

  • 'inf' — 무한대 노름 스케일링을 적용합니다.

  • 'two' — 2-노름 스케일링을 적용합니다.

무한대 노름 스케일링을 'up' 정렬과 함께 사용하면 구현에 오버플로가 발생할 가능성이 최소화됩니다. 2-노름 스케일링을 'down' 정렬과 함께 사용하면 피크 반올림 잡음이 최소화됩니다.

참고

무한대 노름 스케일링과 2-노름 스케일링은 Direct-Form II 구현에만 적합합니다.

데이터형: char

서로 부호가 반대인 실수 영점의 정렬 여부로, 논리형 스칼라로 지정됩니다.

  • zeroflagfalse로 지정하면 함수는 극점과의 근접도에 따라 해당 영점을 정렬합니다.

  • zeroflagtrue로 지정하면 함수는 해당 영점을 함께 유지합니다. 이 옵션을 사용하면 중간 계수가 0인 분자를 생성합니다.

데이터형: logical

출력 인수

모두 축소

2차섹션형(SOS) 표현으로, 행렬로 반환됩니다. sosL×6 행렬입니다.

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

행에는 H(z)에 대한 2차섹션형의 분자 계수와 분모 계수인 bikaik가 포함되어 있습니다.

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

전달 함수에 n개의 영점과 m개의 극점이 있는 경우 Lmax(n/2,m/2)보다 크거나 같은 가장 가까운 정수입니다.

전체 시스템 이득으로, 실수형 스칼라로 반환됩니다.

1개의 출력 인수와 함께 zp2sos를 호출하면 함수는 전체 시스템 이득을 첫 번째 섹션 H1(z)에 포함합니다. 따라서 그 형태는 다음과 같습니다.

H(z)=k=1LHk(z).

참고

Direct-Form II 구조를 스케일링할 때 이득을 첫 번째 섹션에 포함시키는 것은 권장되지 않으며 그럴 경우 스케일링 결과가 올바르지 않을 수 있습니다. 이득이 포함되지 않도록 하려면 두 개의 출력값과 함께 zp2sos를 사용하십시오.

알고리즘

zp2sos는 입력된 영점-극점-이득 시스템을 2차섹션형(SOS)으로 표현하기 위해 다음과 같은 4단계 알고리즘을 사용합니다.

  1. cplxpair 함수를 사용하여 영점과 극점을 켤레 복소수 쌍으로 그룹화합니다.

  2. 다음 규칙에 따라 극점과 영점 쌍을 매칭하여 2차섹션형(SOS)을 형성합니다.

    1. 단위원에 가장 가까이에 있는 극점과 그러한 극점에 가장 가까이에 있는 영점을 매칭합니다.

    2. 단위원에 그 다음으로 가장 가까이에 있는 극점과 그러한 극점에 가장 가까이에 있는 영점을 매칭합니다.

    3. 모든 극점과 영점이 매칭될 때까지 계속합니다.

    zp2sos는 절댓값이 서로 가장 근접한 실수 극점을 섹션으로 그룹화합니다. 이 규칙은 실수 영점에도 그대로 적용됩니다.

  3. 극점 쌍과 단위원의 근접도에 따라 섹션을 정렬합니다. 일반적으로 zp2sos는 단위원에 가장 가까이에 있는 극점을 종속 연결에서 마지막에 오도록 섹션을 정렬합니다. zp2sos가 그 반대의 순서로 섹션을 정렬하도록 하려면 order 인수를 사용합니다.

  4. zp2sosscale에 지정된 노름으로 섹션을 스케일링합니다. 임의의 H(ω)에 대해 스케일링은 다음과 같이 정의됩니다.

    Hp=[12π02π|H(ω)|pdω]1/p

    여기서 p는 무한대 또는 2일 수 있습니다. 이 스케일링은 고정소수점 필터 구현에서 오버플로 또는 피크 반올림 잡음을 최소화하기 위한 시도입니다.

참고 문헌

[1] Jackson, L. B. Digital Filters and Signal Processing. 3rd ed. Boston: Kluwer Academic Publishers, 1996.

[2] Mitra, Sanjit Kumar. Digital Signal Processing: A Computer-Based Approach. 3rd ed. New York: McGraw-Hill Higher Education, 2006.

[3] Vaidyanathan, P. P. "Robust Digital Filter Structures." Handbook for Digital Signal Processing (S. K. Mitra and J. F. Kaiser, eds.). New York: John Wiley & Sons, 1993.

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | | |