REMI Lab강의 노트

Wireless Embedded Systems E04

4장 변조와 복조

실수 믹서 하나로는 모자란 이유와 I/Q

지금까지는 받은 반송파와 수신기의 LO가 위상까지 같다고 보았다. 두 기기의 발진기는 따로 돌므로 실제로는 위상이 θ\theta만큼 다르다. 받은 신호가 x(t)cos⁡(2πfct+θ)x(t)\cos(2\pi f_ct+\theta)이면 같은 계산에서

LPF{x(t)cos⁡(2πfct+θ)⋅2cos⁡(2πfct)}=x(t)cos⁡θ\mathrm{LPF}\bigl\{x(t)\cos(2\pi f_ct+\theta)\cdot2\cos(2\pi f_ct)\bigr\}=x(t)\cos\theta

가 남는다. 위상 차이가 신호의 크기를 cos⁡θ\cos\theta배로 줄이고, θ=90∘\theta=90^\circ이면 신호가 통째로 사라진다. 위상은 경로의 길이와 시간에 따라 계속 바뀌므로, 갈래 하나로 받는 수신기는 언제 신호를 잃을지 모른다.

문제가 하나 더 있다. LO보다 Δ\Delta만큼 높은 톤 cos⁡(2π(fc+Δ)t)\cos(2\pi(f_c+\Delta)t)와 Δ\Delta만큼 낮은 톤 cos⁡(2π(fc−Δ)t)\cos(2\pi(f_c-\Delta)t)를 같은 방법으로 내리면 둘 다 cos⁡(2πΔt)\cos(2\pi\Delta t)가 된다. 실수 신호 하나는 +Δ+\Delta와 −Δ-\Delta를 구별하지 못하기 때문이다(2장 '실수 표본과 복소 표본'). LO 위와 아래에 서로 다른 신호가 있으면 하향 변환한 뒤 같은 자리에 포개진다.

I와 Q: 두 갈래로 내리기

두 문제는 갈래를 하나 더 두어 함께 푼다. 받은 신호를 둘로 나눠 한쪽에는 2cos⁡(2πfct)2\cos(2\pi f_ct)를, 다른 쪽에는 그보다 90° 앞선 −2sin⁡(2πfct)-2\sin(2\pi f_ct)를 곱하고 각각 LPF로 거른다. 위 갈래의 출력을 I(in-phase, 동상), 아래 갈래의 출력을 Q(quadrature, 직교)라고 한다. 두 LO가 90° 어긋나 있어서 이 구조를 직교 하향 변환이라고 부른다.

아래 그림은 두 갈래 수신기의 마디마다 스펙트럼을 그린 것이다. 받은 톤은 LO보다 Δ\Delta 높은 r(t)=cos⁡(2π(fc+Δ)t)r(t)=\cos(2\pi(f_c+\Delta)t) 하나이다. 먼저 두 믹서 뒤에서 선이 ±Δ\pm\Delta와 ±(2fc+Δ)\pm(2f_c+\Delta)에 서는 것을 보고, 그다음 LPF 뒤의 I와 Q, 마지막에 둘을 묶은 z(t)z(t)에서 +Δ+\Delta에만 선이 남는 것을 본다. Q 갈래의 선은 허수이고, −Δ-\Delta에서 I의 0.5와 jQjQ의 −0.5-0.5가 지워진다.

합성 톤이고 fc = 3Δ로 낮춰 그렸다. 작은 스펙트럼의 선 위 숫자는 복소 계수, 선 아래는 주파수이며, 가로 간격은 실제 비율이 아니다. LPF는 이상적이고 |f| ≤ 1.2Δ만 통과시킨다.

두 갈래를 복소수 하나 z(t)=I(t)+jQ(t)z(t)=I(t)+jQ(t)로 묶으면, 곱한 것은 2cos⁡(2πfct)−j2sin⁡(2πfct)=2e−j2πfct2\cos(2\pi f_ct)-j2\sin(2\pi f_ct)=2e^{-j2\pi f_ct} 하나이다.

z(t)=LPF{r(t)⋅2e−j2πfct}z(t)=\mathrm{LPF}\bigl\{r(t)\cdot2e^{-j2\pi f_ct}\bigr\}

