2013년 2월 12일 화요일

무선랜 기술

IEEE 802.11은 흔히 무선랜, 와이파이(Wi-Fi)라고 부르는 좁은 지역(Local Area)을 위한 컴퓨터 무선 네트워크에 사용되는 기술로, IEEE의 LAN/MAN 표준 위원회 (IEEE 802)의 11번째 워킹 그룹에서 개발된 표준 기술을 의미한다.

IEEE 802.11은 현재 주로 쓰이는 유선 LAN 형태인 이더넷의 단점을 보완하기 위해 고안된 기술로, 전파(RF)나 빛(적외선) 등을 이용하여서 무선으로 랜(근거리통신망) 환경을 구축하는 것이다.


전송방식표준


종류(승인연도)
속도
접속/변조방식
주파수대역
특징

802.11b

(1999)

11 Mbps

CSMA/CA DSSS(Direct Sequence Spread Spectrum)

ISM대역

2.4GHz

가장 많이 사용되고 있음

전송 속도가 느림

802.11a

(1999)

54 Mbps

CSMA/CA OFDM

5 GHz

주파수 대역이 구별되어 전파간섭이 적은 편

주파수 대역이 달라 호환성 없음

802.11g

(2003)

54 Mbps

CSMA/CA OFDM

ISM대역 2.4GHz

802.11b와 호환 가능

2.4GHz 기기들로부터 간섭이 있을 수 있음

802.11n

(2009)

600 Mbps

CSMA/CA OFDM

2.4GHz/

5GHz

다중 안테나 기술과 채널본딩을 통한 성능 증가
 

















 

※ ISM 대역(Industrial Scientific Medical band)
이 주파수 대역을 사용하는 통신 장비는 ISM 기기들과 이 대역을 사용하는 통신 장비 간에 간섭을 용인한다는 조건에서 사용할 수 있다. 특히 2.4GHz 대역은 공중 무선 LAN 서비스, 블루투스, 무선 식별 시스템(RFID), 디지털 코드 없는 전화 등 다양한 통신에 사용되고 있다.

※ CSMA/CA - Carrier sense multiple access with collision avoidance
※ 블루투스 - 무선 랜(802.11b/g)과 같이 2.4Ghz대의 주파수를 사용한다. 첫째, 블루투스는 저렴한 가격에 저전력(100㎽)으로 사용할 수 있다는 점이 장점이다. 둘째, 블루투스는 주파수 대역을 나누기 때문에 데이터 전송을 여러 주파수에 걸쳐서 분할해 보낼 수 있다.(주파수 도약 확산 스펙트럼, FH-SS) 그렇기 때문에 무선 전송에 따른 보안 위협에서도 상대적으로 안전하다.
무선랜과 블루투스 두 기능을 동시에 가지고 있는 기기의 경우에는 두 장비가 하나의 안테나를 사용하게 되는데, 서로 번갈아가며 데이터를 전송하는 사용하는 방식을 이용하여 애초부터 그 간섭을 최대한 줄이게끔 되어 있다.
블루투스 3.0은 2009년 4월 21일에 발표되었다. 전송속도는 24Mbps로 향상되었다.

※ 적외선 통신 - 전파 대신 파장이 수 ㎜부터 수 100㎚까지의 적외선을 사용하여 수행하는 통신. 적외선의 투과율은 가시광선에 비해 훨씬 좋고, 파장은 마이크로파에 비해 훨씬 짧으므로 초다중 회선을 만들 수 있다. 적외선의 증폭이나 발진에는 적외선 영역의 메이저를 사용하는데 이것은 현저하게 저잡음이고, 주파수 안정도가 좋으며, 또 단방향으로만 집중하여 강력한 방사를 할 수 있는 등의 이점이 있다. 적외선 통신은 빛(光)을 매체로 이용하므로 제품 생산 시 주파수 사용 허가를 받을 필요가 없고 소비 전력이 적은 것이 특징이다.
1993년에 IBM, HP, 마이크로소프트 등이 주축이 되어 ‘IrDA(Infrared Data Association)’라는 규격 단체를 설립, 적외선 통신의 표준 규격을 정함. IrDA DATA 1.4 규격을 준수하는 기기끼리는 1미터 이내의 거리에서 최대 16Mbps의 속도로 무선 데이터 통신이 가능하다.

