이산화된 디지털 신호로 몇 Hz까지의 아날로그 신호를 표현할 수 있을까?
※참고자료 : wirelesspi - 1d sampling and aliasing
임의의 아날로그 A신호를 fs(=1/Ts)로 샘플링하고, N개의 샘플을 모아서 이산화된 디지털 신호를 만들었다.
(= N*Ts 시간동안 신호를 모은 것이다. )
이산화된 디지털 신호는
임의의 A신호를 몇 Hz 까지 표현할 수 있을까?
또는 이산화 된 디지털 신호가 표현할 수 있는 아날로그 신호의 주파수 범위는 어느정도 일까?
N개의 데이터를 모으면
이산화된 디지털 신호는 N개의 N가지 complex sinusoids로
임의의 아날로그 A신호를 표현할 수 있다.
N개의 Complex sinusoids에 각각 번호를 부여하고, 그 번호를 k라고 한다면
k의 범위는 -N/2+1 ~ N/2이다.
즉 -fs*k/N ~ fs*k/N (또는 -fs/2 ~fs/2) 주파수를 가진 complex sinusoids로 임의의 아날로그 신호를 표현할 수 있다.
예를 들어
B 조건 상황에서 아날로그 신호를 이산화 했다.
B조건 : 100Hz 샘플링 주파수(fs)로 임의의 아날로그A 신호를 샘플링하고 데이터를 50개(N) 수집하였다.
-49Hz ~50Hz사이의 50개의 complex sinusoids(= 2Hz 간격으로 나누어진, 100Hz를 50개로 나누었으므로 )로 아날로그 신호를 표현가능하다.
B조건에서 수집한 이산화 데이터로 0~ 50Hz까지의 아날로그 신호를 표현가능하다.
C조건 상황에서 아날로그 신호를 이산화 했다.
C조건 : 100Hz 샘플링 주파수(fs)로 임의의 아날로그A 신호를 샘플링하고 데이터를 100개(N) 수집하였다.
-49Hz ~50Hz사이의 100개의 complex sinusoids(= 1Hz 간격으로 나누어진, 100Hz를 100개로 나누었으므로 )로 아날로그 신호를 표현가능하다.
B조건, C조건 모두 이산화한 디지털 신호로 0~ 50Hz까지의 아날로그 실제 신호를 표현가능하다.
다만 C조건이 B조건보다 촘촘하게 아날로그 신호를 표현할 수있다.
Alisaing은 무엇인가?
이산화된 디지털 신호는 -fs/2 ~ fs/2 사이의 complex sinusoids로만 아날로그 신호를 표현할 수 있다.
임의 아날로그 신호B가 포함하고 있는 주파수가 fs/2보다 크고, 이 B신호를 샘플링하여 이산화된 디지털 신호를 만들면 어떻게 될까?
이 때 aliasing이 발생하며 이산화된 디지털 신호가 표현가능한 주파수 범위는 -fs/2 ~ fs/2 이므로 B 신호가 가진 주파수를 제대로 표현하지 못한다.
Samping과 Aliasing에 대해서 gnuradio로 시뮬레이션을 해보았다.
wirelesspi의 sampling and aliasing 예제를 참고하였고 시뮬레이션하였다.
신호원은 complex 사인파 신호이다.
샘플링 rate가 8KHz이면 이 조건에서 생성된 이산화 디지털 신호가 제대로 표현가능한 주파수 범위는 -4KHz~4KHz이다. 그림 1의 1KHz 복소수 사인파 신호를 8KHz로 샘플링한 것이다. 이 경우에는 aliasing이 발생하지 않았다. 1KHz의 복소수 사인파가 주파수 영역에서 제대로 표현되었다.
그림 2는 7KHz 신호를 8KHz 로 샘플링한 것이다. 그림 2에서는 Aliasing이 발생한다. 시간영역 그림을 보면 1ms의 주기와 같은 것을 볼 수 있으며 (실제로는 7KHz 신호인데 ! 말이다.), 주파수 영역의 결과를 보더라도 -1KHz 주파수를 가진 복소수 신호로 표현이 된다. 7KHz의 이산화 된 디지털 신호를 얻기 위해서는 8KHz의 샘플링 rate가 부족하다는 이야기이다.
이산화 된 디지털 신호를 주파수 domain에서 보면 -fs/2 ~ fs/2 의 범위에 있는 신호들이 fs간격으로 주기적으로 반복된다. 다음과 같이 말이다.
1KHz 신호를 8KHz로 샘플링한 이산화 디지털신호의 주파수 domain 을 보면 -7KHz[=1KHz -fs(8KHz)] 위치에 1KHz 신호의 성분이 위치한 것을 볼 수 있다. 1KHz 신호는 -7KHz 뿐만 아니라 8KHz[=1KHz+fs(8KHz)]에도 위치한다.
7KHz 신호를 8KHz로 샘플링한 이산화 디지털신호의 주파수 domain 을 보면 -1KHz[=7KHz -fs(8KHz)] 위치에 7KHz 신호의 성분이 위치한 것을 볼 수 있다. 7KHz 신호는 -1KHz 뿐만 아니라 15KHz[=7KHz+fs(8KHz)], 23KHz[=7KHz+2*fs(16KHz)], .... 이렇게 위치하고 있다.
사용자는 스펙트럼 장비를 볼 때 -fs/2 ~ fs/2 의 범위만 보게 되므로 마치 -1KHz를 가진 복소수 신호마나 본다.
※ 7KHz 신호가 ..., -1KHz, -9KHz, -17KHz ... 로 fs간격에 위치하는 것은 Aliasing 때문이 아니라, 아날로그 신호를 샘플링하면서 나타나는 주기성 때문이다. 샘플링하여 얻은 이산화 디지털 신호의 주파수 domain을 보면 -fs/2 ~ fs/2 사이의 신호들이 fs 간격으로 주기성을 가진다. Aliasing은 임의의 신호를 샘플링할 때 나이퀴스트 샘플링 조건을 만족하지 못하여 샘플링 rate가 부족하여 생기는 현상이다. 인과 관계를 잘 생각해보자.
'Gnuradio' 카테고리의 다른 글
Convolution 수식을 보는 2가지 관점 (0) | 2023.04.03 |
---|---|
gnuradio - time shift effect (0) | 2023.03.07 |
gnuradio 시뮬레이션 - fft example 4, fft 결과의 주파수 분해능은 얼마가 될까? (0) | 2023.03.01 |
gnuradio 시뮬레이션 - fft example 3 (신호의 시작 위상이 다르면 DFT 결과는?) (0) | 2023.03.01 |
gnuradio 시뮬레이션 - fft example 2 (0) | 2023.02.26 |