cos⁡\cos는 스펙트럼을 양쪽으로 반씩 옮겼지만 e−j2πfcte^{-j2\pi f_ct}는 한쪽으로만 −fc-f_c 옮긴다. 그래서 +fc+f_c 둘레의 복제만 0 Hz로 오고, −fc-f_c 둘레의 복제는 −2fc-2f_c로 가서 LPF에 걸러진다. 앞의 두 문제가 이렇게 풀린다.

  • 위상: x(t)cos⁡(2πfct+θ)x(t)\cos(2\pi f_ct+\theta)를 넣으면 z(t)=x(t)ejθz(t)=x(t)e^{j\theta}이다. 위상 차이는 크기를 줄이지 않고 복소수를 θ\theta만큼 돌리기만 한다. ∣z(t)∣=∣x(t)∣|z(t)|=|x(t)|는 θ\theta와 무관하다.
  • 위아래: fc+Δf_c+\Delta의 톤은 e+j2πΔte^{+j2\pi\Delta t}, fc−Δf_c-\Delta의 톤은 e−j2πΔte^{-j2\pi\Delta t}가 된다. 도는 방향이 반대인 두 회전이라 서로 다른 신호이고, 스펙트럼에서 +Δ+\Delta와 −Δ-\Delta에 따로 선다.

이렇게 얻은 z(t)z(t)가 복소 기저대역(complex baseband) 신호이다. '성상도' 절의 복소 포락선 z=I+jQz=I+jQ를 시간에 따라 이은 것이다. RF에서 fcf_c 둘레에 있던 스펙트럼의 양의 주파수 쪽을 0 Hz 둘레로 그대로 옮겨 놓은 것이다. SDR이 표본마다 I와 Q 두 수를 넘겨주는 까닭이 이것이다. 6장에서 Pluto의 칩이 이 두 갈래를 어떻게 구현하는지 본다.

▶ 한 번이 연산 하나이다. 먼저 θ = 60°에서 받은 톤에 2cos를 곱해 평균을 내 cos θ를 얻고, 다음 −2sin 갈래에서 sin θ를 얻어 둘을 z = I + jQ로 묶는다. θ를 90°로 바꾸면 cos 갈래의 평균은 0이 되지만 |z|는 1로 남는다. ⑤와 ⑥은 '위아래 두 톤'을 한 갈래와 두 갈래로 내려 출력 스펙트럼을 견준다.

합성 신호이다. 위상 비교는 진폭 1인 톤을 반송파 3주기 동안 받아 누적 평균을 낸다. 두 톤 비교에서 두 톤의 진폭은 1, Δ = fc/3이고 θ = 0°로 둔다. LPF는 이상적이고 잡음은 없다.

해 보기

  1. θ = 60°에서 두 갈래를 묶는다.
    관찰

    I = cos 60° = 0.5, Q = sin 60° = 0.866이고 |z| = 1이다.

  2. θ = 90°에서 같은 단계를 본다.
    관찰

    I = 0이 되어 한 갈래 수신기는 신호를 잃지만, Q = 1이라 |z|는 그대로 1이다.

  3. 위아래 두 톤을 한 갈래로 내린다.
    관찰

    두 톤이 모두 +Δ와 −Δ에 0.5씩 서서 어느 톤인지 가릴 수 없다.

  4. 두 갈래로 내린다.
    관찰

    위 톤은 +Δ에만, 아래 톤은 −Δ에만 높이 1로 선다.

송신은 거꾸로

송신기는 이 과정을 거꾸로 밟는다. 복소 기저대역 신호 z(t)=I(t)+jQ(t)z(t)=I(t)+jQ(t)에 ej2πfcte^{j2\pi f_ct}를 곱해 +fc+f_c로 올린 뒤 실수부만 내보낸다.

s(t)=Re{z(t) ej2πfct}=I(t)cos⁡(2πfct)−Q(t)sin⁡(2πfct)s(t)=\mathrm{Re}\bigl\{z(t)\,e^{j2\pi f_ct}\bigr\}=I(t)\cos(2\pi f_ct)-Q(t)\sin(2\pi f_ct)

회로로는 I에 cos⁡\cos를, Q에 −sin⁡-\sin을 곱해 더하는 두 갈래 상향 변환이다. 안테나로 나가는 신호는 실수라서 스펙트럼이 ±fc\pm f_c 양쪽에 켤레로 서지만, 수신기가 e−j2πfcte^{-j2\pi f_ct}로 한쪽만 내리면 z(t)z(t)가 그대로 돌아온다. 이 교재는 실수 RF 신호를 늘 Icos⁡−Qsin⁡I\cos-Q\sin으로 쓴다. 이 식에서 II와 QQ가 반송파의 진폭과 위상을 정하는 방법은 앞의 '성상도'와 '직교 변조' 절에서 보았다.