※ Zigbee - 저속 전송 속도를 갖는 홈 오토메이션 및 데이터 네트워크를 위한 표준 기술. 버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등 제어 및 홈보안 시스템 VCR on/off 등을 할 수 있고, 인터넷을 통한 전화 접속으로 홈 오토메이션을 더욱 편리하게 이용하려는 것에서부터 출발한 기술이다. IEEE 802.15.4에서 표준화가 진행되며, 듀얼 PHY 형태로 주파수 대역은 2.4GHz, 868/915MHz를 사용하고, 모뎀 방식은 직접 시퀀스 확산 스펙트럼(DS-SS)이며, 데이터 전송 속도는 20~250kbps이다.


802.11a


OFDM 방식의 통신시스템에서는 OFDM신호의 직교성이 유지되어 ISI와 ICS가 방지되도록 정확한 carrier recovery(잡음과 무관하더라도 송수신기간의 거리와 발진기주파수의 차이, 전력계통/송전선로 주파수의 영향)와 symbol synchronization(time recovery)가 이루어져야 한다.

carrier recovery는 주로 정기적으로 삽입된 pilot symbol이나 PRS(Phase Reference Symbol)를 이용한 correlator, PLL 및 협대여필터, tuner 등으로 구성된 장치에 의해 반송주파수 및 위상을 추적하는 것으로 수행되고,

symbol synchronization(time recovery)는 preamble이라 불리우는 trainingg symbol(훈련심볼) 나 CP(Cyclic Prefiz) 또는 null symbol을 이용해서 구현하기도 한다.







이외에 동기화가 잘 수행되기 위해서는 STO(Symbol Timing Offset, δ)와 CFO(Carrier Ferquency Offset, ε)를 잘 보상해주어야 한다. CFO가 발생하는 이유는 발진기의 특성이 안정적이지 못하여 발생되는 위상잡음과 단말의 이동에 따라 도플러주파수 천이(파원이 다가오는 경우 주파수가 높아지는 것)가 발생하기 때문이다.
수신단에서 동기가 이루어지지 않은 경우 이산시간에서 기저대역 신호는 다음과 같이 주어진다.

y[n]=Σ(k=0~N-1) H[k]X[k]exp(j2π(k+ε)(n+δ)/N)+z[n]

※ z는 채널 임펄스응답

초기동기를 위한 OFDM심벌에서, the initial 4.0 µs interval is the idle time when the transmitter sends no signal, and follows the short preamble(8.0 µs), long preamble(8.0 µs), SIGNAL, and DATA fields.

 

 <802.11a 프리앰블 구조>


프리앰블에는 주기가 각각 16(short 훈련심볼), 64(long) 샘플인 두 종류의 훈련심볼이 정의되어 있다. 한 샘플의 주기는 50ns이므로 프리앰블 전체 주기는16us 의 길이를 갖는다.
※ 1 OFDM 심볼(80샘플)=T_gaurd_interval(16샘플)+T_fft(64샘플)


1. CFO 동기
훈련심볼의 반복주기가 D로 주어질 경우에 수신된 시간영역 신호 y[n]와 y[n+D]사이에는 반송파 주파수 옵셋에 의해 각각 exp(j2π*ε*n/N), exp(j2π*ε*(n+D)/N) 만큼의 위상변화가 발생한다. 이경우 두 신호의 위상차이와 반송파 주파수 옵셋의 추정범위는 다음과 같이 주어진다.

∠2π(n+D)/N-∠2πn/N=2πD/N
|2πD/N|=π

짧은 훈련심볼을 사용할 경우에 N=64, D=16 이므로 1FFT주기에 신호가 4번 반복하게 되어 추정할 수 있는 주파수 옵셋 범위가 부반송파 간격의 4배가 되며(|ε|<2),
긴 훈련심볼을 사용할 경우 N=D=64이므로 부반송파 간격 이내의 주파수 옵셋만 추정할 수 있다.(|ε|<0.5).
따라서 IEEE 802.11a에서는 추정 범위를 넓히기 위하여 짧은 훈련심볼을 한 후, 긴 훈련심볼을 이용하여 정확하고 미세한 주파수 추정을 하게된다.

x[n+D]*x[n]=X*exp(2πεD/N)


2. STO 동기
수신단에서 알고 있는 short 훈련신호와 수신신호의 correlation을 취해서 그 크기가 임게치보다 큰 시점으로부터 16 샘플포인트 전의 시점을 심볼의 시작시점으로 인식하는 과정

2013년 1월 21일 월요일

아두이노 시리얼통신

전파를 이용한 통신과 같이 이론적인것만 공부하다보니,

보여지고 체감할 수 있는,

통신이후에 전송된 정보를 처리하는 밑바닥의 하드웨어 원리가 궁금해졌다.

또한 기기들간의 통신에서 가장 기초가되는 시리얼통신 과정도 궁금했다.

