이번 문서의 목표: 이 문서를 다 읽으면 발진회로가 성립하는 조건과 발진 주파수를 계산하고, LPF·BPF·HPF·BRF를 구분하며, 가산기·인코더·디코더·멀티플렉서 같은 조합논리회로와 플립플롭·계수회로 같은 순차논리회로의 동작을 설명할 수 있다.
왜 이 세 가지 회로를 함께 보는가
07편에서는 반송파(carrier)에 정보를 싣는 변조 원리를 다뤘습니다. 그런데 그 반송파 자체는 어디서 만들어질까요? 바로 발진회로(oscillator)입니다. 또한 변조된 신호에서 원하는 주파수 대역만 골라내거나 불필요한 대역을 제거하려면 필터(filter)가 필요합니다. 마지막으로, 통신장비 내부에서 데이터를 처리·교환하는 디지털 회로는 02편에서 익힌 논리게이트를 조합해 만든 논리회로(logic circuit)로 구현됩니다. 이 세 가지는 각각 “신호를 만들고”, “신호를 걸러내고”, “데이터를 처리하는” 통신 회로의 기본 부품입니다.
쉽게 말하면: 발진회로는 반주를 연주하는 악기, 필터는 원하는 음만 골라 듣는 이퀄라이저, 논리회로는 그 소리 신호를 숫자로 계산하는 계산기에 비유할 수 있습니다.
1. 발진회로(Oscillator)
왜 필요한가
증폭기(amplifier)는 입력 신호가 있어야 그 신호를 키워 출력하는 장치입니다. 그런데 통신 시스템에는 애초에 입력 신호 없이도 스스로 일정한 주파수의 신호를 계속 만들어 내는 회로가 필요합니다. 07편의 반송파, 그리고 뒤에서 배울 각종 클록(clock) 신호가 모두 이렇게 만들어집니다.
쉽게 말하면: 발진회로는 누가 노래를 불러 주지 않아도 스스로 같은 박자를 계속 두드리는 메트로놈입니다.
정의와 발진 조건
발진회로(oscillator)는 외부 입력 신호 없이 스스로 일정한 주기의 신호를 만들어 내는 회로입니다. 증폭기의 출력 일부를 다시 입력으로 되돌리는 양성 되먹임(positive feedback, 정궤환)을 이용해 만듭니다. 이 되먹임이 발진으로 이어지려면 다음의 바크하우젠 조건(Barkhausen criterion)을 만족해야 합니다.
- : 증폭기의 이득(gain, 신호를 몇 배로 키우는지)
- : 되먹임 회로가 출력을 입력으로 되돌리는 비율(궤환율, 베타)
- : 한 바퀴(증폭 → 되먹임 → 다시 증폭)를 돌았을 때 신호 크기의 배율. 이 값이 정확히 1이어야 신호가 커지지도 작아지지도 않고 일정하게 유지된다
- : 한 바퀴를 돌았을 때 생기는 위상 변화. 이 값이 0도(또는 360도의 배수)여야 되돌아온 신호가 원래 신호와 같은 위상으로 더해져 서로 강화된다
왜 이 조건이 필요한가: 일반적인 증폭기에 걸리는 되먹임은 출력을 반대 위상으로 되돌리는 부성 되먹임(negative feedback, 부궤환)으로, 이는 신호를 안정시키는 역할만 하고 발진을 일으키지 않습니다. 발진이 일어나려면 반대로 되돌아온 신호가 원래 신호와 같은 위상으로 합쳐져 서로를 계속 강화해야 하고, 그 강화되는 배율이 정확히 1로 유지되어야 커지지도 사그라들지도 않는 일정한 진동이 유지됩니다. 자주 틀리는 점: 이면 신호가 계속 커지다가 결국 회로의 한계로 찌그러지고, 이면 진동이 점점 잦아들어 발진이 멈춥니다. 발진의 핵심은 “무한히 커지는 것”이 아니라 “정확히 1을 유지하는 것”입니다.
발진회로의 종류
| 종류 | 주파수를 정하는 소자 | 특징 |
|---|---|---|
| LC 발진기(하틀리·콜피츠 등) | 코일(L)과 콘덴서(C) | 비교적 높은 주파수(무선주파수 대역)에 적합, 회로가 간단 |
| RC 발진기(빈 브리지·위상천이 등) | 저항(R)과 콘덴서(C) | 비교적 낮은 주파수(가청주파수 대역)에 적합 |
| 수정 발진기(crystal oscillator) | 수정(크리스털) 진동자 | 온도·시간에 따른 주파수 변화(안정도)가 매우 우수해 정밀한 기준 신호(클록)에 사용 |
LC 발진기의 발진 주파수 계산 — 손으로 끝까지
왜 필요한가: LC 발진기는 코일과 콘덴서가 에너지를 주고받으며 진동하는 성질을 이용합니다. 이 진동의 주파수는 다음 공식으로 구합니다.
- : 발진 주파수(단위 Hz)
- : 코일의 인덕턴스(inductance, 단위 헨리, H)
- : 콘덴서의 커패시턴스(capacitance, 단위 패럿, F)
계산 예시. 인덕턴스 , 커패시턴스 인 LC 발진회로의 발진 주파수를 구해 보겠습니다.
1단계 — 단위 정리
2단계 — LC 곱 계산
3단계 — 제곱근 계산
4단계 — 발진 주파수 계산
해석: 인덕턴스나 커패시턴스 값이 작을수록 발진 주파수는 높아집니다(가 에 반비례하므로). 01편에서 익힌 “분모가 작아지면 전체 값은 커진다”는 반비례 감각이 여기서도 그대로 쓰입니다.
2. 필터(Filter): LPF·BPF·HPF·BRF
왜 필요한가
발진회로로 반송파를 만들고 변조까지 마쳐도, 실제 전송매체 위에는 원하는 신호 외에 다른 주파수의 잡음이나 다른 채널의 신호가 함께 섞여 있을 수 있습니다. 원하는 주파수 대역만 통과시키고 나머지는 걸러내는 회로가 필터입니다.
쉽게 말하면: 필터는 여러 음이 뒤섞인 소리에서 원하는 음역대만 남기고 나머지는 줄여주는 오디오 이퀄라이저와 같습니다.
네 가지 필터의 구분
| 필터 | 정식 명칭 | 통과시키는 대역 |
|---|---|---|
| LPF | 저역통과필터(Low Pass Filter) | 차단주파수보다 낮은 주파수만 통과 |
| HPF | 고역통과필터(High Pass Filter) | 차단주파수보다 높은 주파수만 통과 |
| BPF | 대역통과필터(Band Pass Filter) | 두 차단주파수 사이의 좁은 대역만 통과 |
| BRF | 대역저지필터(Band Reject Filter, 노치 필터) | 특정 좁은 대역만 막고 나머지는 모두 통과 |
차단주파수(cutoff frequency, )는 필터가 신호를 통과시키는 대역과 막는 대역을 가르는 경계 주파수입니다. 가장 간단한 RC 저역통과필터의 차단주파수는 다음과 같이 구합니다.
- : 차단주파수(단위 Hz)
- : 저항값(단위 옴, )
- : 콘덴서의 커패시턴스(단위 패럿, F)
계산 예시. 저항 , 콘덴서 인 RC 저역통과필터의 차단주파수를 구해 보겠습니다.
1단계 — 단위 정리
2단계 — RC 곱 계산
3단계 — 차단주파수 계산
해석: 이 필터는 약 159.2Hz보다 낮은 주파수 성분은 그대로 통과시키고, 그보다 높은 주파수 성분은 점점 더 크게 약화시킵니다. 06편에서 언급한 “표본화 전에 신호의 최대 주파수를 제한하는 저역통과필터(에일리어싱 방지용)“가 바로 이런 회로입니다.
필터의 쓰임새
- LPF: 표본화 직전 신호의 최고 주파수를 제한해 에일리어싱을 막는 용도(06편 참고), 변조된 신호에서 반송파 성분을 제거하고 원래 신호만 복원하는 복조 회로에도 사용됩니다.
- BPF: 여러 채널이 섞인 대역에서 원하는 채널 하나만 골라내는 튜너(수신기의 채널 선택) 회로에 사용됩니다.
- BRF(노치 필터): 특정 간섭 주파수(예: 상용 전원의 60Hz 험 잡음) 하나만 콕 집어 제거할 때 사용됩니다.
자주 틀리는 점
BPF와 BRF를 반대로 기억하는 경우가 많습니다. BPF는 정해진 좁은 대역만 “통과”시키고 그 밖의 모든 주파수는 막는 반면, BRF는 정해진 좁은 대역만 “저지”하고 그 밖의 모든 주파수는 통과시켜 정확히 반대로 동작합니다. “밴드 안쪽만 살리느냐, 밴드 안쪽만 죽이느냐”로 구분하면 헷갈리지 않습니다.
3. 조합논리회로(Combinational Logic Circuit)
왜 필요한가
02편에서 익힌 AND·OR·NOT 같은 개별 게이트는 그 자체로는 아주 단순한 연산 하나만 수행합니다. 실제 통신장비(교환기, 라우터 내부 회로 등)는 이 게이트 여러 개를 조합해 덧셈, 신호 선택, 부호 변환 같은 더 복잡한 기능을 수행하는 회로 블록으로 구성됩니다. 이렇게 현재 입력값에만 따라 출력이 정해지는(과거의 기억이 필요 없는) 회로를 조합논리회로라 합니다.
쉽게 말하면: 조합논리회로는 지금 넣은 재료만 보고 바로 결과를 내놓는 자판기와 같습니다. 방금 전에 무엇을 넣었는지는 기억하지 않습니다.
가산기(Adder)
반가산기(half adder)는 두 개의 1비트 입력을 더해 합(Sum)과 자리올림(Carry)을 출력하는 회로입니다.
| A | B | Sum(합) | Carry(자리올림) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
이 진리표를 02편의 연산자로 표현하면 Sum은 A XOR B, Carry는 A AND B와 정확히 일치합니다. 전가산기(full adder)는 여기에 아래 자리에서 올라온 자리올림 입력까지 함께 받아 세 개의 1비트를 더할 수 있도록 반가산기를 확장한 회로입니다. 여러 자리의 전가산기를 사슬처럼 연결하면 여러 자리 2진수 덧셈을 수행하는 회로가 만들어집니다.
인코더와 디코더
인코더(encoder, 부호기)는 여러 개의 입력선 중 하나가 활성화되면 그 위치를 나타내는 더 적은 수의 2진 부호로 압축해 출력하는 회로입니다. 디코더(decoder, 복호기)는 인코더와 정반대로, 몇 개의 2진 부호 입력을 받아 그에 해당하는 하나의 출력선만 활성화하는 회로입니다.
- : 인코더의 입력선 개수(또는 디코더의 출력선 개수)
- : 인코더의 출력 부호 비트 수(또는 디코더의 입력 부호 비트 수)
계산 예시. 8개의 입력선 중 하나가 눌렸는지를 나타내는 인코더가 필요하다면, 출력 부호는 몇 비트가 필요한가.
해석: 입력선 8개 중 어느 것이 활성화되었는지는 3비트(000~111)만으로 모두 구분할 수 있습니다. 자릿수(입력 개수)가 두 배로 늘어날 때마다 필요한 부호 비트는 1비트씩만 늘어난다는 점에서, 02편에서 배운 2진수의 효율성이 여기서도 드러납니다.
멀티플렉서(MUX)와 디멀티플렉서(DEMUX)
멀티플렉서(MUX, Multiplexer)는 여러 입력선 중 선택선(select line)이 지정하는 단 하나의 입력만 골라 출력으로 내보내는 회로입니다. 디멀티플렉서(DEMUX)는 정반대로, 하나의 입력을 선택선이 지정하는 여러 출력선 중 하나로 보내는 회로입니다.
- : 멀티플렉서가 고를 수 있는 전체 입력선의 개수
- : 선택선의 개수
계산 예시. 선택선이 3개인 멀티플렉서는 몇 개의 입력 중 하나를 고를 수 있는가.
해석: 선택선 3개로 표현할 수 있는 조합이 8가지이므로, 이 멀티플렉서는 8개의 입력 중 하나를 골라 출력할 수 있습니다. 이 멀티플렉서 구조는 11편의 시분할다중화(TDM)에서 여러 회선의 신호를 순서대로 골라 하나의 회선에 실어 보내는 원리와 그대로 이어집니다.
자주 틀리는 점
인코더와 디코더의 입출력 방향을 반대로 기억하는 경우가 흔합니다. 인코더는 “여러 개를 압축해 적게”(많은 입력선 → 적은 출력 비트), 디코더는 “적은 것을 풀어 여러 개로”(적은 입력 비트 → 많은 출력선) 만든다는 방향으로 구분하면 헷갈리지 않습니다.
4. 순차논리회로(Sequential Logic Circuit): 플립플롭·계수회로
왜 필요한가
조합논리회로는 현재 입력만으로 출력이 정해져 “기억”이라는 개념이 없습니다. 그런데 실제 통신장비는 이전에 무슨 일이 있었는지(예: 지금까지 몇 비트를 셌는지, 이전 상태가 0이었는지 1이었는지)를 저장해 두어야 하는 경우가 많습니다. 이렇게 과거의 상태(기억)와 현재 입력을 함께 반영해 출력을 정하는 회로가 순차논리회로입니다.
쉽게 말하면: 순차논리회로는 지금까지 누른 버튼의 횟수를 기억하고 있다가, 그 기억과 지금 누른 버튼을 함께 고려해 다음 숫자를 보여주는 계수기와 같습니다.
플립플롭(Flip-Flop)
플립플롭(flip-flop, FF)은 1비트를 저장할 수 있는 가장 기본적인 기억 소자로, 클록(clock) 신호에 맞춰 저장된 값을 갱신합니다.
| 종류 | 특징 |
|---|---|
| SR 플립플롭 | Set(S) 입력으로 1을, Reset(R) 입력으로 0을 저장. S와 R이 동시에 1이 되는 조합은 사용 금지(출력이 정의되지 않음) |
| D 플립플롭 | 입력(D)값을 클록 신호가 들어오는 순간 그대로 저장. 구조가 단순해 가장 널리 쓰임 |
| JK 플립플롭 | SR의 금지 조합 문제를 해결한 방식으로, J와 K가 동시에 1이면 이전 값을 반전(toggle)시킴 |
| T 플립플롭 | 입력이 1일 때마다 이전 값을 반전시키는 방식으로, 계수회로에 주로 사용 |
계수회로(Counter)
왜 필요한가: 플립플롭 하나는 1비트(0 또는 1)만 기억합니다. 여러 개의 플립플롭을 사슬처럼 연결해 클록 신호가 들어올 때마다 저장된 값을 정해진 규칙(주로 2진수 증가)에 따라 갱신하면, 클록이 들어온 횟수를 세는 회로를 만들 수 있습니다. 이것이 계수회로(counter)입니다.
- : 계수회로가 표현할 수 있는 전체 상태(계수할 수 있는 값)의 개수
- : 계수회로를 구성하는 플립플롭의 개수
계산 예시. 플립플롭 4개로 만든 2진 계수회로는 0부터 몇까지 셀 수 있는가.
1단계 — 전체 상태 개수 계산
2단계 — 셀 수 있는 범위
해석: 4비트 계수회로는 0000부터 1111까지, 즉 10진수로 0부터 15까지 총 16가지 값을 표현하며 클록이 들어올 때마다 1씩 증가시켜 셉니다. 16번째 클록이 들어오면 다시 0000으로 돌아가 순환합니다. 자주 틀리는 점: “플립플롭 개는 까지 셀 수 있다”고 착각하기 쉽지만, 정확히는 가지 상태(0부터 까지)를 셀 수 있습니다. 02편에서 익힌 계산 감각이 여기서도 그대로 적용됩니다.
조합논리회로와 순차논리회로의 구분
| 구분 | 조합논리회로 | 순차논리회로 |
|---|---|---|
| 출력을 결정하는 요소 | 현재 입력값만 | 현재 입력값 + 이전 상태(기억) |
| 기억 소자(플립플롭) 필요 여부 | 불필요 | 필요 |
| 클록 신호 필요 여부 | 대체로 불필요 | 필요(상태 갱신 시점을 맞추기 위해) |
| 대표 예시 | 가산기, 인코더, 디코더, 멀티플렉서 | 플립플롭, 계수회로, 레지스터 |
자주 틀리는 점
가산기나 멀티플렉서 같은 조합논리회로도 통신장비 안에서 “여러 클록에 걸쳐 계속 동작”하는 것처럼 보이기 때문에 순차논리회로로 착각하기 쉽습니다. 구분 기준은 회로 안에 값을 저장하는 기억 소자(플립플롭)가 있는가입니다. 기억 소자가 없어 같은 입력에는 언제나 같은 출력이 나오면 조합논리회로, 기억 소자가 있어 같은 입력이라도 이전 상태에 따라 출력이 달라질 수 있으면 순차논리회로입니다.
핵심 정리
- 발진회로는 바크하우젠 조건(, 위상차 0도)을 만족하는 양성 되먹임으로 스스로 신호를 만들며, LC 발진기의 주파수는 로 계산한다.
- 필터는 LPF(저역통과)·HPF(고역통과)·BPF(대역통과)·BRF(대역저지)로 나뉘며, RC 저역통과필터의 차단주파수는 로 계산한다. BPF와 BRF는 통과·저지 대상이 정반대다.
- 조합논리회로는 현재 입력만으로 출력이 정해지며, 가산기(반가산기의 Sum=XOR, Carry=AND)·인코더·디코더·멀티플렉서가 대표적이다.
- 순차논리회로는 플립플롭 같은 기억 소자를 이용해 과거 상태까지 반영하며, 플립플롭 개로 만든 계수회로는 가지 상태를 셀 수 있다.
- 조합논리회로와 순차논리회로를 가르는 결정적 기준은 회로 안에 기억 소자(플립플롭)가 있는지 여부다.