가운데의 DC 오프셋
신호를 보내지 않았는데도 스펙트럼 한가운데, 곧 LO 자리에 봉우리가 서는 이유는 무엇일까?
zero-IF 수신기에서 LO 자리는 0 Hz, 곧 직류(DC)이다. 믹서와 기저대역 증폭기 안의 소자가 조금씩 어긋나 있으면 각 갈래 출력에 일정한 값이 더해진다. 이것이 DC 오프셋이다. LO 신호의 일부가 안테나 쪽으로 새어 들어가 믹서에서 LO 자신과 곱해져도 일정한 값이 된다. 이것을 LO 누설(LO leakage)이라고 한다. 일정한 값은 스펙트럼의 0 Hz에 선다. AD9363은 이 오프셋을 따라가며 빼는 보정을 칩 안에 갖고 있다. 보정 뒤에 얼마나 남는지는 장치와 설정에 따라 다르므로 실습에서 본다. I 갈래와 Q 갈래의 이득이나 위상이 서로 어긋나는 것은 다른 문제이다. 이것은 0 Hz가 아니라 에 거울상을 만들고, 실습 2에서 다룬다.
더 곤란한 것은 LO 바로 위에 놓인 신호이다. 인 톤은 로, 한 기록 안에서 일정한 복소수이다. DC 오프셋도 일정한 복소수이므로 둘은 0 Hz 칸 하나에 복소수로 더해지고, 그 기록만으로는 어디까지가 톤이고 어디까지가 오프셋인지 나눌 수 없다. 오프셋을 없애려고 기록의 평균을 빼면 톤도 함께 사라진다.
표본을 더해 평균을 내면 톤과 오프셋 가운데 무엇이 남을까? ▶로 한 표본씩 넘기며 먼저 오프셋 벡터 끝에 붙은 톤을 보고, 그다음 지금까지의 평균을 본다. 마지막 단계에서 스펙트럼을 보고, 전체 기록의 평균을 빼기 전후를 비교한다.
합성 기록이다(fₛ = 2 MS/s, N = 2000개, 칸 간격 1 kHz, 톤 진폭 0.1, 오프셋 c = 0.03 + j0.04, 작은 잡음). 복소평면의 화살표는 톤과 오프셋의 합이고, 표본 점에는 잡음도 더해져 있다. 초록 궤적은 원기록의 누적 평균이다. dB는 진폭 1을 0 dB로 둔 값이다. 표본을 ADC 최대값으로 나눠 그린 장치 그래프의 dBFS와 같은 방식이다. Δ는 1 kHz 단위로 움직여 톤이 한 칸에만 서게 했다. '더 조작하기'의 φ는 캡처마다 달라지는 톤의 위상이다.
해 보기
- 톤을 LO 위(Δ = 0)에 둔다.
관찰
봉우리가 0 Hz에 하나뿐이다. 표본의 평균에 톤이 남아, 0 Hz 칸의 값은 둘의 합(−17.3 dB)이다.
- 평균 빼기를 켠다.
관찰
0 Hz 칸이 비고 톤도 함께 사라진다. 스펙트럼에는 잡음만 남는다.
- 톤을 +10 kHz로 옮기고 평균을 뺀다.
관찰
오프셋만 사라지고 +10 kHz의 톤(−20 dB)은 그대로이다. 평균은 0 Hz 칸에만 들어 있기 때문이다.
그래서 실습에서는 신호를 LO에서 떨어뜨려 둔다. TX LO와 RX LO를 같게 두고 기저대역에서 +100 kHz의 복소 톤을 보내면, 받은 스펙트럼에서 톤은 0 Hz에서 100 kHz 떨어진 칸에, 누설은 0 Hz에 따로 선다(+100 kHz 쪽인지는 실습 1에서 확인한다). 폭이 있는 신호를 받을 때도 LO를 신호 대역 밖으로 비껴 두고 받은 뒤, Python에서 를 곱해 신호를 0 Hz로 옮긴다. 이 방법을 offset tuning이라고 한다.
강의 노트