그러던 와중에 우연히 인터넷을 통해 '아두이노'에 대해서 알게되었다.

마이크로프세서와 마이크로콘트롤러는 학부시절 갈피를 못 잡고 어렵게 느껴졌는데,

저렴한 가격에 보드와 간단한 키트(약 5만원)를 구입하여 이것저것 만들다 보니 하드웨어에 대해서 조금 알게 되었다.

몇일만에 책한권을 다 뗄수 있을 정도로 쉽게 접근할 수 있고, 쉬운 것도 최고의 장점이라 생각한다.

어두곳에 한 줄이 빛을 발견했다고 할까?ㅎ

그럼 내가 공부했던것을 정리해보자!!

먼저 위키백과를 인용해서 용어 정리부터,,,



 
마이크로컨트롤러(Microcontroller)는 칩 위의 컴퓨터를 말한다. PC에 쓰이는 일반 목적의 마이크로프로세서와는 반대로 높은 집적, 낮은 전력 소비, 비용 절감, 자동 처리를 강조하는 마이크로프로세서의 일종이다. 일반 목적의 마이크로프로세서의 일반 산술, 논리 요소뿐 아니라 데이터 저장을 위한 읽기 쓰기 메모리, 코드 저장을 위한 플래시와 같은 읽기 전용 메모리, 계속적인 데이터 저장을 위한 EEPROM, 주변 기기, 입출력 인터페이스 등의 부가 요소를 통합한다. 마이크로컨트롤러는 현대에 쓰이는 마이크로프로세서보다 매우 낮은 속도로 동작하며 일반적인 응용 프로그램들에 적절한 편이다.

마이크로컨트롤러는 자동차 엔진 제어 시스템, 리모컨, 사무 기기, 전자 기기, 전원 도구, 장난감과 같은 자동 조정 제품과 장치에 쓰인다.



 
아두이노(Arduino)는 오픈소스를 기반으로 한 피지컬 컴퓨팅 플랫폼으로, AVR을 기반으로 한 보드와 소프트웨어 개발을 위한 통합 환경(IDE)를 제공한다. 아두이노는 많은 스위치나 센서로부터 값을 받아들여, LED나 모터와 같은 것들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있다. 또한 플래시, 프로세싱, Max/MSP와 같은 소프트웨어를 연동할 수 있다.
아두이노의 가장 큰 장점은 마이크로컨트롤러를 쉽게 동작시킬 수 있다는 것이다. 일반적으로 AVR 프로그래밍이 WinAVR로 컴파일하여, ISP장치를 통해 업로드를 해야하는 등 번거로운 과정을 거쳐야하는데 비해,  
아두이노는 USB를 통해 컴파일 및 업로드를 쉽게 할 수 있다. 또한 아두이노는 다른 모듈에 비해 비교적 저렴하고, 윈도를 비롯해 맥 OS X, 리눅스와 같은 여러 OS를 모두 지원한다. 아두이노 보드의 회로도가 CCL에 따라 공개되어 있으므로, 누구나 직접 보드를 직접 만들고 수정할 수 있다.


1. 먼저 아두이노의 기본 설정과 매트랩과의 연동을 잘 설명한 사이트를 소개한다.

http://www.matlabinuse.com/index.php?mid=Arduino_with_MATLAB&document_srl=2395


2. 아두이노 LED, 써미스터, 광센서의 회로를 구성하라!
(최대 I/O핀 당 DC 전류 40㎃, Vcc와 GND 핀들 DC 전류 200㎃)



< 회로도 >
 
 [아두이노 GND] --- [330Ω] --- [LED] --- [아두이노 12]
 
 
 
 [아두이노 Power GND] --- [10KΩ] --- [Thermistor] --- [아두이노 Power 5V]
                      ㄴ[아두이노 A0]
 
 

 [아두이노 Power GND] --- [10KΩ] --- [광센서] --- [아두이노 Power 5V]

                      ㄴ[아두이노 A0]



 
// Arduino Sketch //

//  Thermistor //
int sensor = A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int reading = analogRead(sensor);
float srV = reading*5.0/1024.0;    //   float srV = map(reading,0,1023,0,5);
float srR = (( 5.0 * 10000.0 )/ srV ) - 10000.0;
float kT = 1.0 / ((1.0 / (273.15 + 25.0)) + (1.0 / 4200.0) * log (srR / 10000.0));
float temp = kT-273.15;
Serial.println(temp);
delay(500);
}

//  광센서 //
const int lightPin = A0;
int lightValue;
int brightness;

void setup() {
  Serial.begin(9600);
}
void loop() {
  lightValue = analogRead(lightPin);
  Serial.println(lightValue);
  //0~1023값을 0에서 255값으로 환산한다.
}
 


