Upsampling은 sampling rate을 높이는 것입니다. upsampling의 과정은 다음의 block diagram으로 나타낼 수 있습니다. (1) sampling rate을 L배로 높이고, (2) cutoff frequency가 $\pi/L$ 인 lowpass filter에 통과시켜줍니다.

두 가지 과정을 자세하게 정리해보도록 합시다.

 

1. Sampling rate expander

먼저 첫번째 ↑L 블럭을 sampling rate expander라고 합니다. 이 과정에서 우리는 L배로 sampling rate을 높이고자 할때 sample 사이에 L-1개의 0을 넣어 sampling의 수를 늘려줍니다.

 

 

2. Lowpass filter

그 다음 lowpass filter에 통과시켜주어야 합니다. 그렇지 않으면 time-aliasing이 발생할 수 있습니다. 그 이유를 아래 그림을 통해 알아보도록 하겠습니다.

아래는 upsampling 과정을 frequency domain에서 보여주는 그림입니다.

 

(a)는 아날로그 신호 x(t)의 CTFT 결과입니다. 이때 nyquist freqeuncy인 $\Omega_N$ 의 두 배로 sampling rate을 sampling 해주어 시퀀스 x[n]으로 나타내줍니다. 이 x[n]의 DTFT 결과는 (b)로 나타나게 됩니다.

이때 frequency 축이 $-\pi$ ~ $\pi$ 에 '$-\Omega_N$' ~ '$\Omega_N$'  값을 대입하여 normalize를 해준 것을 볼 수 있습니다.

(이에 대한 자세한 내용은 따로 포스팅을 하도록 하겠습니다.)

 

우리는 (1) 과정에서 time 축(사실상 sequence라 time은 아니지만)을 L배로 늘려서 scale을 시켜주었습니다. 그런데 frequency는 주기와 역수 관계이기 때문에 반대로 1/L 배로 줄어들게 됩니다. 만약 L = 2로 설정해주면 (b) 를 (c)와 같이 가로축을 scaling을 시켜준 것으로 나타낼 수 있습니다.

즉, (c)는 (1) Sampling rate expander 과정 직후의 결과입니다.

 

Upsampling 과정

그런데 우리는 DTFT를 해줄 때, $-\pi$ ~ $\pi$ 에 sampling rate 값을 대입하여 줍니다. (c)를 다시보면 ' $\Omega_N$' ~ 2 '$\Omega_N$' 구간에  원래 존재하지 않던 고주파 성분들이 생긴 것을 볼 수 있습니다. 이것이 왜 문제가 되는지 간단한 예시를 통해 설명해드리겠습니다.

 

본래의 신호가 아래의 frequency가 2Hz인 빨간색의 신호가 있다고 생각해보겠습니다. 이 신호를 DTFT한 결과는 오른쪽과 같이 나타납니다. (samling rate = 8Hz라 가정)

$x(t) = sin(4 \pi t)$

 

이 신호의 sampling rate을 두 배로 늘려 16Hz로 upsamling을 하면, sampling rate expander 과정 이후 다음과 같이 변하게 됩니다. (위의 그림으로는 (c))

원래는 없던 초록색의 주파수 성분이 새로 생겨난 것을 볼 수 있습니다. 신호에 6Hz 성분이 생겨버렸습니다.

$x(t) = sin(6 \pi t)$

이것을 time domain에서 보면 아래와 같이 본래 신호와 달라진 것을 볼 수 있습니다. (c)

빨강 : 본래 신호 // 초록 : expanding 과정을 통해 달라져버린 신호

그렇기 때문에 우리는 아래와 같이 본래의 신호의 frequency 구간만 남기도록 cutoff frequency가 $\pi / L$ 인 lowpass filter (d)에 통과시켜주어야 우리가 원하는 upsamling과정이 끝나게 됩니다. (e)

 

 

'신호처리' 카테고리의 다른 글

윈도우에서 AWS 설치 및 데이터셋 다운로드  (1) 2024.12.13
[DSP] CTFT와 DTFT의 관계  (0) 2024.01.04
[Emphasis] Pre-emphasis 와 De-emphasis  (0) 2023.11.10
Noise Pattern  (0) 2023.11.10

+ Recent posts