오늘은 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() 함수를 이용하였다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB cross product, 삼각형의 면적, 평행 육면체의 부피 (0) | 2011.03.21 |
---|---|
MATLAB input() (0) | 2011.03.21 |
MATLAB 기본3, sort, if ~ end, for ~ end, max, min (4) | 2011.03.21 |
MATLAB erf, erfc, Q- function (2) | 2011.03.19 |
MATLAB 반올림 관련 함수들 round, fix, ceil, floor (4) | 2011.03.19 |
MATLAB interpolation, interp1() (0) | 2011.03.19 |
MATLAB 기본 2 (0) | 2011.03.19 |
MATLAB subplot() (0) | 2011.03.16 |
댓글