3. 써미스터 온도 측정값을 1602 IIC I2C LCD로 출력하라!

가지고 있는 LCD 모듈은 IIC & I2C(Inter-Integrated Circuit) 모듈이 추가된 제품으로
기존의 16핀이 아닌 4핀으로 사용가능한 대신에 I2C 라이브러리를 추가해야한다!
그 다음 LCD의 GND, VCC, SDA(Serial Data Line), SCL(Serial CLock) 를 순서대로
아두이노의 GND, 5V, A4, A5 에 연결한다.

 
// Arduino Sketch //

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd

  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, Friends!");
}

void loop()
{
   int a = analogRead(A0);
   float srV = a*5.0/1024.0; 
   float srR = (( 5.0 * 10000.0 )/ srV ) - 10000.0;
   float kT = 1.0 / ((1.0 / (273.15 + 25.0)) + (1.0 / 4200.0) * log (srR / 10000.0));
   float temp = kT-273.15;
   lcd.setCursor(0, 1);
   lcd.print("Temp:");
   lcd.setCursor(6, 1);
   lcd.print(temp);
   delay(500);
}
 


4. 다음으로,,,
 가변저항의 전압을 시리얼통신으로 전송하고,
수신한 데이터를 매트랩에서 실시간 Plot 하자!


< 가변저항 회로도 >
 
 [아두이노 Power GND] --- [가변저항] --- [아두이노 Power 5V]
  |
[아두이노 A0]
 


 
// Arduino Sketch //

int LED = 13; // LED 핀번호
int VR = A0; // 가변저항

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(VR, INPUT);
}
void loop() {
  int v = analogRead(VR);
  Serial.println(String(v));
  delay(100);
}
 


% Matlab %
 
a=serial('COM4','BaudRate',9600);
fopen(a);
n=0; x=300;
for i=1:x
n(i)=fscanf(a,'%d');
plot(n)
axis([1 x 0 1024]);
drawnow
end
 


5. 마지막으로,,,
PC의 매트랩에서 모스부호를 시리얼통신으로 전송하고,
수신한 모스부호에 따라 아두이노의 피에조와 LED를 켜보자!


< 피에조 회로도 >
 
 [아두이노 Power GND] --- [피에조] --- [아두이노 A0]



 
// Arduino Sketch //
 
int led = 13;
int speaker=A0;
char code[10];
 
int duration=120;
char strValue[10];
int index = 0; // 수신된 숫자를 저장할 배열의 인덱스
 
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);    
pinMode(speaker, OUTPUT);
}
 
void loop()
{
if( Serial.available()){
  char ch = Serial.read();
 
  if(ch==10){
    strValue[index] = 0; // 0을 추가하여 문자열을 종료한다.
    morse(strValue);
    index = 0;
  }
 
  else{
    strValue[index] = ch; // ASCII 문자를 문자열에 추가한다.
    index++;
  }
}
}
 
void morse(char *code)
{
  int codeLen=strlen(code);
  Serial.println(code);
  for (int i=0; i<codeLen; i++)
  {
    if (code[i]=='-')
    {
    digitalWrite(led, 1); 
    tone(speaker, 2000,3*duration);
    delay(3*duration);
    }
    if (code[i]=='.')
    {
    digitalWrite(led, 1); 
    tone(speaker, 2000,duration);
    delay(duration);
    }
    digitalWrite(led, 0); 
    delay(duration);
  }
}
 


다음으로 매트랩에서 모스코드 입력(예 '-.-.....')


% Matlab %
 
a=serial('COM3','BaudRate',9600);

fopen(a);

fprintf(a,'%s\n','-.-....');   % 매트랩에서 아두이노로 모스코드 전송

out = fscanf(arduino, '%s');  % 아두이노에서 전송한 모스코드 되 얻음

fclose(a);   % end communication with arduino

 결과 동영상을 촬영했는데, 소리도 거의 안들리고 너무 허접하다.ㅋㅋㅋㅋ



나중에 공부해서 라디오키트도 붙이고, wifi도 연결해 보면 재밌겠다.

2012년 12월 3일 월요일

이동통신 전파분석

드디어 이번 주제는 이동통신기술에 관해서다.

그동안 이 주제에 대해 스스로 경외하며, 언제가는 정리해야할 큰 도전이라고 느껴왔었다.

역시나 내용도 방대하고 능력의 한계도 절감하면서 머뭇거리기만 한참이었다.

이제 그런 부담감을 많이 내려놓으면서, 힘을 빼고,

