본문 바로가기
programming language/MATLAB

MATLAB BPSK BER simulation in AWGN channel

by __observer__ 2011. 3. 19.
반응형

오늘은 AWGN (Additive white gaussian noise) 채널 환경에서의 BPSK Bits Error Rate(BER)에 대해 설명한다. 일단 BPSK 가 뭔지 잘 모르는 사람은 다음 페이지를 참조 하기 바란다.


2011/03/08 - [통신] - [디지털 통신] BPSK, QPSK

 

위 페이지를 참조하면 bit 를 BPSK 심볼로 mapping 하는 방식에 대해 알았을 테고, 이제 잡음을 생성하는 방법을 알아 보자. 잡음을 생성하기 위해서는 몇 지 통신 관련 수식에 대해 알아야 한다. 보통 BER 그래프를 그릴 때는 SNR 축에 따른 그래프가 아닌 Eb/No 에 따른 그래프를 그리곤 한다. 따라서 BER 시뮬레이션을 정확히 하려면 Eb/No 에 따른 잡음을 생성할 수 있어야 하겠다.

 

잡음의 분산(σ2) 과 No(noise power spectral density) 는 다음과 같은 관계가 있다.

 

 

주의 : 본 식에서는 oversample 이나 channel coding 에 대해 고려 하지 않은 것이다.

 

 

 

위 식에서 각 기호의 의미는 아래와 같다.

 

  • Es : Signal energy

 

  • Eb : Bit energy

 

  • N0 : Noise power spectral density

 

  • M : PSK modulation order

 

 

시뮬레이션의 Es 는 1 로 정규화 한다. 그럼 잡음의 분산 값은 다음과 같은 식이 된다.

 

 

BPSK 의 경우 성좌도의 경우의 수가 2 이므로 M = 2 이다. 그럼 이제 최종적으로 BPSK 시뮬레이션시의 잡음 분산은 다음과 같이 된다.

 

 

이제 BPSK 의 BER 시뮬레이션을 해 보자.

 

MATLAB 코드 내용은 다음과 같다.


2014-07-03 추가 내용 

캡쳐 화면을 올렸더니 오타로 고생하시는 분들이 너무 많더군요. Github 에 파일 올립니다. 

파일 다운로드 링크 입니다. 

https://github.com/ssgkd/MATLAB-BPSK-AWGNSimulation/archive/master.zip

 

위 코드를 실행 했을때의 command 창 결과는

 

Eb/No= 0 BER: 0.0784773

Eb/No= 2 BER: 0.0374897

Eb/No= 4 BER: 0.0125513

Eb/No= 6 BER: 0.00238729

Eb/No= 8 BER: 0.000199714

Eb/No= 10 BER: 4.85714e-006

 

이며 그래프는 다음과 같이 나온다.

 

 


 

이론값과 시뮬레이션 값이 거의 일치하는 것을 확인 할 수 있고, 10 dB 일때 약간 값이 다른 것은 시뮬레이션 bits 수를 늘리면 해결 된다. 그리고 위 코드에서 이론적인 BER 값을 계산할 때는 communication toolbox berawgn() 함수를 이용하였다.



반응형

댓글