function [b0,B,A]=dr2cs(b,a)                    % 직접형을 종속형으로 변환

M=length(b); N=length(a);                       % 다항식의 길이
if N>M                                          % 분모 차수>분자 차수 여부 판별
   b=[b,zeros(1,N-M)];                          % 분모 분자 다항식 길이를 같게 함
elseif M>N                                      % 분자 차수>분모 차수 여부 판별 
   a=[a,zeros(1,M-N)];                          % 분모 분자 다항식 길이를 같게 함
end
K=floor(max(M,N)/2);                            % 바이쿼드의 개수
if max(M,N)==2*K                                % 차수가 짝수인지 판별
    b=[b 0]; a=[a 0];                           % 2차 인수들의 곱이 되게 길이 조정
end
b0=b(1); b=b/b0;                                % monic 다항식으로 만듬
a0=a(1); a=a/a0;                                % monic 다항식으로 만듬 
b0=b0/a0;                                       % 이득 계산
B=zeros(K,3); A=zeros(K,3);                     % 변환 결과 초기화 
broots=cplxpair(roots(b));                      % 영점을 공액쌍으로 정렬 
aroots=cplxpair(roots(a));                      % 극을 공액쌍으로 정렬 
for k=1:K
   B(k,:)=real(poly(broots(2*k-1:2*k,:)));      % 종속형으로 변환된 분자 2차 다항식  
   A(k,:)=real(poly(aroots(2*k-1:2*k,:)));      % 종속형으로 변환된 분모 2차 다항식
end