이 블로그의 취지에 맞게 나만의 요리(?)로 최대한 만들어 볼까 한다.

"CDMA WCDMA 전파분석" 이란 책을 정리해가면서,

매트랩과 강의자료, 인터넷자료를 군데군데 보충하도록 하겠다.



1. 셀룰러 시스템의 개요


<셀룰러 시스템 구성도>

PSTN(public Switched Telephone Network) : 공공 통신 사업자가 운영하는 공중 전화 교환망

MTSO(Mobile Telephone Switching Office, 이동전화교환국) =MSC(Mobile Switching Center) :
 공중전화망과의 신호 연계, 기지국의 제어 및 채널의 관리통제, 사용자의 요금계산,
통화단절의 방지

BTS(Base station Transceiver Subsystem, 기지국) : 유선/무선신호의 상호 변환, 자기 cell내의 이동전화 신호강도 감지, MTSO에 정보 제공

중계기 : 전파음영지역을 개선하기 위한 간이 기지국
               (광 중계기, RF변환 중계기, M/W 중계기)

 
 <광중계기>

MS(Mobile Station, 통상 휴대폰)



2. 이동통신의 진화


 
<이동통신의 진화>

 1세대 AMPS 방식은 1983년 미국에서 상용화되었고, 이후 다른 지역으로 전파되었으며  우리나라에서도 1984년 AMPS 방식의 이동통신 서비스가 시작되었다.주파수 분할 다중 접근 방식(FDMA)을 쓰는 AMPS는 북미에서 셀이라는 공간을 할당해 사용자들로 하여금 통신하도록 하는 아날로그 셀 방식 전화 시스템이었으나 아날로그 음성통신 방식으로 데이터 통신이 불가능 했으며, 잡음이 많이 생기고, FDMA만 써서 각 사용자 마다 주파수를 할당해줘야 하기 때문에 주파수 효율의 문제점과 단순히 FM변조를 썼기 때문에 보안성 문제도 있었다.

 2세대에는 보다 향상된 음질과 저속 데이터 서비스가 디지털 방식으로 제공되었다. 2세대 시스템으로 알려진 디지털 셀룰러 시스템은 TDMA기반 시스템과  CDMA기반 시스템이 있으며 대표적인 TDMA 시스템은 유럽방식의 GSM, 북미의 IS-136, 일본의 PDC방식이 있으며, CDMA 방식으로는 미국  Qualcomm사가 제안한 북미식 IS-95 표준이 있으며, 현재 국내 디지털 셀룰러 이동통신 및 PCS 서비스가 해당되며 2세대 시스템은 완전한 디지털방식의 서비스를 하고 있지만 주로 음성위주의 전화 통화를 위해서 설계되었기 때문에 고속 데이터통신을 지원해 주지는 못했다.

3세대를 IMT-2000(International Mobile Telecommunication-2000) 또는 UMTS(Universal Mobile Telecommunication System)라고 하는데, 2세대 특징인 개인 통신 서비스(PCS)를 넘어서 음성, 동영상, 고속(144Kbps~2Mbps) 데이터 서비스 등을 모두 포함하는 멀티미디어 서비스를 제공 할 수 있는 모바일 컴퓨팅에 적합한 이동통신 시스템이다. 3세대 이동통신 시스템은 GSM과 같은 TDMA를 기반으로 한 EDGE, CDMA를 기반으로 하는 유럽의 W-CDMA, 그리고 북미식인 Qualcomm의 CDMA2000을 중심로 표준화가 진행되었다

4G 서비스 기술은  3G LTE(Long Term Evolution), WiMAX evolution 등이 있으며 각 진영별로 기술 주도권을 위해  경쟁하였으나 LTE가 압도하고 있다.

현재 CDMA 기술의 종료와 OFDM 기술 시대의 개막이 진행되고 있으며,
더 좋은 기술보다는 더 많은 사람이 사용하는 이동통신기술(LTE)이 규모의 경제를 바탕으로 다양한 방송 및 통신분야에 쓰일 것이라고 한다.



<무선데이터 전송속도의 진화>
 
※ 기지국에서의 음성통화 용량
ㅇ 2G IS95A 시스템 3FA(주파수 채널)/3sector + cdma2000 시스템 4FA/3sector
     3*15*2.4 + 4*25*2.4 = 약 348명 동시통화 가능

ㅇ 3G WCDMA 시스템 2FA/3sector
    2*80*2.4 = 약 384명 동시통화 가능



3. 주파수 확산 통신 기술

