전파/디지털 통신 [Upsampling]

위린이·2025년 8월 21일

**"전파 관련 Upsampling"**은 주로 디지털 통신 시스템, SDR(Software Defined Radio), 신호 처리에서 다루는 개념이며, 신호의 샘플레이트(Sampling Rate)를 인위적으로 증가시키는 과정을 의미합니다.


✅ 전파/디지털 통신에서의 Upsampling이란?

📌 정의:

디지털 신호의 샘플 속도를 더 높은 레이트로 증가시키는 과정

  • 예:
    원래 1kHz로 샘플링된 신호 → 4kHz로 Upsample (4배)
    즉, 1초에 1,000개였던 샘플 수가 4,000개로 늘어남.

✅ 왜 필요한가?

이유설명
DAC에 적합한 속도로 맞추기아날로그 변환(DAC) 장치의 샘플 속도와 맞추기 위해
주파수 변환(Frequency Mixing)더 높은 주파수로 변조하기 전 필요
중간 주파수(IF) 처리송수신 장비에서 필터링/믹싱의 해상도 향상
신호 품질 개선보간을 통해 신호 왜곡 감소

✅ Upsampling 과정

📌 1단계: Zero Insertion (Upfiring)

  • 샘플 사이에 0을 끼워 넣음
  • 예를 들어 4배 Upsample이면, 한 샘플 사이에 3개의 0 추가
원래 신호:     x1      x2      x3
업샘플 후:     x1   0   0   0   x2   0   0   0   x3 ...

📌 2단계: Low-pass Filtering (Interpolation)

  • 0이 삽입된 신호는 고주파 성분을 포함하므로,
  • **저역 통과 필터(LPF)**로 원래 신호를 자연스럽게 보간
  • 이는 aliasing(혼선)과 이미지 주파수를 제거함

✅ 수식적 표현

Let’s say x[n]x[n] is the original discrete signal, and upsampling factor is LL:

  1. Zero-inserted signal:
xup[n]={x[n/L],if nmodL=00,otherwisex_{\text{up}}[n] = \begin{cases} x[n/L], & \text{if } n \mod L = 0 \\ 0, & \text{otherwise} \end{cases}
  1. Filtering 후:
y[n]=k=0Mh[k]xup[nk]y[n] = \sum_{k=0}^{M} h[k] \cdot x_{\text{up}}[n-k]
  • 여기서 h[k]h[k]low-pass filter 계수입니다.

✅ 실제 시스템에서의 사용 예

▶️ 1. 디지털 변조 (QPSK, OFDM 등)

  • 송신 쪽에서 baseband 신호 → upsample → DAC → RF 송출
  • 예: 1Msps 신호 → 4Msps upsample → 20MHz RF로 변조

▶️ 2. SDR (Software Defined Radio)

  • GNU Radio, MATLAB, Python + RF 하드웨어 (USRP 등)에서 필수
  • Rational Resampler, Interp Filter 블록 등을 사용

▶️ 3. FIR 필터를 통한 업샘플링

  • Polyphase 구조를 사용하여 연산량을 줄인 FIR 보간기를 설계할 수 있습니다.

✅ MATLAB 예제

x = [1 2 3 4];
L = 4;

% Zero-insertion
x_up = upsample(x, L);  

% Low-pass filtering
h = fir1(31, 1/L);      % LPF 설계
y = conv(x_up, h);      % 보간 완료

✅ Python (SciPy) 예제

import numpy as np
from scipy.signal import upfirdn, firwin
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
L = 4

# 저역통과 FIR 필터 생성
h = firwin(32, cutoff=1/L)

# Upsample + filter (upfirdn = upsample -> filter -> downsample)
y = upfirdn(h, x, up=L)

plt.stem(y)
plt.title("Upsampled signal (L=4)")
plt.show()

✅ 요약

단계설명
1. Zero Insertion샘플 사이에 0 삽입 (샘플레이트 증가)
2. FilteringLPF를 통해 보간 및 노이즈 제거
3. 사용 목적주파수 변조, DAC 연동, 필터링 해상도 향상 등

🔽 추가로 배워볼 수 있는 주제

  • Downsampling / Decimation
  • Polyphase 구조의 FIR 필터
  • GNU Radio에서 Upsampling 블록 사용법
  • OFDM 시스템에서의 샘플링 전략
  • MATLAB의 interp, resample 함수 차이점

0개의 댓글