碩士學位論文
멀티캐리어 DS-CDMA 방식을 이용한 전력선 음성 모뎀의 구현에 관한 연구
A Study on the Implementation of Power Line Voice Modem Using Multicarrier DS-CDMA
國民大學校 大學院 電子工學科
金 敏 杰
2001
碩士學位論文
멀티캐리어 DS-CDMA 방식을 이용한 전력선 음성 모뎀의 구현에 관한 연구
A Study on the Implementation of Power Line Voice Modem Using Multicarrier DS-CDMA
指導敎授 金 基 斗
이 論文을 碩士學位 論文으로 提出함
2001年 12月
國民大學校 大學院 電子工學科
金 敏 杰
2001
金敏杰의
碩士學位 論文을 認准함
2001年 12月
審査委員長 洪 成 洙 ㊞ 審 査 委 員 金 基 斗 ㊞ 審 査 委 員 朴 永 鎰 ㊞
國民大學校 大學院
감사의 글
본 논문이 완성되기까지 많은 조언과 격려를 아끼지 않고 늦은 밤까지도 지 도해 주신 김기두 교수님께 진심으로 감사드립니다. 그리고 많은 충고와 세심한 배려를 아끼지 않으시고 논문을 심사해 주신 홍성수 교수님과 김대정 교수님께 도 깊이 감사드립니다. 대학시절부터 많은 가르침을 주신 임재봉 교수님, 조홍 구 교수님, 사공석진 교수님, 오하령 교수님, 안현식 교수님, 김동명 교수님, 강 동욱 교수님, 성영락 교수님, 김대정 교수님께도 감사드립니다.
지난 2년 동안 신호처리실험실에서 동고동락하며 함께 생활했던 선배님들과 동기들, 그리고 후배들에게도 감사드립니다. 어려운 문제에 부딪쳤을 때 함께 고민해 주었던 정헌형, 시경형, 정원형, 수남형께 감사합니다. 많은 밤을 같이 새워가며 함께 고생한 상준, 윤수, 종성, 세호, 궂은일 마다하지 않고 자신의 일 처럼 도와주던 기준, 신호처리 실험실을 불철주야 함께 지켜온 소윤, 건석, 남 훈, 그리고 진만, 준행, 승문, 윤성, 성준, 모두에게 감사드립니다. 또한, 과제 수 행 동안 동고동락한 전력전자실험실의 일수형, 석철씨에게도 감사드립니다. 그 리고 윤기방 교수님, 이윤희 교수님께도 감사드립니다.
끝으로 항상 사랑과 격려를 주시며 든든한 후원자가 되어주신 부모님과 나의 사랑하는 동생, 그리고 10년동안 우정을 나눈 만회, 희정, 태건, 지윤, 해영에게 이 논문을 바칩니다.
차례
국문 요약 ···1
Ⅰ. 서론 ···2
1.1 연구 배경 ···2
1.2 PLC(Power Line Communication) ···2
1.3 멀티캐리어 CDMA ···5
1.3.1 주파수 영역에서 확산코드를 사용하는 멀티캐리어 CDMA 방식 ···5
1.3.2 시산 영역에서 확산코드를 사용하는 멀티캐리어 DS-CDMA 방식 ····7
Ⅱ. 멀티캐리어 DS-CDMA 방식을 이용한 전력선 모뎀 ···10
2.1 멀티캐리어 DS-CDMA 전력선 모뎀 사양 ···10
2.2 송·수신 모델 ···12
2.2.1 송신기 모델 ···12
2.2.2 수신기 모델 ···13
Ⅲ. 멀티캐리어 DS-CDMA 전력선 음성 모뎀의 구현 ···16
3.1 멀티캐리어 DS-CDMA 전력선 음성 모뎀의 구조 ···16
3.2 송신기 구조 ···17
3.2.1 NCO(Numerical Controlled Oscillator) ···17
3.2.2 BPSK 변조기 ···19
3.3 수신기 구조 ···20
3.3.1 Searcher & PN 코드 초기 동기 ···21
3.3.2 캐리어 복원(carrier recovery) ···25
3.3.3 PN 코드 동기 추적(tracking) ···28
3.3.4 적분기 블록 ···32
3.3.5 SC(Selection Combiner) 블록 ···33
3.4 MCU 블록 ···35
3.5 ADPCM 인터페이스 ···36
3.6 서브 모듈 통합 ···39
Ⅳ. 실험 및 고찰 ···41
4.1 제작된 멀티캐리어 DS-CDMA 전력선 모뎀 ···41
4.2 실험 및 고찰 ···42
Ⅴ. 결론 ···46
참고문헌 ···47
Abstract ···49
부록 A BER 측정 모듈의 C 코드 ···50
표차례
표 2.1 DS-CDMA 사양 ···10 표 4.1 2.048MHz 대역에서의 결과 ···44 표 4.2 4.096MHz 대역에서의 결과 ···45
그림차례
그림 1.1 PLC 네트워크 구성도 ···4
그림 1.2 주파수 영역에서 확산된 MC CDMA ···6
그림 1.3 주파수 영역에서 확산된 MC CDMA의 전력밀도 스펙트럼 ···6
그림 1.4 시간 영역에서 확산된 MC DS-CDMA(동일 심볼 전송) ···7
그림 1.5 시간 영역에서 확산된 MC DS-CDMA의 전력밀도 스펙트럼 ···8
그림 1.6 시간 영역에서 확산된 MC DS-CDMA(다른 심볼 전송) ···8
그림 2.1 MC DS-CDMA 전력선 모뎀의 내부 블록도 ···11
그림 2.2 제안된 MC DS-CDMA 전력선 음성 모뎀의 송신기 구조 ···12
그림 2.3 제안된 MC DS-CDMA 전력선 음성 모뎀의 전력밀도 스펙트럼 ···13
그림 2.4 제안된 MC DS-CDMA 전력선 음성 모뎀의 수신기 구조 ···14
그림 3.1 전력선 음성 모뎀의 구조 ···16
그림 3.2 LUT(Look Up Table)에 저장할 반송파 정보 ···17
그림 3.3 NCO의 구조 ···18
그림 3.4 VHDL로 구현된 NCO 블록 ···18
그림 3.5 NCO로 구현된 4.096MHz 반송 주파수 ···19
그림 3.6 VHDL로 구현된 BPSK 변조기 ···20
그림 3.7 8.192MHz로 BPSK 변조된 PN 코드 ···20
그림 3.8 비동기 검파기 ···23
그림 3.9 VHDL로 구현된 searcher 블록 및 초기동기 블록 ···25
그림 3.10 Costas loop 블록도 ···26
그림 3.11 수신된 신호와 캐리어 복원된 NCO 주파수 ···27
그림 3.12 PN 코드 위상이 일치하였을 때의 상관값 ···29
그림 3.13 PN 코드 동기 추적 블록도 ···29
그림 3.14 τ 값에 따른 early, late 상관값 차이 곡선 ···31
그림 3.15 FPGA로 설계된 Early-late gate ···32
그림 3.16 동기 추적 수행후 송·수신 PN 코드 시작 신호의 위치 ···32
그림 3.17 32KHz 적분기 블록 ···33
그림 3.18 SC의 구조 ···34
그림 3.19 MC DS-CDMA 시스템 ···35
그림 3.20 VHDL로 구현된 SC 블록도 ···35
그림 3.21 MCU 블록도 ···36
그림 3.22 ADPCM의 클럭 타이밍도 ···37
그림 3.23 송신부 ADPCM 인터페이스 회로도 ···38
그림 3.24 수신부 ADPCM 인터페이스 회로도 ···38
그림 3.25 MC DS-CDMA 전력선 모뎀에서 구현된 송신 블록 ···39
그림 3.26 MC DS-CDMA 전력선 모뎀에서 구현된 수신 블록 ···39
그림 3.27 MC DS-CDMA 전력선 모뎀에서 구현된 MCU 및 SC 블록 ···40
그림 4.1 제작된 MC DS-CDMA 전력선 음성 모뎀 ···41
그림 4.2 BER 측정기와 모뎀의 인터페이스 ···42
그림 4.3 BER 측정기 ···42
그림 4.4 실험실 환경에서의 실험 모습 ···43
국문 요약
본 논문에서는 일반 통신 채널에 비해서 매우 큰 협대역 간섭(PBI: Partial Band Interference)과 주파수 선택적인(frequency selective) 채널 특성을 갖는 전력선 채널에서의 통신 방식으로 멀티캐리어 DS-CDMA 방식의 시스템을 적 용하여 직접 확산에 의한 이득과 주파수 다이버시티 효과를 동시에 추구하였으 며, FPGA(Field Programmable Gate Array)를 사용하여 시스템을 구현하였다.
FPGA칩은 ALTERA 사의 EPF10K200SRC240-1를 사용하였으며, VHDL(Very high-speed integrated circuit Hardware Description Language)를 이용하여 프 로그래밍 하였다.
본 논문은 FPGA 칩을 사용하여 멀티캐리어 DS-CDMA 방식을 이용한 전력 선 음성 모뎀의 구현에 관하여 기술하였고, 사용한 멀티캐리어 서브밴드의 수는 하드웨어의 제한으로 두 개를 사용하였다. 각각의 서브밴드에 대하여 독립적인 수신기 구조를 가지고 있으며, 주파수 다이버시티 효과를 얻기 위하여 SC(Selection Combiner)를 사용하였다. 각각의 기능별로 블록을 VHDL로 설계 를 하였으며, 전체 블록을 설계하기 위해서는 그래픽 디자인 방법을 이용하여 전력선 음성 모뎀을 구현하였다.
Ⅰ. 서론
1.1 연구배경
최근 유럽의 여러 국가와 국내에서 전력선을 매체로 하는 데이터 통신기술에 대한 연구를 광범위하게 진행하고 있으며, 외국의 몇몇 회사에서는 이미 시범 서비스를 실시하고 있고, 국내에서도 곧 상용화 제품이 출시될 예정이다. 전력 선을 이용한 응용분야로는 인터넷 서비스, 홈 네트워킹, 원격 검침 및 음성 서 비스 등이 있으며, 본 논문에서는 음성 데이터 통신의 응용 분야를 다루었다.
전력선 통신에서 사용하는 시스템 방식으로는 주로 OFDM(Orthogonal Frequency Division Multiplexing), FSK(Frequency Shift Keying), DMT(Discrete Multi Tone), 대역확산 방식들이 있으며, 본 논문에서는 전력선 통신 방식으로 채널의 주파수 특성을 고려하여 멀티캐리어 DS-CDMA 방식을 적용하였다. 대역확산 방식의 시스템은 다중경로 채널에서 채널의 페이딩에 안 정적이며 의도적이거나 비의도적인 간섭에 대한 성능이 우수하다[10, 11]. 또한 멀티캐리어 방식은 채널의 코히어런스 대역폭보다 작은 여러 개의 협대역 주파 수 대역들로 분할하여 사용함으로서 각 서브밴드가 주파수 비선택적인 채널 특 성을 갖도록 하는 방식이다[12]. 이러한 대역확산 방식과 멀티캐리어 방식의 장 점을 가지고 일반 통신 채널보다 큰 협대역 간섭과 주파수 선택적인 채널 특성 을 가지고 있는 전력선 채널에서의 데이터 통신 방식으로 멀티캐리어 DS-CDMA 방식을 적용하게 되었다.
1.2 PLC(Power Line Communication)
전력선 통신은 전력을 공급하는 전력선을 매개체로 음성과 데이터를 수백 KHz∼수십MHz 이상의 고주파 신호에 실어 통신하는 기술을 의미한다. 이 기
술을 응용할 경우 홈 네트워킹, 정보가전, 전력망 관리 등이 가능해 관련 업계 는 전력선 통신으로 신규 서비스와 잠재 시장을 활성화 할 수 있을 것으로 생 각되며, 특히 PLC를 응용한 고속 액세스 기술과 홈 네트워크를 통한 저속 제어 기술은 국내외 통신업체나 전력 업체로부터 차세대 통신 기술로 주목받고 있다.
사실 PLC는 전력선을 매체로 통신하기 때문에 통신용 케이블이나 광섬유를 이용한 데이터 전송에 비해 구현이 어렵다. 특히 높은 부하와 간섭 현상, 잡음, 가변의 임피던스와 신호의 감쇠현상 등의 특수한 환경을 극복하고 제한된 전송 전력을 통해 데이터를 전달해야 하는 어려움이 따른다.
전력선을 통해 발생하는 노이즈는 전동 모터와 같이 비동기적으로 발생하는 노이즈, 60Hz의 정수 배의 주파수에서 발생하는 고조파 노이즈(harmonic noise), 전자기기의 스위치를 연결하거나 끊을 때 발생하는 독립적인 임펄스 노 이즈 등이 존재한다. 이처럼 전력선 통신은 채널의 열악한 환경과 채널 특성을 파악하고 이를 해결하기 위해서는 데이터의 변조과정이 필요하고, 원하는 통신 신호만을 받기 위하여 각종 노이즈 신호는 제거되어야 하며, 전력선과 통신 신 호를 결합하고 분리하는 커플링 기술이 필요하다. 또한, 데이터 통신의 에러율 을 줄이기 위하여 채널 코딩 기술 등도 필요하다.
PLC 기술은 크게 액세스 기술과 홈오토메이션 기술로 나뉜다. 이 가운데 액 세스 기술은 22KV급 이상의 고압 전선을 이용한 고전압 기술, 22KV급의 고압 전선을 이용한 중간전압 기술, 일반 가정용 220V와 110V급의 저전압 기술로 구 분된다. 고압선을 이용한 전송 기술은 현재 ETRI에서 개발을 추진하고 있으며, 중전압과 저전압 기술 개발은 국내 PLC 업체들을 통해 이미 진행중이다. 특히 이 가운데 저전압 수준의 액세스 기술 분야가 최근 많은 관심을 끌고 있다. 또 한, 데이터 전송 속도에 따라서는 저속 60bps∼10Kbps, 중속 10Kbps∼1Mbps, 고속 1Mbps∼10Mbps로 구분되며, 이에 따라 중·고속은 데이터 통신용으로, 저속은 제어용으로 통신 목적을 나눌 수 있다.
PLC 네트워크는 현재 모든 가구에 전력선이 보급돼 있어 현존하는 인프라 중 가장 광범위한 네트워크를 구성하고 있다는 평가를 받고 있다. 네트워크 구
성에 필요한 비용이 거의 들지 않는다는 장점은 투자자들과 관련 사업자들의 관심을 끌기에 충분하다. 국내외적으로 전력회사들과 통신업체들, 그리고 네트 워크 관련 업체들이 전력선 사업에 전력하고 있다.
국내에서 PLC 네트워크가 주목받는 또 다른 이유 가운데 하나는, 라스트 마 일(last-mile) 솔루션을 통해 기존 네트워크의 사각 지대에 인터넷 서비스를 제 공할 수 있는 대안을 제시하고 있기 때문이다. 다시 말해 초고속 인터넷 사업을 통해 국내 아파트 단지를 중심으로 ADSL, 케이블, LAN이 보편화됐다고 하지 만 아직까지 이들 네트워크가 미치지 못하는 구간이 존재하며 이 구간을 전력 선 네트워크를 통해 연결할 수 있다는 생각이 라스트 마일 솔루션의 기본이다.
그림 1.1 PLC 네트워크 구성도
PLC를 구성하는 네트워크를 간단히 살펴보면 그림 1.1과 같으며, 현재 국내 개발된 기술의 정도를 나타낸다. 위 그림의 PLC 라우터(router)부분에서 전압을 공급받는 다수의 가구와 각 가정에 여러 대의 PC를 연결하는 네트워크로 구성 됨을 볼 수 있다. 보통 AC 220V 또는 110V 저압 전력선을 사용하는 다수의 가 정은 건물 내부의 변압기에서 옥내의 분전반을 거쳐 콘센트를 통해 전력을 공 급받는다. 즉, 최종 사용자에 장착된 PLC 모뎀이 플러그를 통해 콘센트에 연결
되며, 이는 다시 분전반에 위치한 PLC 게이트웨이에 연결되고 최종적으로 변압 기에 위치한 PLC 라우터를 거쳐 인터넷 백본에 연결됨으로써 인터넷 접속이 가능하다. 이 때 PLC 라우터는 백본 네트워크와 연결, 전력선을 이용해 분전반 에 위치한 PLC 게이트웨이까지 데이터 패킷을 전송해주는 역할을 수행한다. 이 과정에서 PLC 사업자들은 기존 인프라를 그대로 이용하기 때문에 네트워크 구 성비용을 절감할 수 있을 것으로 기대하고 있다. PLC 게이트웨이는 PLC 라우 터로부터 전송된 신호를 중계하며, 다수의 가구와 각 가정의 콘센트로 스위칭한 다. 따라서 콘센트에 코드를 꼽으면 PLC 모뎀을 통해 홈네트워킹이 가능하다.
이로써 거주지역 내 가구들과 연결된 LAN을 구축한 셈이 된다. 지금까지 기술 한 내용이 현재 우리 나라의 전력선 통신의 기술의 정도를 나타낸다.
1.3 멀티캐리어 CDMA 방식
멀티캐리어 CDMA 방식은 크게 두 가지 유형으로 나눌 수 있다. CDMA와 OFDM의 결합으로 주파수 영역에서 확산을 하는 멀티캐리어 CDMA 방식과 협 대역 DS 신호를 병렬 전송하는 방식으로 시간 영역에서 확산을 하는 멀티캐리 어 DS-CDMA이다.
먼저 주파수 영역에서의 확산은 하나의 입력 데이터를 여러 개로 분리하여 주파수 영역에서 다수의 반송파에 의해 확산되어지는 것을 의미하며, 시간 영역 에서의 확산은 다수의 입력 데이터를 각기 주어진 반송파에 의해 전송이 되어 지는데, 시간적으로 수 차례에 걸쳐, 즉 시간적으로 확산되어 전송되는 것을 의 미한다.
1.3.1 주파수 영역에서 확산코드를 사용하는 멀티캐리어 CDMA 방식
주파수 영역에서 확산코드를 사용하는 멀티캐리어 CDMA 방식은 다중경로
페이딩에 강한 DS-CDMA 방식과 주파수 효율이 높아 고속의 정보 비트를 전 송하는데 많이 이용되는 OFDM 방식을 결합한 형태이며, OFDM-CDMA 방식 이라 부르기도 한다.
OFDM-CDMA 시스템은 그림 1.2와 같이 직병렬 변환된 형태의 확산코드를 사용한다. 각각의 확산코드 칩들을 전송하고자 하는 정보 비트와 곱한 후 각 서 브캐리어에 실려 전송되는 구조를 갖는다[13].
그림 1.2 주파수 영역에서 확산된 MC CDMA
그림 1.3 주파수 영역에서 확산된 MC CDMA의 전력밀도 스펙트럼
확산코드의 칩 간격이 정보 비트의 간격과 동일하기 때문에 서브밴드 캐리어 의 수는 확산코드의 칩 수와 동일하다. 각 서브밴드의 주파수 스펙트럼은 직접 확산 변조에 의해 확산된 파형이 아닌 베이스밴드 협대역 신호가 된다. 만약 다
수의 이용자 간섭을 줄이기 위하여 확산코드의 길이를 길게 하면 확산코드 길 이만큼의 서브밴드 캐리어의 수가 필요한 단점이 있다.
1.3.2 시간 영역에서 확산코드를 사용하는 멀티캐리어 CDMA 방식
이 방식은 사용 가능한 주파수 대역을 M 개의 균일한 서브밴드 대역으로 분 리하고, 각 서브밴드에서는 단일캐리어 DS-CDMA 시스템에 비해 협대역으로, 직접확산 방식에 의해 확산된 정보신호를 전송하는 방식이다.
그림 1.4는 시간 영역에서의 확산코드를 사용하는 멀티캐리어 CDMA를 나타 낸다. 단일캐리어 DS-CDMA 방식의 칩 간격에 비해 상대적으로 저속인 확산 코드 c( t)와 정보 비트를 시간영역에서 곱하여 협대역 확산신호를 생성한다.
그림 1.4 시간 영역에서 확산된 MC CDMA(동일 심볼 전송)
확산코드의 칩 간격은 채널의 지연 스프레드보다 길게 구성하기 때문에 주파 수 비선택적인 특성을 갖는다. 시간영역에서 생성된 협대역 확산된 신호는 서로 다를 캐리어를 통하여 전송되어진다. 각 서브밴드에서 전송되어지는 정보 비트 들이 동일하기 때문에 인접한 캐리어의 간격은 적어도 채널의 코히어런스 대역 폭보다 넓게 분리 시켜야 한다. 채널의 코히어런스 대역폭보다 좁게 캐리어를 위치시켰을 경우에 각 서브밴드는 상호 간에 상관이 존재하게 되고 이것은 시
스템 성능 열화의 원인이 된다. 그림 1.5는 시간영역에서 확산코드를 사용하는 멀티캐리어 CDMA 시스템의 주파수 스펙트럼을 나타낸다. 결국 이 시스템은 서브밴드 수만큼의 주파수 다이버시티 효과를 얻을 수 있다.
그림 1.5 시간 영역에서 확산된 MC CDMA의 전력밀도 스펙트럼
그림 1.6의 멀티캐리어 CDMA 시스템은 그림 1.4의 멀티캐리어 CDMA 시스 템을 변형시킨 것이며, 그림 1.4와 마찬가지로 시간영역에서 확산코드를 사용했 다. 그림 1.6의 시스템은 정보 비트를 직병렬 변환을 통하여 각각의 서브밴드에 서로 다른 정보 비트가 전송되며, 이와 같은 구조는 인접한 서브밴드를 중첩시 켜 서브밴드 캐리어의 간격을 최소화 할 수 있기 때문에 주파수 대역효율을 높 일 수 있는 장점이 있는 반면에 그림 1.4의 시스템 같은 주파수 다이버시티 효 과는 얻을 수 없고, 각 서브밴드 캐리어간의 직교성을 유지해야 하는 단점이 있 다[14].
그림 1.6 시간 영역에서 확산된 MC CDMA(다른 심볼 전송)
본 논문을 통해 제안된 전력선 채널에서의 멀티캐리어 DS-CDMA 방식은 시 간영역에서의 확산코드를 사용하는 멀티캐리어 CDMA 방식이다. 즉, 각 서브밴 드를 통하여 동일한 정보 비트를 전송함으로서 주파수 다이버시티 효과를 얻을 수 있고, 또한 채널의 코히어런스 대역폭보다 작은 서브밴드 대역을 사용함으로 다중경로 페이딩 채널에서 주파수 비선택적 특성을 가지는 장점이 있다.
Ⅱ. 멀티캐리어 DS-CDMA 전력선 음성 모뎀
2.1 멀티캐리어 DS-CDMA 전력선 모뎀 사양
멀티캐리어 DS-CDMA 전력선 모뎀의 사양은 표 2.1과 같고, 그림 2.1은 송·수신기 구조와 전력선의 채널 모델에 대한 블록도를 나타낸다.
표 2.1 멀티캐리어 DS-CDMA 전력선 모뎀 사양
Speech coding 32Kbps ADPCM Bandwidth 1MHz(Sub-band)
Modulation BPSK
Data rate 32Kbps
PN-code length L 1024 chips Spreading gain 32 chips/symbol
System clock 32.768MHz Peripheral clock 12.288MHz
Transmission
channel Powerline 220V
Peripheral
MSM7570 - ADPCM Vocoder KT3170 - DTMF Decoder STLC3055 - Phone interface FPGA FLEX10K200SRC240-1
Carrier frequency 2MHz, 4MHz(forward) : 6MHz, 8MHz(reverse) Multiple Access
Method Multicarrier DS-CDMA
그림 2.1은 멀티캐리어 DS-CDMA 전력선 모뎀의 내부 블록을 나타내고 있 다. A/D 변환된 디지털 데이터 12비트는 두 개의 FPGA에 연결이 되어있으며, 각각의 칩에서는 주어진 주파수 대역의 신호만을 가지고 데이터 복조 및 역확 산을 수행한다. MCU의 기능을 수행하는 FPGA에서는 ADPCM, STLC 및 DTMF의 초기 세팅 및 전화기 인터페이스 기능을 수행하고, 두 가지 주파수 경로의 상관값을 계산하여 그 중 채널 환경이 좋은 경로를 선택하여 그 경로의 음성 데이터를 ADPCM 포맷으로 변환한 후 전송한다. TX의 경우, MCU 기능 을 하는 FPGA로부터 TX 전용 FPGA로 음성 데이터를 수신 받은 후에 두 개 의 주파수로 변조 후 합쳐서 D/A 변환을 하여 전송한다.
그림 2.1 MC DS-CDMA 전력선 모뎀의 내부 블록도
2.2 송·수신 모델
2.2.1 송신기 모델
그림 2.2는 멀티캐리어 DS-CDMA 전력선 음성 모뎀의 송신기 구조를 나타 낸다. 서론에서 멀티캐리어 CDMA 방식은 주파수 영역에서 확산 코드를 사용 하는 것과 시간영역에서 확산 코드를 사용하는 것으로 설명되었다. 본 논문에 제안된 멀티캐리어 DS-CDMA 방식은 확산 코드를 시간영역에서 사용하는 것 으로 동일한 데이터를 같은 PN 코드를 사용하여 시간영역에서 대역 확산시킨 후 두 개의 서브밴드로 보내져 전송된다.
그림 2.2 제안된 MC DS-CDMA 전력선 음성 모뎀의 송신기 구조
각 서브밴드에 의해 전송되는 정보신호가 동일한 정보 비트이기 때문에 인접 한 서브밴드 캐리어 사이의 간격은 최소한 채널의 코히어런스 대역폭보다 넓어 야 한다. 만약 각 서브밴드의 주파수 대역이 중첩이 되는 경우에는 서브밴드간 의 상호 상관이 존재하기 때문에 성능열화가 발생한다. 이와 같은 시스템은 보 통 서브밴드의 대역폭을 채널의 코히어런스 대역폭과 같게 구성하며, 서브밴드
수만큼의 주파수 다이버시티 효과를 얻는다. 즉 제안된 멀티캐리어 DS-CDMA 방식은 두 개의 서브밴드를 사용하기 때문에 두 개의 주파수 다이버시티 효과 를 얻는다. 식(2.1)은 멀티캐리어 DS-CDMA 시스템의 최종 출력 송신 신호를 표현한 것이다.
(2.1)
s( t) = d(t)c( t)( cos (2π f
1t) + cos (2π f
2t))
그림 2.3은 본 논문에서 제안된 멀티캐리어 DS-CDMA 시스템의 전력밀도 스펙트럼을 나타낸다. 각 서브밴드의 대역폭은 1.024MHz이고, 서브밴드 캐리어 사이의 간격은 2.048MHz이며, 서브밴드간의 가드 밴드는 1.024MHz이다.
forward 채널의 중심 주파수는 2.048MHz와 4.096MHz이며, reverse 채널의 중 심 주파수는 6.144MHz와 8.192MHz이다.
그림 2.3 제안된 MC DS-CDMA 전력선 음성 모뎀의 전력밀도 스펙트럼
2.2.2 수신기 모델
멀티캐리어 DS-CDMA 전력선 음성 모뎀의 수신기 구조는 그림 2.4와 같이 BPSK 복조기 블록, 대역 역확산기 블록, 두 개의 브랜치를 입력으로 하는 선택 결합기 블록으로 구성된다.
그림 2.4 제안된 MC DS-CDMA 전력선 음성 모뎀의 수신기 구조
수신된 신호 r( t)는 식(2.2)와 같이 표현되며, n( t)는 채널의 잡음을 나타낸 다. 즉, 식(2.2)는 식(2.3)과 같이 표현된다. 여기서 α1과 α2는 각각의 서브밴 드의 채널 감쇠 정도(attenuation factor)를 나타내는 값이다. 수신된 신호 r( t) 는 BPSK 복조와 역확산 과정을 거쳐 선택결합기의 입력으로 들어가며,
r
1( t)과r
2( t)로 표현하였고, 그 값은 각각 식(2.4)와 식(2.5)에 나타내었다.(2.2)
r( t) = s(t) + n( t)
(2.3)
r( t) = d( t)c( t)( α
1cos (2π f1t) + α
2cos (2π f2t)) + n( t)
(2.4)
r
1( t) = LPF [ r( t)⋅ cos (2π f1t)⋅c( t)]
= LPF [ 1
2
d( t)⋅( α
1( 1 + cos (4π f1t))
+ α2( cos (2π( f1- f2)t) + cos (2π( f1+ f2)t)) + n( t)c( t) cos (2π f1
t)]
= LPF [ 1
2 α1
d( t) + n( t)c( t) cos (2π f
1t)]
(2.5)
r
2( t) = LPF [ r( t)⋅ cos (2π f2t)⋅c( t)]
= LPF [ 1
2
d( t)⋅( α
2( 1 + cos (4π f2t))
+ α1( cos (2π( f1- f2)t) + cos (2π( f1+ f2)t)) + n( t)c( t) cos (2π f2
t)]
= LPF [ 1
2 α2
d( t) + n( t)c( t) cos (2π f
2t)]
Ⅲ. 멀티캐리어 DS-CDMA 전력선 음성 모뎀 구현
3.1 멀티캐리어 DS-CDMA 전력선 음성 모뎀의 구조
본 논문에서 구현된 멀티캐리어 DS-CDMA 전력선 음성 모뎀의 구조를 그림 3.1에 나타내었고, 크게 전화기 인터페이스 블록, 디지털 신호처리 블록, 전력선 인터페이스 블록으로 구성된다.
그림 3.1 전력선 음성 모뎀의 구조
디지털 신호처리 블록은 FPGA 칩을 사용하여 구현하였으며, 전화기 인터페 이스 블록을 제어하는 MCU 블록과 데이터 통신을 위한 모뎀 블록으로 구성된 다.
MCU 블록은 ADPCM, STLC와 DTMF의 초기 세팅 및 전화기 인터페이스, 즉 전화 수화기의 상태, 전화번호 버튼 인식의 기능을 수행한다. 구성은 state machine 블록과 sub-module 블록으로 되어있으며, state machine 블록은 STLC, DTMF로부터의 출력 값을 가지고 통화중 상태인지 hook 상태인지 또는 전화번호 인식 등의 상태를 검사한다. ADPCM의 상태를 변화시키기 위한 각각 의 sub-module들을 구성하고 전화기의 상태에 따라 state machine의 출력 제어 신호를 사용하여 ADPCM의 상태를 제어한다.
모뎀 블록은 ADPCM으로부터의 32Kbps 디지털 음성 신호를 대역 확산시키
고 BPSK 변조시켜 전송하고, 수신된 신호를 BPSK 복조한 후 대역 역확산 과 정을 거쳐 32Kbps의 음성 데이터를 복원하다. 데이터를 복원하기 위해서는 PN 코드의 동기 및 캐리어의 복원이 필요하며, 이를 위한 PN 코드 초기동기 획득 블록, PN 코드 동기 추적 블록, 캐리어 복원 블록 등을 수행한다.
3.2 송신기 구조
3.2.1 NCO(Numerical Controlled Oscillator)
BPSK 변·복조 과정을 수행하기 위해 필요한 반송파는 NCO를 사용하였다.
NCO는 디지털적으로 반송파를 구현하기 위한 방법으로 반송파에 대한 정보를 LUT(Look Up Table)에 저장한 후, 출력하고자 하는 반송파의 주파수를 생성한 다. 본 논문에서 구현된 멀티캐리어 DS-CDMA 전력선 음성 모뎀에 사용한 시 스템 클럭은 32.768MHz 사용했기 때문에 NCO 출력 주파수는 최소 32.768KHz 에서 최대 8.192MHz까지 생성할 수 있다. 그림 3.2는 반송파 한 주기를 시간축 으로 N비트, 진폭은 R비트로 나누어 LUT에 저장할 정보를 나타낸다. 본 논문 에서 구현한 NCO는 반송파 한 주기를 시간축 상에서 211개, 진폭은 28개로 나 누었다. 즉, N의 값이 11이고 R의 값은 8이 되며, 사용되는 메모리의 비트 수는
211×8 = 16K 비트가 된다.
그림 3.2 LUT에 저장할 반송파 정보
식(3.1)은 원하는 출력 주파수를 얻기 위해 필요한 LUT의 입력 어드레스 증 분값을 구하는 식이며, 시스템 클럭 주파수 fs의 값이 32.768MHz이고, 출력 주 파수 fout의 값이 4.096MHz이며, N의 값이 11일 경우에 LUT의 입력 어드레스 증분값으로 256이란 값을 구할 수 있다.
(3.1) M = fout × 2N
fs = 4.096M × 211
32.768M = 256
그림 3.3은 NCO의 구조를 설명하며, 그림 3.4는 실제 VHDL 코드로 구현된 NCO를 보여준다. LUT 어드레스 발생기와 LUT가 하나의 쌍이 되며, LUT로의 입력 어드레스 값이 주파수 선택 증분값과 합해져 다시 LUT의 어드레스로 사 용된다. M의 값을 변화시키면서 출력 주파수의 값을 변화시킬 수 있다.
그림 3.3 NCO의 구조
그림 3.4 VHDL로 구현된 NCO 블록
그림 3.5는 NCO를 이용하여 4.096MHz의 반송 주파수를 계측기를 사용하여 측정한 것이다.
그림 3.5 NCO로 구현된 4.096MHz 반송 주파수
3.2.2 BPSK 변조기
BPSK 변조방식은 변조 데이터의 값이 0 또는 1 각각의 경우에 반송파의 위 상을 0°와 180° 또는 90°와 270°등 반송파의 위상차를 180°로 변조시킨다.
그림 3.6은 확산된 데이터를 BPSK 변조시키는 부분을 나타내며, 그 기능은 반 송파와 확산된 데이터를 입력으로 하는 곱셈기로 구현이 가능하다. 각각의 곱셈 기는 멀티캐리어를 구현하기 위해서 두 개의 주파수로 변조 후 합한 다음에 DAC의 입력으로 들어간다.
그림 3.6 VHDL로 구현된 BPSK 변조기
그림 3.7은 각각 FPGA에서 출력되어 DAC를 통해 아날로그 대역 통과 필터 를 거친 후 전력선으로 나가는 신호를 계측기로 측정한 것이다.
그림 3.7 8.192MHz로 BPSK 변조된 PN 코드
3.3 수신기 구조
송신단에서 두 개의 서브밴드를 사용하여 정보 신호를 전송하기 때문에 수신 단에서도 각각의 서브밴드를 통해 수신된 신호를 복조하기 위해서는 송신단에 서와 마찬가지로 독립된 두 개의 수신단 블록을 사용하여야 한다. 각각의 수신 단 블록은 크게 동기 획득 블록과 정보 신호 복원 블록으로 나눌 수 있다. 동기
획득 블록은 searcher를 이용하는 PN 코드 초기동기(acquisition)부분, Costas loop를 이용하여 송신기의 캐리어 신호의 주파수와 동일한 주파수의 캐리어 신 호를 생성하는 캐리어 복원(carrier recovery) 부분, early-late gate를 이용하여 송신기의 PN 코드의 동기를 추적(tracking)하는 부분으로 구성된다.
정보 신호 복원 블록은 복원된 주파수를 사용하여 수신 신호의 캐리어 신호 성분을 제거시키는 복조과정을 수행하고, 동기가 획득된 PN 코드를 사용하여 대역 역확산 과정을 수행하며, 역확산 과정을 거친 정보 신호는 적분기의 입력 으로 사용하여 데이터 심볼 주기동안의 적분기 출력값을 가지고 정보 신호를 복원한다.
3.3.1 Searcher & PN 코드 초기동기
수신되는 신호에는 통화하고자 하는 사용자의 신호뿐만 아니라 다른 여러 사 용자의 신호도 함께 포함되어 있다. 이러한 신호에서 통화를 하고자하는 사용자 의 정보 신호를 복원하기 위해서는 통화 대상자의 PN 코드와 국부 PN 코드의 동기를 유지해야 하고 그 첫 과정이 PN 코드의 초기동기 획득이다.
PN 코드의 초기동기 획득은 수신된 신호 중에 통화하고자 하는 사용자의 PN 코드의 위상과 수신단의 국부 PN 코드의 위상차이를 한 칩 이내로 형성하는 것이고, 이를 위해서는 수신된 PN 코드와 국부 PN 코드의 상관특성을 이용하 게 된다. 즉, 한 칩 이내로 PN 코드 동기가 맞았을 경우의 상관값은 한 칩 이 내로 들어오지 않았을 경우나 혹은 다른 PN 코드를 사용했을 때의 상관값에 비하여 월등히 큰 상관값을 보이는 특성으로 동기 여부 판단이 가능하기 때문 이다. 그러나 수신된 신호는 통화를 하고자하는 사용자의 신호와 다른 사용자의 신호가 합해져 들어오기 때문에 PN 코드 초기 획득 블록에서는 일정한 임계값 을 정해서는 PN 코드의 초기동기를 획득할 수 없다. 그렇기 때문에 searcher 블록에서 현재 수신되는 신호 중에 섞여 있는 통화 대상자의 신호와 국부 PN 코드의 최대 상관값을 구하여 PN 코드의 초기동기 획득 블록에서 이 값을 임
계값으로 정하여 사용해야 정확한 초기동기를 획득할 수가 있게 된다.
Searcher를 통해 얻어진 최대 상관값을 PN 코드 초기동기 획득 블록에서 통 화 대상자의 PN 코드와 국부 PN 코드의 위상차이가 한 칩 이내에 형성이 되었 을 경우의 상관값의 기준값으로 사용한다. 즉, PN 코드 초기동기 획득 블록에 서는 수신되는 신호와 국부 PN 코드와의 상관값을 관찰하며 국부 PN 코드의 위상을 한 칩씩 이동시킨다. 이때, searcher 블록에서 얻은 최대 상관값보다 크 면 수신된 PN 코드의 위상과 국부 PN코드의 위상이 한 칩 이내에 형성되었다 고 판단하여 국부 PN 코드의 위상 이동을 중지하고 곧바로 PN 코드 동기 추적 블록과 캐리어 복원 블록을 구동시키게 된다. PN 코드의 초기동기를 얻기 전에 는 캐리어 복원 블록이 구동하지 않기 때문에 searcher 블록과 PN 코드 초기동 기 획득 블록은 비동기 검파방식으로 설계되어야 한다. 그림 3.8은 비동기 searcher 블록 및 PN 코드 초기동기 획득 블록에서 사용하는 비동기 검파기의 블록도를 나타내며, 식(3.1)은 편의상 단일 사용자만의 수신된 신호를 표현한 것 이다.
(3.1)
r ( t ) =
2Ab( t+ τ1)c( t+ τ1) cos ( 2π fct + θ) + n( t)
여기서, 2A는 수신된 신호의 전력을 나타내고, b( t)와 c( t)는 각각 전송 데 이터와 PN 코드를 의미한다.
f
c는 이용자의 송신 변조 주파수를 나타내고, θ 는 이용자가 사용하는 캐리어의 초기위상과 채널의 위상변화의 합을 나타내는 위상지연 값이다. 그리고, τ1는 이용자의 비동기 전파지연 시간을 나타내고, fe 는 수신기에서의 송신 주파수와의 주파수 차이를 나타낸다.그림 3.8 비동기 검파기
y
p와 yq는 각각 식(3.2)와 식(3.3)과 같이 표현되며, 고주파성분을 제거하는 적분기의 결과로 식(3.4)와 식(3.5)처럼 다시 표현된다.(3.2)
y
p = 2A ⌠⌡T,
0
b( t + τ
1) c ( t + τ1) c ( t )·cos (2π fc
t + θ ) cos (2π( f
c+ fe)t)dt(3.3)
y
q = 2A ⌠⌡T,
0
b( t + τ
1) c ( t + τ1) c ( t )·cos (2π fc
t + θ ) sin (2π( f
c+ fe)t)dt(3.4)
y
p =A
2 ⌠
⌡
T,
0
b( t + τ
1) c ( t+ τ1) c ( t ) cos (2π fet - θ )dt
(3.5)
y
q =A
2
⌠⌡
T,
0
b( t+ τ
1) c ( t + τ1) c ( t ) sin (2π fet - θ )dt
또한, 식(3.4)와 식(3.5)의 코사인과 사인 부분은 fe가 매우 작은 값이기 때문 에 적분구간동안 상수로 생각할 수 있으며, b( t + τ1)도 역시 상수로 볼 수 있
다. 즉,
y
p와 yq는 다시 식(3.6)과 식(3.7)로 표현할 수 있다.(3.6)
y
p =A
2 cos (2π fe
t - θ ) b( t + τ
1) ⌠⌡T
0
c ( t + τ
1) c ( t )dt(3.7)
y
q =A
2 sin (2π fe
t - θ ) b( t+ τ
1) ⌠⌡T
0
c ( t+ τ
1) c ( t )dty
p과 yq의 제곱의 합인 u는 비동기 검파기의 출력이며, 그 값은 식 (3.8)과 같이 나타난다.(3.8)
u = A
2 [ ⌠⌡
T
0
c ( t+ τ
1) c ( t )dt]2=
A T
2
R
2c( τ1)결국, 비동기 검파기의 출력이 PN 코드의 상관값을 나타내고 이 값을 이용하 여 searcher 블록과 PN 코드 초기동기 획득 블록이 구동될 수 있게 된다.
PN 코드 초기동기 블록은 크게 직렬방식과 병렬방식이 있으며, 본 논문에서 는 하드웨어의 제한으로 병렬방식이 아닌 직렬방식으로 설계하였다. 직렬방식은 병렬방식보다 하드웨어의 크기가 적게 사용되는 장점이 있는 반면에 초기동기 를 획득하는 시간이 오래 걸리는 단점이 있다.
그림 3.9는 본 논문에서 VHDL로 구현된 searcher 블록 및 PN 코드 초기동 기 획득 블록을 보여준다. 그림에서 왼쪽의 블록이 적분기이고, 가운데의 블록 이 제곱기이며, 오른쪽 블록이 searcher 블록과 PN 코드 초기동기 획득 블록의 제어기이다. 제어기의 기능은 두 경로의 제곱기 출력을 더하여 상관값을 얻고 국부 PN 코드의 위상을 한 칩씩 이동시키기 위한 제어신호를 발생하며, 임계값 을 결정하기 위한 최대 상관값을 계산하는 역할을 담당한다.
그림 3.9 VHDL로 구현된 searcher 블록 및 초기동기 블록
3.3.2 캐리어 복원(carrier recovery)
초기동기 획득에서 사용된 캐리어 주파수는 수신된 주파수와 정확히 일치하 지 않기 때문에 비동기 검파방식을 이용한 초기동기 획득 블록을 설계하였다.
따라서, 국부발진 주파수는 초기동기 획득이 끝난 후 캐리어 복조 블록에서 수 신된 캐리어 주파수와 일치시켜 주어 동기 검파방식을 이용한 데이터 복원을 수행하여야 한다.
수신된 신호로부터 복원하고자 하는 신호의 캐리어 주파수를 복원하여 PN 코드용 주파수와 캐리어 주파수를 동기추적 블록에 공급하는 것이 Costas loop 의 역할이다. 그림 3.10은 Costas loop의 블록을 보여준다.
그림 3.10 Costas loop 블록도
캐리어 복원에는 그림 3.10의 구성에 다중사용자 구별을 위하여 LPF(Low Pass Filter)입력 전단에 복원하고자 하는 신호와 같은 PN 코드를 곱하게 된다.
이때, 이 PN 코드는 PN 코드 위상 동기가 최소한 한 칩 이내로 동기를 유지하 고 있어야 한다. 이러한 경우만이 PN 코드간의 상관특성을 이용하여 사용자를 구분할 수 있기 때문이다.
수신된 신호를 식(3.9)과 같이 가정한다.
(3.9)
r ( t ) = A b( t) c( t) cos ( 2π f
1t + θ
1)수신된 신호와 초기동기를 획득한 국부 PN 코드( | τ | < Tc), in-phase 성분의 국부발진 주파수를 곱한 LPF의 입력 신호는 식(3.10)과 같이 표현된다.
(3.10)
A b( t ) c ( t ) c( t + τ
1) sin (2π f1t + θ
1) sin (2πfot + θ
o)동일한 방식으로 quadrature의 LPF 입력 신호도 식(3.11)과 같다.
(3.11)
A b( t ) c ( t ) c( t + τ
1) sin (2π f1t + θ
1) cos (2πfot + θ
o)식(3.10)과 식(3.11)의 신호를 LPF에 통과하여 얻어지는 신호는 각각 식(3.12) 와 식(3.13)으로 표현된다. 이 값은 수신된 신호의 캐리어 성분과 국부발진 주파 수의 위상차이 정보를 가지고 있으며, 이 정보를 가지고 캐리어 복원 제어기에 서는 NCO의 출력 주파수의 값을 변화시키면서 위상과 주파수를 복원할 수 있 다.
(3.12)
LPF[식( 3.10)] = A
2
b( t ) cos ( 2π( f
1- fo)t + θ1- θo)(3.13)
LPF[ 식( 3.10)] = A
2
b( t ) sin (2π(f
1- fo)t + θ1- θo)그림 3.11는 캐리어 복원된 국부 발진 주파수와 수신된 신호를 함께 나타낸 것이며, 수신된 신호와 캐리어 복원된 신호를 출력하여 계측기로 측정한 그림이 다.
그림 3.11 수신된 신호와 캐리어 복원된 NCO 주파수
그림 3.11에서 상단의 파형은 캐리어 복원된 국부발진 주파수 신호이고, 하단
파형은 수신된 BPSK 변조 신호이다. 그림 3.11에서 보는 바와 같이 수신된 신 호와 캐리어 복원된 두 신호가 계속해서 안정적으로 주파수와 위상을 유지하고 있음을 확인할 수 있다.
본 논문에서의 캐리어 복원 블록의 설계는 위에 서술한 searcher 블록 및 PN 코드 초기동기 획득 블록에 함께 설계하였다. Searcher 블록에서의 제곱기 입력 전까지의 부분이 캐리어 복원 블록과 동일한 것이기 때문에 캐리어 복원을 위 한 제어기를 searcher 블록의 제어기와 함께 하나의 블록으로 설계를 하였다.
또한, 하드웨어의 제한으로 LPF대신 적분기를 사용하여 일련의 과정을 수행하 게 하였다.
3.3.3 PN 코드 동기추적(tracking)
PN 코드의 초기동기를 획득한 후에는 동기 검파방식으로 데이터를 복원하게 된다. 이를 위해서는 위에 설명한 캐리어 복원 블록과 함께 PN 코드 동기추적 블록도 같이 구동되어야 한다. 수신된 PN 코드의 위상과 국부 PN 코드의 위상 차이를 한 칩 이내에 형성한 PN 코드 초기동기 획득 블록은 한 번의 동작으로 그 역할을 다하며, 그 이후에는 PN 코드 동기추적 블록이 일정한 간격을 유지 하며 계속해서 PN 코드의 동기를 유지하게 된다.
본 논문에서 사용한 PN 코드 동기추적 방식은 early-late gate 방식이며, 일 반적으로 VCO(Voltage Controlled Oscillator)를 사용하는 반면에 NCO를 사용 하였다. 또한, 수신된 PN 코드의 위상에서 좌·우로 1/4 칩 간격을 유지하도록 설계하였고, 동기추적을 위해서 움직이는 국부 PN 코드의 위상은 1/8 칩씩 이 동하게 하였다.
그림 3.12는 수신된 PN 코드의 위상과 국부 PN 코드의 위상이 일치하였을 경우의 상관값을 나타낸다. Punctual PN 코드의 위상을 그림 3.11의 early PN 코드와 late PN 코드 사이의 구간(좌·우 1/4 칩)에서 동기를 형성하도록 하는 것이 PN 코드 동기추적 블록의 역할이다.
그림 3.12 PN 코드 위상이 일치하였을 때의 상관값
그림 3.13은 PN 코드 동기추적을 위한 early-late gate의 블록을 나타낸다.
그림 3.13 PN 코드 동기 추적 블록도
A/D 변환을 거친 수신 신호를 식(3.14)과 같이 가정한다.
(3.14)
r( t) = b( t) c( t) sin (2πf
ct)
그림 3.13에서 PN 코드 발생기는 서로 다른 위상을 가진 세 개의 PN 코드를 발생한다. 세 개의 PN 코드는 식(3.15)와 같다. 식(3.15) 중 ①과 ③은 각각 전 상관기와 후상관기에 입력되는 PN 코드이고, ②는 초기동기 포착에 사용된 초
기동기가 맞추어진 PN 코드이다.
(3.15)
① c ( t + τ + τd) ② c ( t + τ ) ③ c ( t + τ - τd), | τ | < ΔTC
입력된 신호에 PN 코드가 곱해진 후 캐리어 복원 블록으로부터 공급된 반송 주파수가 곱해지면 식(3.16)과 같이 된다.
(3.16)
v
1( t ) = 12
c( t)c( t + τ + τ
d)b( t )( 1 - cos (4πfct)) v
2( t ) = 12
c( t)c( t + τ - τ
d)b( t )( 1 - cos (4πfct))
그림 3.13의 구조에서는 LPF로 나타나 있으나 실제 구현에는 32TC 만큼의 적분기를 사용하였다. 이 적분기를 통과하면 식(3.16)은 식(3.17)과 같이 표현된 다. 여기서, Rc( τ )는 위상차이 τ 에 따른 PN 코드의 상관값을 의미한다.
(3.17)
u
1( t) =b( t)
2 1 32TC
⌠⌡
t +32TC
t
c ( t') c ( t' + τ + τ
d) dt' = Rc( τ + τd)u
2( t) =b( t)
21 32TC
⌠⌡
t +32TC
t
c ( t') c ( t' + τ - τ
d) dt' = Rc( τ - τd)PN 코드의 자기상관 특성에 의하여 동기가 정확히 일치하였을 경우를 축으 로 하여 상관값은 대칭성을 갖는다. 따라서, 만약 τ = 0 이 되면 식(3.18)과 같 은 결과가 된다.
(3.18)
u
1( t ) - u2( t ) = 0즉, loop filter로 입력이 '0'이 된다. 그림 3.14는 위상차이 τ에 따른 loop filter 의 입력 곡선을 나타내고, PN 코드 동기추적 블록 제어기에서는 loop filter의 입력으로 들어가는
u
1( t ) - u2( t )의 값을 사용하여 PN 코드의 위상차이를 좌·우 1/4 칩 이내로 유지하게 된다.그림 3.14 τ 값에 따른 Early, Late 상관값 차이 곡선
그림 3.15는 FPGA로 설계된 early-late Gate를 보여주며, 그림 3.16은 PN 코 드 추적 과정을 계측기를 통하여 관찰한 것이다. 파형 ⒜는 송신기에서 측정한 PN 코드 시작 신호를 나타내고 있고, 파형 ⒝는 수신기에서 수신된 신호에 PN 코드 동기를 유지하고 있는 PN 코드 시작 신호의 파형이다. 마지막으로 파형
⒞는 수신기 역시 송신기 쪽으로 신호를 보내기 때문에 수신기에서 보낸 신호 와 동기를 유지하고 있는 송신측의 PN 코드 시작 신호 파형이다. 수신기에서는 송신기로부터 수신된 신호와 동기를 유지하고 있는 PN 코드를 그대로 사용하 여 다시 송신기 쪽으로 보낸다. 따라서, 세 개의 PN 코드 시작 신호는 순차적 으로 나타나게 된다.
그림 3.15 FPGA로 설계된 Early Late Gate
그림 3.16 동기 추적 수행후 송·수신 PN 코드 시작 신호의 위치
3.3.4 적분기 블록
적분기 블록은 데이터를 복원하면서 동시에 초기동기 획득 및 PN 코드 추적 블록에 사용되는 상관값을 계산하는 블록으로 적분구간은 32KHz에 해당하는 심볼 간격으로 한다. 이 구간동안의 값을 여러 번 더함으로써 PN 주기의 1/2, 1/4, 1/8 상관값을 구할 수 있게 된다. 한편 적분기의 입력 비트 수에 따라 상관 값의 신뢰도의 차이가 발생하는데, 신뢰성을 높이기 위해서 복조 및 역확산 과 정을 거친 24 비트의 값 중 몇 비트를 적분기의 입력 비트로 사용하는 부분이 시스템 성능에 큰 영향을 미친다. 많은 입력 비트를 처리하도록 설계하면 적분
기의 동작속도가 감소하게 되고, 속도를 높이려면 입력 비트의 수를 낮추어야 하는 문제점을 가지고 있다. 제작된 MC DS-CDMA 전력선 모뎀에서는 이러한 문제를 해결하기 위하여 적분구간을 1MHz의 PN 코드 간격과 다시 이것을 32KHz의 심볼 간격으로 다시 적분하는 이중 적분기로 설계하였고, 이의 결과는 24 비트 중 19 비트의 값을 상관기의 입력으로 사용함과 동시에 동작속도도 만 족할 수 있게 하였다. 그림 3.17은 적분구간을 나눈 32KHz 적분기의 블록을 나 타낸다.
그림 3.17 32KHz 적분기 블록
3.3.5 SC 블록
전력선 채널은 일반 통신 채널에 비해서 매우 큰 협대역 간섭과 주파수 선택 적인 채널 특성을 가진다. 이러한 채널 특성에 대하여 확산된 신호를 여러 서브 밴드를 통해서 동시에 전송함으로써 주파수 다이버시티(frequency diversity) 효 과를 얻을 수 있도록 멀티캐리어 DS-CDMA 방식을 사용하였다. 다이버시티 효과를 얻기 위해서는 여러 가지의 결합기를 사용하여 그 효과를 얻는다. 대표 적인 결합기로는 SC, MRC, EGC등이 있으며, 본 논문에서는 구현하기에 간단 한 SC를 사용하여 두 개의 서브밴드로 들어오는 정보신호를 결합하였다. SC는 그림 3.18과 같이 두 개정도의 서브밴드를 가지고 있는 경우에 자주 사용되는 결합기이며[9], 각각의 서브밴드의 채널 환경을 비교하기 위한 디지털 블록이 설계되어 그 중 환경이 좋은 채널의 데이터를 선택하게 된다.
그림 3.18 SC의 구조
멀티캐리어 DS-CDMA 시스템의 구조는 그림 3.19와 같으며, 각각의 서브밴 드의 수신부는 서로 독립적인 동기를 형성하도록 구성하였다. 따라서 각각의 단 말기에서는 두 개의 동기 블록이 필요하다. 각각의 동기 블록에서 형성된 수신 동기 정보를 바탕으로 SC를 통해 두 서브밴드 채널의 상관값을 구하여 어느 서브밴드 채널의 환경이 좋은가를 판단하고, 그 채널에서 복원한 데이터를 사용 하게 된다. 즉, SC는 32KHz 데이터 심볼 간격마다 두 개의 서브밴드 채널을 비교하여 상관값이 큰 서브밴드에서 복원한 데이터를 선택하게 된다. 이렇게 결 정된 데이터는 ADPCM의 입력으로 사용한다.
그림 3.19 MC DS-CDMA 시스템
그림 3.20은 FPGA에서 구현된 SC 블록이며 각 블록의 VHDL 코드는 부록A 에 나타내었다.
그림 3.20 VHDL로 구현된 SC 블록도
3.4 MCU 블록
ADPCM, STLC와 DTMF의 초기 세팅 및 전화기 인터페이스의 기능을 수행 하기 위하여 FPGA 칩 내부에 MCU 기능을 담당하는 블록을 설계하였다.
MCU 블록은 제어 신호를 발생하는 state machine 블록과 여러 가지의 기능을 수행하는 서브 블록으로 구성되어 있다. 그림 3.21은 FPGA로 구현된 MCU 블 록이며, 각 블록의 VHDL 코드는 부록A에 나타내었다. 왼쪽의 블록이 제어 신 호를 발생하는 state machine 블록이며, 오른쪽의 블록은 전화기 인터페이스의 기능을 수행하는 각각의 서브 블록이다. STLC와 DTMF의 출력 신호를 입력으 로 사용하는 state machine 블록은 전화 수화기의 상태 및 전화 번호 버튼의 값을 인식하여 ADPCM의 상태를 세팅시키는 역할을 담당한다.
그림 3.21 MCU 블록도
3.5 ADPCM 인터페이스
ADPCM에 입력되는 신호는 다음과 같다. ADPCM을 구동하는 클럭 주파수 인 12.288MHz, 송·수신 데이터 동기 클럭 주파수인 8KHz, 송·수신 데이터 비트 클럭 주파수인 128KHz이다[15].
구동 클럭을 제외한 데이터 동기 클럭과 데이터 비트 클럭은 서로 타이밍을 지켜야만 하는 규칙이 있다. 그림 3.22는 데이터와 동기 클럭 및 비트 클럭간의 타이밍 정보를 나타낸다.
그림 3.22 ADPCM의 클럭 타이밍도
그림 3.22는 송·수신에 있어서 형식은 동일하지만, 나타내는 의미에는 차이 가 있다. 먼저 송신을 위해 ADPCM으로부터 데이터를 받는 경우인 송신부분을 살펴보면 다음과 같다. 8KHz 데이터 동기 클럭의 상승 edge는 FPGA에서 ADPCM에 보내는 신호로 데이터를 받을 준비 가 되어있다는 신호이다. 8KHz 데이터 동기 클럭의 상승 edge 신호의 위치는 반드시 128KHz 비트 클럭 신호 가 ‘0’일 경우에 발생하여야 한다. 일단 8KHz 데이터 동기 클럭의 상승 edge가 발생하면, 그 후 128KHz 데이터 비트 클럭의 상승 edge에서 ADPCM으로부터 데이터가 출력된다. 따라서, FPGA에서는 128KHz 데이터 비트 클럭의 하강 edge에서 ADPCM의 출력된 데이터를 가져오게 된다.
수신을 위한 ADPCM으로 데이터를 보내는 경우를 살펴보면 다음과 같다. 송 신부와 마찬가지로 8KHz 데이터 동기 클럭의 상승 에지는 FPGA에서 ADPCM 에 보내는 신호로 데이터를 보낼 준비가 되어있다는 신호이다. 이 경우도 8KHz 데이터 동기 클럭의 상승 edge 신호의 위치는 반드시 128KHz 비트 클럭 신호 가 ‘0’일 경우에 발생하여야 한다. 일단 8KHz 데이터 동기 클럭의 상승 edge가 발생하면, 그 후 128KHz비트 클럭의 상승 edge 신호는 ADPCM으로 데이터가 입력된다는 것을 알려주고, 128KHz 비트 클럭의 하강 edge에서 ADPCM은 입
력된 데이터를 ADPCM 쪽에서 획득하게 된다.
그림 3.23은 ADPCM으로부터 데이터를 입력받아 처리하는 송신부 ADPCM 인터페이스 회로도이다.
그림 3.23 송신부 ADPCM 인터페이스 회로도
그림 3.24는 수신된 신호로부터 데이터를 복원한 후 ADPCM으로 출력하기 위한 수신부 ADPCM 인터페이스 회로도이다.
그림 3.24 수신부 ADPCM 인터페이스 회로도
3.6 서브모듈 통합
제작된 서브모듈의 VHDL 코드를 통합하여 송신 블록, 수신 블록, MCU 및 SC 블록을 구성하였고, 3개의 블록을 각각 3개의 FPGA에서 동작시키게 된다.
가. 송신 블록
그림 3.25 MC DS-CDMA 전력선 모뎀에서 구현된 송신 블록
나. 수신 블록
그림 3.26 MC DS-CDMA 전력선 모뎀에서 구현된 수신 블록
다. MCU 및 SC 블록
그림 3.27 MC DS-CDMA 전력선 모뎀에서 구현된 MCU 및 SC 블록
Ⅳ. 실험 및 고찰
4.1 제작된 멀티캐리어 DS-CDMA 전력선 모뎀
그림 4.1은 제작된 멀티캐리어 DS-CDMA 전력선 모뎀의 실물사진을 보여준 다.
그림 4.1 제작된 MC DS-CDMA 전력선 음성 모뎀
본 논문에서 제안된 멀티캐리어 DS-CDMA 시스템의 서브밴드 수는 두 개이 며, 각각의 서브밴드 수신블록은 그림 4.1의 세 개의 FPGA 칩 중에서 상위 두 개의 칩에서 구현되고 송신 블록은 그 중 하나의 칩에서 구현된다. 전화기 인터 페이스 기능을 수행하는 MCU 블록과 각각의 서브밴드에서의 데이터를 결합하 기 위한 SC 블록은 그림 4.1의 하단 FPGA에서 구현된다.
4.2 실험 및 고찰
본 논문에서 제안된 멀티캐리어 DS-CDMA 방식을 이용한 전력선 음성 모뎀 의 성능을 실험하기 위하여 DSP(TMS320C5402) 칩을 사용하여 BER 측정기를 설계하였다. 그림 4.2는 BER 측정기와 전력선 모뎀의 데이터 인터페이스를 보 여주는 그림이다. BER 측정기로부터 전송된 데이터를 전력선 모뎀에서 전력선 으로 송신하고, 수신기 모뎀에서는 데이터를 복원한 후 다시 BER 측정기로 보 내진 후에 송신 데이터와 수신 데이터를 비교하여 BER을 계산한다. 그림 4.3은 BER 측정기를 나타내는 그림이다.
그림 4.2 BER 측정기와 모뎀의 인터페이스
그림 4.3 BER 측정기
그림 4.4는 실험실 환경에서의 BER 측정 과정을 나타내는 그림이다. 협대역 잡음을 인가하는 장비가 없어서 일반 신호발생기를 사용하였으며, 구현된 멀티 캐리어 DS-CDMA 전력선 모뎀의 서브밴드는 2.048MHz와 4.096MHz이기 때문 에 각각의 서브밴드에 해당하는 주파수를 가지는 정현파를 인가하여 실험하였 다. 즉, 톤 잡음을 각 서브밴드에 인가하여 해당 서브밴드에서 BER을 측정하고, 다음으로 같은 조건에서의 결합기 출력의 BER을 측정하였다.
그림 4.4 실험실 환경에서의 실험 모습
실험한 결과를 표 4.1과 4.2에 정리하였다. 신호의 레벨은 전력선을 지나면서 감쇠가 일어나고, 최종 입력에서 600mV정도의 값을 가진다. 다음으로 AGC(auto gain controller)를 지나면서 1.6V의 레벨을 유지하고 ADC의 입력으 로 들어간다. 톤 잡음을 발생하는 신호발생기의 출력 또한 전력선을 지나면서 감쇠현상이 발생하였다. 톤 잡음의 레벨이 600mV의 값을 가질 경우까지는 각 서브밴드에서 에러가 발생하지 않았으며, 그 이상의 값을 인가할 경우에 에러가 발생하기 시작했으며, 800mV이상의 값에서는 수신기의 동기를 잃어버리는 결 과를 나타내었다. 또한 에러가 발생한 후에는 에러의 수가 상당히 많은 것을 볼 수가 있었다.
표 4.1 2.048MHz 대역에서의 결과
수신단 rx input 파워 프레임 총 비트 에러 비트 측정회수 비 고 2MHz 450mV C940h 105,512,960 0 1
2MHz 450mV CDD9h 107,923,456 0 2 2MHz 450mV B029h 92,358,656 0 3 결합기 450mV BD38h 99,205,120 0 1 2MHz 600mV C263h 101,914,624 0 1 2MHz 600mV C184h 101,457,920 0 2 2MHz 600mV B569h 95,111,168 0 3 결합기 600mV BA3Ah 97,636,352 0 1
2MHz 650mV C27Bh 101,963,776 3 1 2.9e-8 2MHz 650mV B326h 93,925,376 2 2 2.1e-8 2MHz 650mV C73Ah 104,452,096 4 3 3.8e-8 결합기 650mV C46Bh 102,979,584 0 1
2MHz 700mV C1A3h 101,521,408 14 1 1.4e-7 2MHz 700mV C237h 101,824,512 21 2 2.0e-7 2MHz 700mV BC69h 98,781,184 16 3 1.6e-7 결합기 700mV C32Ch 102,326,272 0 1
수신단의 구분은 단일캐리어의 경우에서의 출력과 멀티캐리어의 경우의 결합 기의 출력을 말하는 것이다. rx input 파워는 전력선 모뎀에 실제로 인가되는 톤 잡음의 세기를 나타낸다. 송신단에서 보내지는 테스트용 데이터는 프레임으 로 구성되어 전송된다. 하나의 프레임은 128×16bit로 이루어진다. 프레임에 따 른 전송된 총 비트 수를 표기하였다.
표 4.1은 2.048MHz의 단일캐리어와 멀티캐리어의 결합기에서의 출력을 측정 한 결과이며, 표 4.2는 4.096MHz의 단일캐리어와 멀티캐리어의 결합기에서의 출력을 측정한 결과이다.
표 4.2 4.096MHz 대역에서의 결과
수신단 rx input 파워 프레임 총 비트 에러 비트 회 수 비 고 4MHz 450mV C152h 101,355,510 0 1
4MHz 450mV C283h 101,980,160 0 2 4MHz 450mV B947h 97,138,688 0 3 결합기 450mV C239h 101,828,608 0 1 4MHz 550mV C3A7h 102,578,176 0 1 4MHz 550mV C278h 101,957,632 0 2 4MHz 550mV C190h 101,482,496 0 3 결합기 550mV B84Ch 96,100,352 0 1
4MHz 600mV C189h 101,468,160 2 1 2.0e-8 4MHz 600mV BD36h 99,201,024 2 2 2.0e-8 4MHz 600mV C312h 102,273,024 3 3 2.8e-8 결합기 600mV BC58h 98,746,368 0 1
4MHz 650mV C261h 101,910,528 15 1 1.4e-7 4MHz 650mV C114h 101,228,544 19 2 1.8e-7 4MHz 650mV C2A6h 102,051,840 12 3 1.1e-7 결합기 650mV BD3Ah 99,209,216 0 1
Ⅴ. 결론
본 논문에서 구현된 멀티캐리어 DS-CDMA 방식을 이용한 전력선 음성 모뎀 의 성능은 단일캐리어 DS-CDMA 방식을 이용한 것 보다 우수한 성능을 보였 다. 즉, 하나의 서브밴드에 톤 잡음을 인가하여 에러가 발생할 경우에도 결합기 에서는 채널 환경이 좋은 다른 서브밴드에서 복원된 데이터를 선택하기 때문에 에러가 발생하지 않았다. 하나의 서브밴드를 사용하는 경우보다 두 개의 서브밴 드를 사용한 경우에 협대역 잡음에 대하여 성능이 우수한 것을 볼 수 있었다.
톤 잡음에 대하여 시스템의 성능을 정확하게 분석하기에는 적합하지 않지만, 멀티캐리어 DS-CDMA 방식이 단일캐리어 DS-CDMA 방식의 경우보다는 협대 역 잡음에 대하여 성능이 우수하다는 점을 알 수 있었다.
참고문헌
[1] W. N. Sado and J. S. Kunicki, "Personal communication on residential power lines assessment of channel parameters," in Proc. of the 1995 4th
IEEE International Conference on Universal Personal Communications Record, pp. 532-537, Nov. 1995.
[2] H. Philipps, "Modelling of powerline communication channels," in Proc.
ISPLC'99, pp. 14-21, March 1999.
[3] D. Raphaeli and E. Bassin, "A Comparison between OFDM, single carrier and spread spectrum for high data rate PLC," in Proc. ISPLC'99, pp.
162-167, March 1999.
[4] 동역메카트로닉스연구소 기술정보팀 편저, SS 통신유닛의 설계와 응용 실 무; 스펙트럼 확산통신 시스템 설계, 국제 테크노 정보 연구소, pp. 219-245, 2000.
[5] ALTERA, Datasheet, 2000.
[6] D. J. Smith, HDL Chip Design, Foreword by Alex Zamfirescu, 1996.
[7] D. Perry, VHDL, McGraw-Hill, 1998.
[8] S. Kondo and L. B. Milstein, "On the use of multicarrier direct sequence spread spectrum systems," in Proc. IEEE MILCOM'93, Boston, MA, pp.52-56, Oct. 1993.
[9] J. D. Gibson, The Communication Hand Book volume 1, IEEE PRESS, 1997.
[10] J. Proakis, Digital Communications, New York: McGraw-Hill, 1995.
[11] S. Kondo and L. B. Milstein, "Performance of multicarrier DS-CDMA systems," IEEE Trans. Comm., Vol. 44, No. 2, pp. 238-246, Feb. 1996.
[12] E. Tomas and N. Kong, "Comparison of diversity combining technique for Rayleigh-fading channels," IEEE Trans. Commun., Vol. 44, No. 9, pp.
1117-1129, Sept. 1996.
[13] J. Bingham, "Multicarrier modulation for data transmission: an idea whose time has come," IEEE Commun. Mag., pp. 5-14, May 1990.
[14] E. A. Sourour and M. Nakagawa, "Performance of orthogonal multicarrier CDMA in multipath fading channels," in
Proc.
GLOBECOM'94, San Francisco, CA, pp. 390-394, Dec. 1994.
[15] OKI Semiconductor, MSM75740L-01/02 Datasheet, 1999.
Abstract
A Study on the Implementation of Power Line Voice Modem Using Multicarrier DS-CDMA
by Kim, Min-Girl
Dept. of Electronics Engineering Graduate School, Kookmin University
Seoul, Korea
In this thesis, we propose the implementation of a power line voice modem which uses a MC DS-CDMA with BPSK modulation in order to obtain the effect of spread spectrum, frequency diversity, and frequency nonselectivity in the power line channel characterized by PBI(Partial Band Interference) and frequency selectivity.
We design two sub-carriers system due to the hardware restriction and the proposed system has two independent receiver structure. Also, to obtain frequency diversity effect, we adopt Selective Combining method among several combining techniques. The proposed modem is implemented using three FPGA(Field Programmable Gate Array) chips, ALTERA's FLEX10K200SRC240-1, and most functional blocks are designed by VHDL(Very high-speed integrated circuit Hardware Description Language) and the others are designed by ALTERA's design tool.
부록 A
BER 측정 모듈의 C 코드
#include <stdio.h>
#include "ber_tester.h"
#include "funcdeclaration.h"
#include "VFD_LCD.h"
S_WORD PhaseStatus=0;
S_WORD RxTestDataShiftCounter=0;
S_WORD ErrorBitCounter=0;
BYTE DigitValue[7]={"0x "};
BYTE end[4]={"END"};
void main() {
Init();
LCD_COMM_WR(Dis_ON_OFF_COMM);
LCD_COMM_WR(Dis_Clear_COMM);
state_machine();
for(;;){
} }
int PhaseDetect(S_WORD *inptr, S_WORD *testptr) {
volatile S_WORD temp,j,i,x=0,sum_a=0, sum_b=0;
S_WORD *Input,*Test;
Input=inptr;
Test=testptr;
RxTestDataShiftCounter=0;
for(j=0;j<128;j++){
for(i=0;i<10;i++){
if(Test==testptr + BufLenth) Test=testptr;
temp=~(*Input ^ *Test);
if(temp==0) sum_a++;
else if(temp==-1) sum_b++;
Input++;
Test++;
}
if(sum_a==10){
x=1; /*Phase Status value */
break;
}else if(sum_b==10){
x=2; /*Phase Status value */
break;
}else{
sum_a=0,sum_b=0;
RxTestDataShiftCounter++;
Test=testptr + RxTestDataShiftCounter;
Input=inptr;
x=4;
} }
return(x);
}
void RxTestDataShift() {
S_WORD i;
S_WORD *srcptr, *dstptr;
srcptr=TxTestData + RxTestDataShiftCounter;
dstptr=RxTestData;
for(i=0;i<128;i++){
if(srcptr==TxTestData+BufLenth){
srcptr=TxTestData;
}
*dstptr++=*srcptr++;
} }
S_WORD BerCompute(S_WORD *inptr, S_WORD *testptr) {
volatile S_WORD temp,i,j,mask=1,counter;
S_WORD *Input,*Test;
Input=inptr;
Test=testptr;
counter=0;
for(i=0;i<128;i++){
if(PhaseStatus==1){
temp=~(*Input ^ *Test);
}
else if(PhaseStatus==2){
temp=(*Input ^ *Test);
} for(j=0;j<16;j++){
if(temp & mask) counter++;
mask=mask<<1;
} mask=1;