각 통화자(가입자)별 신호는 확산코드(직교코드, 채널화코드, Walsh 코드 - 64chip)에 의하여 대역 확산이 이루어지며 확산이 이루어진 신호들은 합쳐진 후 기지국을 구분하기 위한 short PN코드가 곱해진다. 따라서 기지국 초기 동기나 핸드오버 등의 동작을 이해하기 위해서는 PN코드에 대한 이해가 요구되며, 무선 테이터 전송을 이해하기 위해서는 직교코드를 명확히 이해하여야 한다. 반대로 상향신호에서는 단말 구분을 위하여 Long PN코드를 사용한다.

 
<1FA에서 CDMA/WCDMA 코드의 역할>

동기식 CDMA에서 모든 기지국들은 동일한 한개의 PN코드를 사용하고, 단지 각 기지국 별로 GPS로부터의 매 짝수 초를 기준으로 각기 코드의 시작 시점을 달리하게 되었다.동기식에서 사용되는 PN코드의 길이는 32,768 chip이며 이를 512개의 PNoffset으로 구분하여 1 PNoffset은 64 chip의 offset time을 의미하게 된다. 기지국간 시간 동기는 GPS절대 시간에 맞추어진다. chip rate는 1.2288 Mcps 이다. (ch 0=Pilot channel, ch 32=Sync, ch 1~7=Paging, ch 8~63=Traffic)


<1FA 채널구조>
 

 
 <1FA에서 CDMA파형>

 비동기WCDMA진영에서는 미국의 GPS 사용에 대한 거부감과 퀄컴의 원천 특허를 피하기 위하여 GPS의 절대시간 정보를 사용하지 않고, 모든 기지국이 512개의 서로 다른 PN코드를 사용한다. 광대역 cdma기술이며, chip rate는 3.84 Mcps 이다.

<CDMA / OFDM 의 랜덤엑세스 절차 비교>

CDMA, WCDMA 에서 단말기가 패킷신호를 전송 후 일정 시간 동안 기지국으로부터 응답 신호를 기다리고 응답 신호가 없으면 기지국에 신호가 도달치 못하였다고 판단하여 임의의 시간을 기다렸다 다시 신호를 송출하고 응답을 기다리는 반복 절차를 수행한다. 단말기 송신을 제어하는 절차를 무작위 접속(Random Access)절차라 하며, 이러한 기능을 수행하는 상향채널을 엑세스 채널이라 한다. 액세스 채널은 단말기에서 통화를 설정할 때, 기지국의 호출에 대하여 응답할때, 위치 등록 시, 상향 링크 문자 메시지 전송 등에 사용된다.



4. 국내 이동통신 주파수 현황

2011년 7월 국내에서 처음 상용 서비스를 시작한 LTE는 현재 1300만명의 가입자를 돌파하는 등 빠르게 확대하고 있다. 유럽의 경우에는 아직도 많은 이동통신사업자와 고객들이 3G에 만족하고 있다. 하지만 올해 말까지는 54개 사업자가 추가로 LTE를 구축할 예정이어서 연말에는 총 159개의 LTE 사업자가 등장할 전망이며, 올해를 기점으로 LTE 사업자가 폭발적으로 늘어나고 날 것이다.

<국내 LTE 주파수현황 - 하향링크 기준주파수표>
 


<이동통신사 주파수 현황>

현재는 국제적으로 LTE주파수가 난립하는 중에 상대적으로 1.8GHz대를 사용하는 이동통신사가 제일 많고 주목받지만, 장기적으로는  2.1GHz가 핵심이 되고 통일될 전망이다.
WCDMA에서는 독립적인 주파수채널 1FA마다 위한 하드웨어 증설이 필요하지만, LTE에서는
하드웨어 증설이 없어도 유연하게 조절가능 하다.


5. CDMA

전파방해(jamming)와 잡음환경에서의 직접대역확산 BER 계산






 
%DS_SS.m
% To simulate a QPSK/DS-SS communication system
clear, clf
gm=[2 5];   % A PN sequence
 
if sum(gm>1)>0, g(gm)=1;            % say, if gm=[1 2 4 5]
 else g=gm;                               % g=[1 1 0 1 1]
end
m=length(g); N=2^m-1;               % m=5, N=31
x=[zeros(1,m-1) 1]; x=x(end:-1:1);   % x=[0 0 0 0 1]→[1 0 0 0 0]
code1=x;
for i=m+1:N
xx(i,:)=[x(2:m) g(1:m-1) x(1)];
code1(i)=x(1); x=[rem(x(2:m)+g(1:m-1)*x(1),2) x(1)];
end
 
Nc=length(code1); % PN code length (Number of chips per message bit)
b=2; M=2^b;              % QPSK
Tb=1; Ts=b*Tb; Tc=Tb/Nc; % Bit/Symbol/Chip time
 
N=4; T=Tc/N;           % Sampling Period (subinterval in Tc)
Ns=b*N*Nc;             % Number of samples in one symbol
 
Es=2; sqEs=sqrt(Es);   % Energy of signal waveform
ss=[0 0; 0 1; 1 1; 1 0]; phases=2*pi/M*[0:M-1];  % Set of symbols
 
wc=2*Nc*pi/Tb;  t=[0:Ns-1]*T;  s2sT=sqrt(2/Ts);         % wc : 2*pi/Tc (Tc 동안 f=1)
SNRbdBt=0:0.1:10; pobet= prob_error(SNRbdBt,'PSK',b,'BER');
SNRbdBs=[3 6 9]; PJ=0.04;  MaxIter=20000;
for i_DS=1:2 % DS coding or not
   if i_DS==1, code1s=ones(1,Ns);                       % No DS
    else  code1s=reshape(ones(b*N,1)*(2*code1-1),1,Ns); % PN-DS coding
   end     
   for m=1:M % (Possibly PN-coded) QPSK signal waveforms
     sw(m,:)=sqEs*s2sT*code1s.*cos(wc*t+phases(m));    % sw=sqrt(E)*su , su^2=1
   end
 
   figure(2)
   R_f=fftshift(fft(sw(1,:)))/Ns; R_f=[R_f R_f(1)];
   subplot(3,1,i_DS); plot(-1/(2*T):1/T/Ns:1/(2*T), abs(R_f));
 
   suT= s2sT*T*[code1s.*cos(wc*t); -code1s.*sin(wc*t)]; 
   for i_SNR=1:length(SNRbdBs) % Range of SNRdB
      SNRbdB=SNRbdBs(i_SNR);  SNRb=10^(SNRbdB/10);
      sigma2=(Es/b)/SNRb;  sgmsT=sqrt(sigma2/T);
      Jamming_amp=sqrt(PJ/T);        %  전파방해 신호
      y= zeros(2,Ns); % Buffer size amounting to 1 symbol time
      r= zeros(1,Ns);
      nobe= 0; % Number of bit errors
      for k=1:MaxIter
         i= ceil(rand*M); s=ss(i,:); % transmitted signal      
         for m1=1:b*Nc % Operation per symbol interval Ts
            for m=1:N % Operation per chip interval Tc
               mi=(m1-1)*N+m; tmp=wc*((k-1)*Ns+mi-1)*T;  % tmp =wct (시간구간)
               intfrnc=cos(tmp+pi/6); bp_noise= randn*cos(tmp)-randn*sin(tmp);    
                                                              % Interference & band pass noise
               rNs= sw(i,mi) +sgmsT*bp_noise +Jamming_amp*intfrnc;         
               r=[r(1,2:Ns) rNs];
               y=[y(:,2:Ns) suT(:,mi)*rNs]; % Inside correlator 
            end
         end
 
         ycsk=sum(y')'; % Sampled correlator output - DTR input
         th= atan2(ycsk(2),ycsk(1));
         if th<-pi/M, th=th+2*pi; end
         [themin,lmin]= min(abs(th-phases)); % Eq.(7.3.9)
         d= ss(lmin,:); % Detected data bits
         nobe=nobe+sum(s~=d); % Number of bit errors in a detected symbol
         if nobe>100, break; end
      end  
      pobe(i_DS,i_SNR)=nobe/(k*b);
   end
end
fprintf('\n SNRbdB= %5.2f   %5.2f   %5.2f (Jamming power=%5.2f)', SNRbdBs,PJ)
fprintf('\n    BER= %6.4f  %6.4f  %6.4f (Without PN coding)', pobe(1,:))
fprintf('\n    BER= %6.4f  %6.4f  %6.4f (With PN coding)\n', pobe(2,:))

figure(1)
subplot(2,2,1); plot(t, sw(1,:)); title(num2str(ss(1,:)));
subplot(2,2,2); plot(t, sw(2,:)); title(num2str(ss(2,:)));
subplot(2,2,3); plot(t, sw(3,:)); title(num2str(ss(3,:)));
subplot(2,2,4); plot(t, sw(4,:)); title(num2str(ss(4,:)));
figure(2)
R_f=fftshift(fft(r))/Ns; R_f=[R_f R_f(1)];
subplot(3,1,3); plot(-1/(2*T):1/T/Ns:1/(2*T), abs(R_f));
figure(3)
semilogy(SNRbdBt,pobet, SNRbdBs,pobe(1,:),'x', SNRbdBs,pobe(2,:),'o')
 

결과> SNRbdB=  3.00    6.00    9.00 (Jamming power= 0.04)
    BER= 0.2730  0.2853  0.3137 (Without PN coding)
    BER= 0.0706  0.0193  0.0023 (With PN coding)






6. OFDM

16-ary QAM coding 과 FFT를 기반으로 한 OFDM 통신시스템




 
%do_OFDM0.m
% simulates an OFDM system with Nfft=128-subcarrier DFT and 2^4=16-QAM
% where a frame (block) carries Nfft/2*4 (message) bits
%Copyleft: Won Y. Yang, wyyang53@hanmail.net, CAU for academic use only
clear, clf
Nfft=128; Nffth=Nfft/2;  % FFT size and its half
b=4; Nblock=Nffth*b; % 2^b QAM and Number of message bits per block
Ng=16; % # of samples of guard interval (consisting of prefix/suffix)
g=[0 0 1 0.1 0]; lc=length(g); % Channel response and its length
[gmax,d1]=max(g); d=d1-1; % Estimate of Channel delay
%d=d-1; % Wrong estimate of channel delay for STO effect
Nsym=Nfft+Ng; % Length of OFDM symbol
lx=Nsym*(1+ceil(lc/Nsym)); % Length of x
% This must be greater than or equal to the effective length of
% channel response g
x=zeros(1,lx); % Buffer of transmitted sequence
ly=lx+Nsym; % Length of y >= x + one OFDM symbol size
y=zeros(1,ly); % Buffer of received vector
SNRbdB=7; SNRb=10^(SNRbdB/10);
sigma=sqrt(1/(SNRb*Nblock));
 
nobe=0;  MaxIter=10000;  Target_no_of_error=10;
for iter=0:MaxIter
 
   msg=randi(2^b-1,Nblock/b,1)';
   msgg=bin2gray(msg,'qam',2^b);
   msgb=dec2bin(msgg)';
   msgb=msgb(:)';
   S=qammod(msg,2^b,0,'gray');
 
   for i=2:Nffth,  X(i)=S(i);  X(Nfft-i+2)=X(i)';  end % Eq.(11.1.2)
   X(1) = real(S(1));  X(Nffth+1) = imag(S(1));
   xn = real(ifft(X,Nfft));  % Eq.(11.1.3)
   % To update the modulated sequence x to be transmitted  
   x = [x(1+Nsym:lx) xn(Nfft-Ng+1:Nfft) xn]; % Add CP  
   % To update the received sequence r
   y(1:ly-Nsym) = y(1+Nsym:ly);
   for n=Nsym:-1:1
      n1 = ly+1-n;
      y(n1) = sigma*randn;     
      for n2=1:min(lx+1-n,lc)
         y(n1) = y(n1) + x(lx+2-n-n2)*g(n2)/gmax; % Eq.(11.1.6)
      end
   end     
   y1=y(lx+d-Nfft+1:lx+d); % Removing/neglect the CP and
   %keps=0.01; y1=y1.*exp(j*2*pi*keps/Nfft*[0:Nfft-1]); % CFO effect
   Y = fft(y1,Nfft); % take the FFT
   Sd=Y; Sd(1)=real(Y(1))+j*real(Y(Nffth+1));
   plot(Sd+j*eps,'.'), hold on  % Received signal constellation
   % QAM demodulation
  
   detected=qamdemod(Sd(1:Nffth),2^b,0,'gray');
   detectedg=bin2gray(detected,'qam',2^b);
   detectedb=dec2bin(detectedg)';
   detectedb=detectedb(:)';
 
   if iter>0
     nobe = nobe + sum(detectedb~=msg0);
     if nobe>Target_no_of_error, break; end
   end
   msg0 = msgb;
end
pobe = nobe/(iter*Nblock);
fprintf('pobe= %1.5f\n',pobe);
figure(2), plot(y)
figure(3), pwelch(y)
 

결과> pobe= 0.00035


6. LTE 주요특징

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


LTE 주요 특징
1. 다중접속 기술
  ○ 하향링크 : OFDM,
  ○ 상향링크 : SC-FDMA
2. AMC(Adaptive Modulation and Coding)
  ○ 하향링크 : QPSK, 16 QAM, 64 QAM
  ○ 상향링크 : QPSK, 16 QAM
  ○ Turbo 부호 : 1/3부호화율
3. 공간다중화 기술
  ○ 다중 사용자 MIMO 지원



※ 참고사이트
1. www.rfdh.com/tech/cdma.htm
2. 이동통신기술의진화to LTE / MIMO청강문화산업대학모바일아카데미2011년7월